天天看点

Golang实现简单学生管理系统:查询、修改、添加、删除学生信息

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("修改成功!")
}



           

执行部分效果如下:

Golang实现简单学生管理系统:查询、修改、添加、删除学生信息