标签:func name 学员 demo fmt student 信息管理系统 id
main.go:
package main import ( "fmt" "os" ) //学员信息管理系统 //1.添加学员信息 //2.编辑学员信息 //3.展示所有学员信息 func showMenu() { fmt.Println("欢迎来到学员信息管理系统") fmt.Println("1.添加学员") fmt.Println("2.编辑学员信息") fmt.Println("3.展示所有学员信息") fmt.Println("4.退出系统") } // 获取用户输入的学员信息 func getInput() *student{ var( id int name string class string ) fmt.Println("请按照要求输入学员信息") fmt.Print("请输入学员的学号:") fmt.Scanf("%d\n",&id) fmt.Print("请输入学员的姓名:") fmt.Scanf("%s\n",&name) fmt.Print("请输入学员的班级:") fmt.Scanf("%s\n",&class) stu := newStudent(id,name,class) return stu } func main() { sm := newStudentMgr() for { //1.打印系统菜单 showMenu() //2.等待用户选择要执行的选项 var input int fmt.Scanf("%d\n", &input) //想要改变input变量的值必须传一个指针进来 fmt.Println("用户输入的是:", input) //3.执行用户选择的动作 switch input { case 1: //添加学员 stu := getInput() sm.addStudent(stu) case 2: //编辑学员 stu := getInput() sm.modifyStudent(stu) case 3: //展示所有学员 sm.showStudent() case 4: //退出 os.Exit(0) } } }
student.go:
package main import "fmt" type student struct { id int name string class string } func newStudent(id int,name string,class string) *student { return &student{ id: id, name: name, class: class, } } //学员管理的类型 type studentMgr struct { allStudents []*student } func newStudentMgr() *studentMgr { return &studentMgr{allStudents:make([]*student,0,100)} } //1.添加学生 使用值类型的接收者s studentMgr时,添加学生失败,需要修改接收者中的值记得用指针接收者 func (s *studentMgr) addStudent(newStu *student) { s.allStudents = append(s.allStudents,newStu) } //2.编辑学生 func (s *studentMgr) modifyStudent(newStu *student) { for i,v := range s.allStudents{ if v.id == newStu.id { //要修改的学生 s.allStudents[i] = newStu return } } fmt.Printf("输入的学生信息有误,系统中没有学号是:%d的学生\n",newStu.id) } //3.展示学生 func (s *studentMgr) showStudent() { for _,v:= range s.allStudents{ fmt.Printf("学号:%d 姓名:%s 班级:%s\n",v.id,v.name,v.class) } }
欢迎来到学员信息管理系统 1.添加学员 2.编辑学员信息 3.展示所有学员信息 4.退出系统 1 用户输入的是: 1 请按照要求输入学员信息 请输入学员的学号:001 请输入学员的姓名:han 请输入学员的班级:01 欢迎来到学员信息管理系统 1.添加学员 2.编辑学员信息 3.展示所有学员信息 4.退出系统 3 用户输入的是: 3 学号:1 姓名:han 班级:01 欢迎来到学员信息管理系统 1.添加学员 2.编辑学员信息 3.展示所有学员信息 4.退出系统
标签:func,name,学员,demo,fmt,student,信息管理系统,id 来源: https://www.cnblogs.com/twoheads/p/12693541.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。