1、定义学生结构体
student.go
type student struct {
id int
name string
age int
}
2、定义管理者结构体,其中管理者中存储着所有学生信息
type manage struct {
// 所有学生信息
students map[int]student
}
3、管理者应该具有学生信息管理能力:增删改查学生。完整的
manage.go
如下:
type manage struct {
// 所有学生信息
students map[int]student
}
// 判断学生是否存在
func (this manage) isExist(id int) bool {
_,exist := this.students[id]
return exist
}
// 添加学生
func (this manage) addStudent(s student) {
this.students[s.id]=s
}
// 删除学生
func (this manage) deleteStudent(id int) bool {
_,exist:=this.students[id]
// 不存在该学生
if !exist {
return false
}
delete(this.students,id)
return true
}
// 查询单个学生信息
func (this manage) getStudent(id int) student{
return this.students[id]
}
// 查询所有学生
func (this manage) listStudent() map[int]student {
return this.students
}
// 修改学生信息
func (this manage) updateStudent(s student) {
this.students[s.id]=s
}
4、定义图形化界面
import (
"fmt"
)
// 学生管理系统:实现查看、添加、修改、删除学生
var m=manage{
students: map[int]student{},
}
// 系统入口
func Start() {
for {
fmt.Println("======欢迎来到学生管理系统======")
fmt.Println(" 1.查看所有学生信息 ")
fmt.Println(" 2.查看某个学生信息 ")
fmt.Println(" 3.添加学生 ")
fmt.Println(" 4.修改学生信息 ")
fmt.Println(" 5.删除学生 ")
fmt.Println(" 6.退出 ")
fmt.Println("============================")
fmt.Printf("请输入你要进行的操作:")
var option int
fmt.Scanln(&option) // 获取输入值
switch option {
case 1:
getAll()
case 2:
getOne()
case 3:
addStudent()
case 4:
UpdateStudent()
case 5:
delStudent()
case 6:
return
default:
fmt.Println("请输入合法的操作")
}
}
}
// 查找所有学生
func getAll() {
students:=m.listStudent()
for _,s := range students {
fmt.Println("学号:",s.id,"姓名:",s.name,"年龄:",s.age)
}
}
// 查询某个学生
func getOne() {
fmt.Printf("请输入要查询的学生ID:")
var id int
fmt.Scanln(&id)
s:=m.getStudent(id)
fmt.Println("学号:",s.id,"姓名:",s.name,"年龄:",s.age)
}
// 添加学生
func addStudent() {
var id int
var name string
var age int
fmt.Printf("请输入学生ID:")
fmt.Scanln(&id)
res:=m.isExist(id)
if res {
fmt.Println("该学生已存在!不可重复添加")
return
}
fmt.Printf("请输入学生姓名:")
fmt.Scanln(&name)
fmt.Printf("请输入学生年龄:")
fmt.Scanln(&age)
s:=student{
id:id,
name:name,
age:age,
}
m.addStudent(s)
fmt.Println("添加成功!")
}
// 删除学生
func delStudent() {
var id int
fmt.Printf("请输入要删除的学生ID:")
fmt.Scanln(&id)
res:=m.deleteStudent(id)
if res {
fmt.Println("删除成功")
} else {
fmt.Println("不存在该学生!")
}
}
// 修改学生信息
func UpdateStudent() {
var id int
fmt.Printf("请输入学生ID:")
fmt.Scanln(&id)
s:=m.getStudent(id)
fmt.Println("学生当前的信息是=>学号:",s.id,"姓名:",s.name,"年龄:",s.age)
fmt.Printf("请输入要修改的学生姓名:")
fmt.Scanln(&s.name)
fmt.Printf("请输入要修改的学生年龄:")
fmt.Scanln(&s.age)
m.updateStudent(s)
fmt.Println("修改成功!")
}
执行部分效果如下:
