package main
import (
"fmt"
"os"
)
type student struct {
name string
id int64
}
type studenMgr struct {
allStudent map[int64]student
}
func newStudent(name string, id int64) *student {
return &student{
name: name,
id: id,
}
}
func (s studenMgr) showStudent() {
for k, v := range s.allStudent {
fmt.Printf("学生学号为:%v,学生名字为:%v\n", k, v.name)
}
}
func (s studenMgr) addStudent() {
var (
name string
id int64
)
fmt.Print("请输入学生的id:")
fmt.Scanln(&id)
fmt.Print("请输入学生的姓名:")
fmt.Scanln(&name)
stu := newStudent(name, id)
s.allStudent[id] = *stu
}
func (s studenMgr) deleteStudent() {
var (
stuId int64
)
fmt.Print("请输入你要删除的学生id:")
fmt.Scanln(&stuId)
delete(s.allStudent, stuId)
}
func main() {
smr := studenMgr{
allStudent: make(map[int64]student, 64),
}
for {
fmt.Println("欢迎使用学生管理系统!")
fmt.Println(`请输入序号来执行对应的命令:
1.查看所有学生信息
2.添加学生信息
3.删除学生信息
4.退出! `)
fmt.Print(": ")
var num int
fmt.Scanln(&num)
switch num {
case 1:
smr.showStudent()
case 2:
smr.addStudent()
case 3:
smr.deleteStudent()
default:
os.Exit(1)
}
}
}
错误总结:
面向对象程序,就是面向你定义的这个对象编程
标签:name,管理系统,fmt,学生,int64,student,id,构造函数 From: https://www.cnblogs.com/suknna/p/17103299.html