package main import ( "fmt" "os" ) type student struct { id int64 name string } var ( allStudent map[int64]*student ) // 构造函数 func newStudent(id int64, name string) *student { return &student{ id: id, name: name, } } func addStu() { var ( userID int64 userName string ) fmt.Print("请输入学生学号:") fmt.Scanln(&userID) if _, ok := allStudent[userID]; !ok { fmt.Print("请输入学生姓名:") fmt.Scanln(&userName) } else { fmt.Println("学生ID已存在!") } newStu := newStudent(userID, userName) // 初始化分配内存空间 allStudent[userID] = newStu } func delStu() { var userID int64 fmt.Print("请输入要删除的学生ID:") fmt.Scanln(&userID) if _, ok := allStudent[userID]; ok { delete(allStudent, userID) fmt.Println("删除成功!") } else { fmt.Println("学生ID不存在!") } } func showStu() { for _, v := range allStudent { fmt.Printf("学生ID: %d, 学生姓名:%s\n", v.id, v.name) } } func main() { var choiceNum int allStudent = make(map[int64]*student, 50) // 初始化分配内存空间 for { fmt.Println(` 欢迎光临学生管理系统! 您可以: 1. 添加学生 2. 删除学生 3. 查看学生 0. 退出系统 请输入数字确定您的操作: `) fmt.Scanln(&choiceNum) switch choiceNum { case 1: addStu() case 2: delStu() case 3: showStu() case 0: os.Exit(0) default: fmt.Println("无效的输入!") } } }