package main
import (
"fmt"
"os"
)
type student struct {
id int64
name string
}
var (
allStudent map[int64]*student
)
// 构造函数
func newStudent(id int64, name string) *student {
return &student{
id: id,
name: name,
}
}
func addStu() {
var (
userID int64
userName string
)
fmt.Print("请输入学生学号:")
fmt.Scanln(&userID)
if _, ok := allStudent[userID]; !ok {
fmt.Print("请输入学生姓名:")
fmt.Scanln(&userName)
} else {
fmt.Println("学生ID已存在!")
}
newStu := newStudent(userID, userName) // 初始化分配内存空间
allStudent[userID] = newStu
}
func delStu() {
var userID int64
fmt.Print("请输入要删除的学生ID:")
fmt.Scanln(&userID)
if _, ok := allStudent[userID]; ok {
delete(allStudent, userID)
fmt.Println("删除成功!")
} else {
fmt.Println("学生ID不存在!")
}
}
func showStu() {
for _, v := range allStudent {
fmt.Printf("学生ID: %d, 学生姓名:%s\n", v.id, v.name)
}
}
func main() {
var choiceNum int
allStudent = make(map[int64]*student, 50) // 初始化分配内存空间
for {
fmt.Println(`
欢迎光临学生管理系统!
您可以:
1. 添加学生
2. 删除学生
3. 查看学生
0. 退出系统
请输入数字确定您的操作:
`)
fmt.Scanln(&choiceNum)
switch choiceNum {
case 1:
addStu()
case 2:
delStu()
case 3:
showStu()
case 0:
os.Exit(0)
default:
fmt.Println("无效的输入!")
}
}
}