GoLang-结构体版学生管理系统
作者:互联网
首先是studentmgr.go
package main
import "fmt"
type student struct{
id int64
name string
class string
}
func newStudent(id int64,name,class string) *student{
return &student{
id: id,
name: name,
class: class,
}
}
type studentMgr struct{
allStudents map[int64]*student
}
func StudentMgr() *studentMgr{
return &studentMgr{
allStudents: make(map[int64]*student,200),
}
}
//查看所有学生信息
func(s studentMgr) showStudents(){
for _,v := range s.allStudents{
fmt.Printf("学号:%d 学生:%s 班级:%s\n",v.id,v.name,v.class)
}
}
//添加学生
func(s studentMgr) addStudents(){
var (
id int64
name string
class string
)
//添加学生
fmt.Print("请输入要添加的学号:")
fmt.Scanf("%d\n",&id)
fmt.Print("请输入要添加的姓名:")
fmt.Scanf("%s\n",&name)
fmt.Print("请输入要添加的班级:")
fmt.Scanf("%s\n",&class)
//开始判断是否存在
if _,ok := s.allStudents[id]; !ok {
newStu := newStudent(id,name,class)
s.allStudents[id] = newStu
fmt.Printf("学生学号:%d 学生姓名:%s 学生班级:%s\n",id,name,class)
}else{
fmt.Printf("学生学号:%d 学生姓名:%s 学生班级:%s 已存在,请勿重复添加",id,name,class)
}
}
//删除学生
func(s studentMgr) delStudents(){
var id int64
fmt.Print("请输入你要删除学生的学号:")
fmt.Scanf("%d\n",&id)
if _,ok := s.allStudents[id]; !ok{
fmt.Printf("学号:%d的信息不存在\n",id)
}else{
delete(s.allStudents,id)
fmt.Printf("学号:%d的信息成功删除\n",id)
}
}
//修改学生
func (s *studentMgr) modifyStudent() {
var (
id int64
)
fmt.Print("请输入你要修改学生信息的学号:")
fmt.Scanf("%d\n",&id)
obj,ok := s.allStudents[id];
if !ok{
fmt.Printf("找不到学号:%d的学生,查无此人",id)
return
}
fmt.Printf("你要修改的学生信息如下: 学号:%d 姓名:%s 班级:%s\n",obj.id,obj.name,obj.class)
//输入要修改的内容
var (
newID int64
)
fmt.Print("请输入学生新的学号:")
fmt.Scanf("%d\n",&newID)
obj.id = newID
s.allStudents[id] = obj
main.go
package main
import (
"fmt"
"os"
)
//1.打印菜单信息
func showMenu(){
fmt.Println("欢迎来到学生管理系统")
fmt.Println(`
1.查看所有学生
2.添加学生
3.修改学生
4.删除学生
5.退出系统
`)
}
func main(){
sm := StudentMgr()
for {
showMenu()
var input int
fmt.Printf("请输入你要输入的执行序号:")
fmt.Scanf("%d\n",&input)
fmt.Println("用户输入的是:",input)
//3.执行用户的操作
switch input{
case 1:
//查看所有学生
sm.showStudents()
case 2:
//添加学生
sm.addStudents()
case 3:
//修改学生
sm.modifyStudent()
case 4:
//删除学生
sm.delStudents()
case 5:
//退出系统
os.Exit(0)
}
}
}
标签:name,管理系统,fmt,学生,GoLang,class,体版,allStudents,id 来源: https://blog.csdn.net/lvjie13450/article/details/121843803