package main
import("fmt""os")// Student struct represents a student (一般在结构体上面加一个注释解释)type Student struct{
id int
name string
age int
gender string
score int}var students map[int]*Student
funcshowAllStudents(){for_, v :=range students {
fmt.Println(*v)}}funcnewStudent()*Student {var(
i int
n string
a int
g string
s int)
fmt.Println("学号 姓名 年龄 性别 绩点")
fmt.Scanln(&i,&n,&a,&g,&s)return&Student{
id: i,
name: n,
age: a,
gender: g,
score: s,}}funcaddStudent(){
fmt.Println("请输入待添加学生数据:")
newStu :=newStudent()
students[newStu.id]= newStu
fmt.Println("添加成功")}funcfindStudent(){var i int
fmt.Println("请输入要查询的学生学号")
fmt.Scanln(&i)
fmt.Println(*students[i])}funcdeleteStudent(){var i int
fmt.Println("请输入要删除的学生学号")
fmt.Scanln(&i)
fmt.Printf("即将删除学生:")
fmt.Println(*students[i])delete(students, i)
fmt.Println("删除成功")}funcupdateStudent(){var i int
fmt.Println("请输入要修改的学生学号")
fmt.Scanln(&i)
fmt.Println("该学生信息如下所示:")
fmt.Println(*students[i])
fmt.Println("请输入该学生数据修改后的值")
students[i]=newStudent()
fmt.Println("修改成功")}funcmain(){// allocate 50 size places to the map -- students
students =make(map[int]*Student,50)for{
fmt.Println("欢迎光临学生管理系统:")
fmt.Println(`
1、查看所有学生信息
2、添加学生
3、删除学生
4、查看学生信息
5、修改学生信息
6、退出
`)
fmt.Printf("请输入你的操作:")var choice int
fmt.Scanln(&choice)switch choice {case1:showAllStudents()case2:addStudent()case3:deleteStudent()case4:findStudent()case5:updateStudent()case6:
os.Exit(1)default:
fmt.Println("gun去重新输入")}}}