前言:
今天学习了go的结构体,方法。所以就写了一个学生管理系统来熟悉一下这方面的知识,只是一个简单的使用,并未涉及复杂逻辑,对于初学者巩固基础比较有帮助。
这是一个学生管理系统。具有查询所有学生、按序号需查询学生、增加学生、删除学生、退出系统功能。采用用户管理控制等方式来实现,模拟一个网页操作。具体实现看代码部分,具有详细注释。有错误欢迎指出。
代码样例
package main
import (
"fmt"
"os"
)
//学生管理系统 实现功能 查找所有学生 按学号查找指定学生 增加学生 删除学生
//定义一个结构体 存放学生信息
type student struct {
id int64 //学号
name string //名字
class string //班级
profession string //专业
}
//定义一个结构体 作为用户登陆
type manager struct {
id int //作为用户id
}
//定义一个全局map用来存放学生相关信息 返回一个指针
var stu map[int64]*student
//student 结构体构建一个构造函数 方便以后的调用
func newStudent(id int64,name string,class string,profession string) *student{
return &student{
id: id,
name: name,
class: class,
profession: profession,
}
}
//查询所有学生
func (m manager)queryAllStudent() {
fmt.Println("学生表单如下:")
for k,v:=range stu{
fmt.Println(k,v.name,v.class,v.profession)
}
fmt.Println("over......")
}
//根据学号查询学生信息
func (m manager)queryStudentById(id int64) {
var flag bool = false
for k,v:=range stu {
if k == id{
flag = true
fmt.Println("找到学生,学生信息如下:")
fmt.Println(k,v.name,v.class,v.profession)
}
}
if !flag {
fmt.Println("没有找到学生信息,请检查学号是否正确")
}
}
//增加学生
func (m manager)addStudent() {
var(
id int64 //学号
name string //名字
class string //班级
profession string //专业
)
fmt.Println("请按如下格式输入学生信息")
fmt.Println("格式:id name class profession 中间用空格作为区分,回车结束")
fmt.Print("准备好了嘛,请开始输入:")
fmt.Scanf("%d %s %s %s\n",&id ,&name, &class, &profession)
newStu :=newStudent(id,name,class,profession)
stu[id] = newStu
fmt.Println("添加学生成功")
}
//根据学号删除学生
func (m manager)deleteStudent() {
var id int64
fmt.Print("请输入要删除学生的学号:")
fmt.Scanln(&id)
//从map中删除
delete(stu,id)
fmt.Println("已删除学生相关信息")
}
func main() {
user := manager{id:1}
stu = make(map[int64]*student,10)
for{
fmt.Println("欢迎登陆学生管理系统")
fmt.Println(`功能如下:
1. 查询所有学生
2. 按学号查找所有学生
3. 增加学生
4. 删除学生
5. 退出系统`)
fmt.Print("请输入你的选择:")
var choose int
fmt.Scanln(&choose)
switch choose {
case 1: user.queryAllStudent()
case 2:
var id int64
fmt.Print("请输入要查找的学号:")
fmt.Scanln(&id)
user.queryStudentById(id)
case 3:
user.addStudent()
case 4:
user.deleteStudent()
case 5:
os.Exit(0)
default:
fmt.Println("输入错误信息,请输入正确的信息")
}
}
fmt.Println("已退出学生管理系统")
}