1.入口文件 main.go
package main
import "fmt"
//学生管理系统实现:查看,添加,删除,修改学生
var m = manage{
students:map[int]student{},
}
//查看所有学生信息
func getAll() {
students := m.listStudent()
if len(students)> 0 {
for _,s := range students {
fmt.Println("学号:",s.id,"姓名:",s.name,"年龄:",s.age,"班级:",s.class)
}
}else {
fmt.Println("暂无学生信息!")
}
}
//查看指定学生信息
func getOne() {
fmt.Println("请输入学生的ID:")
var id int
fmt.Scanln(&id)
exist := m.isExist(id)
if exist {
s := m.getStudent(id)
fmt.Println("学号:",s.id,"姓名:",s.name,"年龄:",s.age,"班级:",s.class)
}else {
fmt.Println("学生不存在!")
}
}
//添加学生信息
func add() {
var (
id int
name string
age int
class string
)
fmt.Println("请输入学生的ID:")
fmt.Scanln(&id)
res := m.isExist(id)
if res {
fmt.Println("该学生已存在不能重复添加!")
return
}
fmt.Println("请输入学生姓名:")
fmt.Scanln(&name)
fmt.Println("请输入学生年龄:")
fmt.Scanln(&age)
fmt.Println("请输入学生班级")
fmt.Scanln(&class)
s := student{
id:id,
name:name,
age:age,
class:class,
}
m.addStudent(s)
fmt.Println("添加成功!")
}
//修改学生信息
func update() {
var id int
fmt.Println("请输入学生ID:")
fmt.Scanln(&id)
res := m.isExist(id)
if !res {
fmt.Println("学生信息不存在!")
return
}else{
s := m.getStudent(id)
fmt.Println("修改前学生信息是=>学号:",s.id,"姓名:",s.name,"年龄",s.age,"班级",s.class)
fmt.Println("请输入修改后学生姓名:")
fmt.Scanln(&s.name)
fmt.Println("请输入修改后学生年龄:")
fmt.Scanln(&s.age)
fmt.Println("请输入修改后学生班级:")
fmt.Scanln(&s.class)
m.updateStudent(s)
fmt.Println("修改成功!")
}
}
//删除学生信息
func del() {
var id int
fmt.Println("请输入要删除学生的ID:")
fmt.Scanln(&id)
res := m.deleteStudent(id)
if res {
fmt.Println("删除成功!")
}else {
fmt.Println("学生信息不存在!")
}
}
func main() {
for {
fmt.Println("==========欢迎来到学生管理系统==========")
fmt.Println("1.查看所有学生信息")
fmt.Println("2.查看某个学生信息")
fmt.Println("3.添加学生信息")
fmt.Println("4.修改学生信息")
fmt.Println("5.删除学生信息")
fmt.Println("6.退出")
fmt.Println("=====================================")
fmt.Println("请输入你要进行的操作:")
var option int
fmt.Scanln(&option)//获取输入值
switch option {
case 1:
getAll()
case 2:
getOne()
case 3:
add()
case 4:
update()
case 5:
del()
case 6:
return
default:
fmt.Println("请输入合法操作!")
}
}
}
2.定义学生 student.go
package main
//定义学生结构体
type student struct {
id int
name string
age int
class string
}
3.定义学生管理 manage.go
package main
//定义管理者结构体,其中管理者中存储所有学生信息
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.isExist(id)
if !exist {//不存在该学生
return false
}
delete(this.students,id)
//if _, ok := this.students[id]; ok {
// delete(this.students, id)
//} else { //不存在该学生
// return false
//}
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
}
网友评论