学生管理系统 package mainimport ("fmt""os")/*函数版学生管理系统写一个系统能够查看、新增、删除、学生*/var (allStudent map[int64]*student // 变量声明)type student struct {id int64name string}// newStudent是
学生管理系统
package main
import (
"fmt"
"os"
)
/*
函数版学生管理系统
写一个系统能够查看、新增、删除、学生
*/
var (
allStudent map[int64]*student // 变量声明
)
type student struct {
id int64
name string
}
// newStudent是student类型的构造函数
func newStudent(id int64, name string) *student {
return &student{
id: id,
name: name,
}
}
func showAllStudent() {
// 把所有的学生都遍历出来
for k, v := range allStudent {
fmt.Printf("学号:%d 姓名:%s\n", k, v.name)
}
fmt.Println("查看所有学生成功!")
}
func addStudent() {
// 向allStudent中添加一个新的学生
// 1. 创建一个新学生
// 1.1 获取用户输入
var (
id int64
name string
)
fmt.Print("请输入学生学号:")
fmt.Scanln(&id)
fmt.Print("请输入学生姓名:")
fmt.Scanln(&name)
// 1.2 造学生(调用student的构造函数)
newStu := newStudent(id, name)
// 2. 追加到allStudent这个map中
allStudent[id] = newStu
fmt.Println("新增学生成功!")
}
func deleteStudent() {
// 1. 请用户输入要删除的学生的学号
var (
deleteId int64
)
fmt.Print("请输入您要删除的学生的学号:")
fmt.Scanln(&deleteId)
// 2. 去allStudent这个map中根据学号删除对应的键值对
delete(allStudent, deleteId)
fmt.Println("删除学生成功!")
}
func main() {
allStudent = make(map[int64]*student, 50) // 初始化(开辟内存空间)
for {
// 1. 打印菜单
fmt.Println("欢迎光临学生管理系统!")
fmt.Println(`
1. 查看所有学生
2. 新增学生
3. 删除学生
4. 退出
`)
fmt.Print("请输入您要执行的操作:")
// 2. 等待用户选择要做什么
var choice int
fmt.Scanln(&choice)
fmt.Printf("您选择了%d这个选项!\n", choice)
// 3. 执行对应的函数
switch choice {
case 1:
showAllStudent()
case 2:
addStudent()
case 3:
deleteStudent()
case 4:
os.Exit(1)
default:
fmt.Println("请输入正确的操作选项!")
}
}
}
思考:把学员信息管理系统改写成方法版