// 1、使用“面向对象”的思维方式编写一个学生信息管理系统。// 2、学生有id、姓名、年龄、分数等信息// 3、程序提供展示学生列表、添加学生、编辑学生信息、删除学生等功能package main
import("fmt""os")type student struct{
id int
name string}var studentList =make(map[int]*student)funcnewStudent(id int, name string)*student {return&student{
id,
name,}}func(e *student)edistuent(name string){
e.name = name
}funclistStuent(){iflen(studentList)==0{
fmt.Println("学生列表为空")}else{for i, v :=range studentList {
fmt.Printf("学号:%d 姓名:%s\n", i, v.name)}}}funcaddStudent(){var key intvar name string
fmt.Printf("请输入学生学号:")
fmt.Scanln(&key)_, ok := studentList[key]
have := ok
for have {
fmt.Println("学号已经存在")
fmt.Printf("请输入学生学号:")
fmt.Scanln(&key)_, ok := studentList[key]
have = ok
}
fmt.Printf("请输入学生姓名:")
fmt.Scanln(&name)
newstudent :=newStudent(key, name)
studentList[key]= newstudent
}funceditStudent(){var key int
fmt.Printf("请输入需要修改学生学号:")
fmt.Scanln(&key)_, ok := studentList[key]if ok {var name string
fmt.Printf("请输入学生姓名:")
fmt.Scanln(&name)
studentList[key].edistuent(name)
fmt.Printf("修改成功\n")listStuent()}else{
fmt.Println("学号不存在")}}funcdeleteStudent(){var key int
fmt.Printf("请输入需要删除学生的学号:")
fmt.Scanln(&key)_, ok := studentList[key]if ok {delete(studentList, key)listStuent()
fmt.Println("删除成功")}else{
fmt.Printf("学号不存在")}}funcmain(){
fmt.Println("欢迎进入学生管理系统")for{
fmt.Println(`
1、展示学生列表
2、添加学生
3、编辑学生信息
4、删除学生
5、退出
`)
fmt.Printf("请选择你的操作:")var input int
fmt.Scanln(&input)
fmt.Printf("你选择的操作是:%d\n", input)switch input {case1:listStuent()case2:addStudent()case3:editStudent()case4:deleteStudent()case5:
os.Exit(1)default:
fmt.Println("滚")}}}
package main
import("fmt""os")type student struct{
id int
name string}funcnewstudent(id int, name string)*student {return&student{
id,
name,}}type studentAdmin struct{
studentList map[int]*student
}var studentSystem studentAdmin
func(s *studentAdmin)getStudentList(){iflen(s.studentList)==0{
fmt.Println("学生列表为空")}else{for i, v :=range s.studentList {
fmt.Printf("学号:%d 姓名:%s\n", i, v.name)}}}func(s *studentAdmin)addStudent(){var key intvar name string
fmt.Printf("请输入学生学号:")
fmt.Scanln(&key)_, ok := s.studentList[key]
have := ok
for have {
fmt.Println("学号已经存在")
fmt.Printf("请输入学生学号:")
fmt.Scanln(&key)_, ok := s.studentList[key]
have = ok
}
fmt.Printf("请输入学生姓名:")
fmt.Scanln(&name)
newstudent :=newstudent(key, name)
s.studentList[key]= newstudent
}func(s *studentAdmin)editStudent(){var key int
fmt.Printf("请输入需要修改学生学号:")
fmt.Scanln(&key)_, ok := s.studentList[key]if ok {var name string
fmt.Printf("请输入学生姓名:")
fmt.Scanln(&name)
s.studentList[key].name = name
fmt.Printf("修改成功\n")
s.getStudentList()}else{
fmt.Println("学号不存在")}}func(s *studentAdmin)deleteStudent(){var key int
fmt.Printf("请输入需要删除学生的学号:")
fmt.Scanln(&key)_, ok := s.studentList[key]if ok {delete(s.studentList, key)
s.getStudentList()
fmt.Println("删除成功")}else{
fmt.Printf("学号不存在")}}funcmain(){
studentSystem.studentList =make(map[int]*student)for{
fmt.Println(`
1、展示学生列表
2、添加学生
3、编辑学生信息
4、删除学生
5、退出
`)
fmt.Printf("请选择你的操作:")var input int
fmt.Scanln(&input)
fmt.Printf("你选择的操作是:%d\n", input)switch input {case1:
studentSystem.getStudentList()case2:
studentSystem.addStudent()case3:
studentSystem.editStudent()case4:
studentSystem.deleteStudent()case5:
os.Exit(1)default:
fmt.Println("滚")}}}