go语言实现简单的学生管理系统
Posted 李斌的BLOG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言实现简单的学生管理系统相关的知识,希望对你有一定的参考价值。
介绍
总结go语言的基础学习,通过两种方式实现简单的学生信息管理系统
方法一
package main
import (
"fmt"
"os"
)
// 定义所有学生信息
var studentData map[int]*student
// 定义学生
type student struct
id int64
name string
score int
// 初始化分配内存空间
func init()
studentData = make(map[int]*student,100)
func main()
for
fmt.Println("北京大学学生管理系统欢迎您!")
fmt.Println(`1:查看所有学生信息
2:新增学生
3:删除学生
4:退出系统`)
fmt.Print("请输入操作的序号:")
var inputId int
fmt.Scanln(&inputId)
switch inputId
case 1:
showStudent()
case 2:
addStudent()
case 3:
delStudent()
case 4:
os.Exit(1)
// @title 学生信息展示
func showStudent()
fmt.Println("------------------------------")
for k,v := range studentData
fmt.Printf("学号:%d,姓名:%s,分数:%d \\n", k, v.name, v.score)
fmt.Println("------------------------------")
// @title 添加学生信息
func addStudent()
// 定义输入的参数
var (
id int64
name string
score int
)
// 执行输入操作
fmt.Print("请输入学生的学号:")
fmt.Scanln(&id)
fmt.Print("请输入学生的姓名:")
fmt.Scanln(&name)
fmt.Print("请输入学生的分数:")
fmt.Scanln(&score)
// 通过构造函数生成学生信息
stu := newAddStudent(id,name,score)
// 追加到 map 中
studentData[int(id)] = stu
fmt.Printf("学号为:%d 的学生添加成功了\\n", id)
// @title 删除学生信息
func delStudent()
var id int64
fmt.Print("请输入学生的学号:")
fmt.Scanln(&id)
delete(studentData, int(id))
fmt.Printf("学号为:%d 的学生删除成功\\n", id)
// @title 新增学生构造函数
func newAddStudent(id int64, name string,score int) *student
return &student
id:id,
name:name,
score: score,
方法二
package main
import (
"fmt"
"os"
)
// 定义所有学生信息
var studentData map[int]*student
// 定义学生
type student struct
id int64
name string
score int
// 初始化分配内存空间
func init()
studentData = make(map[int]*student,100)
func main()
s := student
for
fmt.Println("北京大学学生管理系统欢迎您!")
fmt.Println(`1:查看所有学生信息
2:新增学生
3:删除学生
4:退出系统`)
fmt.Print("请输入操作的序号:")
var inputId int
fmt.Scanln(&inputId)
switch inputId
case 1:
s.showStudent()
case 2:
s.addStudent()
case 3:
s.delStudent()
case 4:
os.Exit(1)
// @title 学生信息展示
func (s *student) showStudent()
fmt.Println("| ID | 姓名 | 成绩 |")
for k,v := range studentData
fmt.Printf("| %-d | %-s | %-d |\\n", k, v.name, v.score)
// @title 添加学生信息
func (s *student) addStudent()
// 定义输入的参数
var (
id int64
name string
score int
)
// 执行输入操作
fmt.Print("请输入学生的学号:")
fmt.Scanln(&id)
fmt.Print("请输入学生的姓名:")
fmt.Scanln(&name)
fmt.Print("请输入学生的分数:")
fmt.Scanln(&score)
// 通过构造函数生成学生信息
stu := newAddStudent(id,name,score)
// 追加到 map 中
studentData[int(id)] = stu
fmt.Printf("学号为:%d 的学生添加成功了\\n", id)
// @title 删除学生信息
func (s *student) delStudent()
var id int64
fmt.Print("请输入学生的学号:")
fmt.Scanln(&id)
delete(studentData, int(id))
fmt.Printf("学号为:%d 的学生删除成功\\n", id)
// @title 新增学生构造函数
func newAddStudent(id int64, name string,score int) *student
return &student
id:id,
name:name,
score: score,
学生管理系统完整版
main.go
package main
import (
"fmt"
"os"
)
func main()
var (
s = studentDbstudentData: make(map[int64]*student) // 初始化学生的内存空间
input int // 定义键盘输入参数
)
welcome() // 输出系统欢迎界面
menu() // 输出控制菜单
for
fmt.Print("请输入操作的序号[1,2,3,4,5]===>>>:")
// 判断输入
_, err := fmt.Scanln(&input)
if err != nil
fmt.Println("Error:输入错误,请重新输入")
// 处理操作序号
switch input
case 1:
s.show()
case 2:
s.create()
case 3:
s.update()
case 4:
s.delete()
case 0:
os.Exit(1)
default:
fmt.Println("Error:没有此序号,请重新输入")
// 系统欢迎界面
func welcome()
fmt.Println("----------------------------------------------")
fmt.Println("| Welcome to [清华大学] 学生管理系统 |")
fmt.Println("----------------------------------------------")
// 选择菜单
func menu()
fmt.Println("----------------------------------------------")
fmt.Println("| 序号 | 操作内容 |")
fmt.Println("| 1 | 查看所有学生 |")
fmt.Println("| 2 | 添加学生 |")
fmt.Println("| 3 | 修改学生信息 |")
fmt.Println("| 4 | 删除学生 |")
fmt.Println("| 0 | 退出系统 |")
fmt.Println("----------------------------------------------")
student.go
package main
import "fmt"
// 定义学生数据源
type studentDb struct
studentData map[int64]*student
// 定义单个学生包含的信息
type student struct
name string
age int8
// 添加学生
func (s *studentDb) create()
var (
id int64
n string
a int8
)
fmt.Printf("请输入学生的ID学号:")
_, err := fmt.Scanln(&id)
if err != nil
fmt.Println("Error:学生信息输入错误!")
return
fmt.Printf("请输入学生的姓名:")
_, err = fmt.Scanln(&n)
if err != nil
fmt.Println("Error:学生信息输入错误!")
return
fmt.Printf("请输入学生的age:")
_, err = fmt.Scanln(&a)
if err != nil
fmt.Println("Error:学生信息输入错误!")
return
// 添加学生
stu := &student
name: n,
age: a,
s.studentData[id] = stu
fmt.Println("恭喜您,添加成功!")
// 删除学生
func (s *studentDb) delete()
// 引导输入
var input int64
fmt.Printf("请输入学生的ID则系统进行查找:")
_, err := fmt.Scanln(&input)
if err != nil
fmt.Println("Error:输入错误,请重新输入")
return
// 判断是否存在
_,ok := s.studentData[input]
if !ok
fmt.Println("没有找到此学生!!!")
return
// 进行删除
delete(s.studentData, input)
fmt.Println("恭喜您,学生删除成功咯!")
// 修改学生
func (s *studentDb) update()
// 引导输入
var input int64
fmt.Printf("请输入学生的ID则系统进行查找:")
_, err := fmt.Scanln(&input)
if err != nil
fmt.Println("Error:输入错误,请重新输入")
return
// 判断是否存在
v,ok := s.studentData[input]
if !ok
fmt.Println("没有找到此学生!!!")
return
fmt.Printf("您要修改的学生信息是:学号:%d、姓名:%s、年龄:%d \\n", input, v.name, v.age)
// 进行修改
var (
n string
a int8
)
fmt.Printf("请输入学生的姓名:")
_, err = fmt.Scanln(&n)
if err != nil
fmt.Println("Error:学生信息输入错误!")
return
fmt.Printf("请输入学生的age:")
_, err = fmt.Scanln(&a)
if err != nil
fmt.Println("Error:学生信息输入错误!")
return
v.name = n
v.age = a
s.studentData[input] = v
fmt.Println("恭喜您,修改成功了666!")
// 查看学生
func (s *studentDb) show()
fmt.Println("所有的学生信息展示如下:")
for k,v := range s.studentData
fmt.Printf("学号:%d、姓名:%s、年龄:%d \\n",k, v.name, v.age)
以上是关于go语言实现简单的学生管理系统的主要内容,如果未能解决你的问题,请参考以下文章
关于学生信息管理的C语言编程问题求救(一定要是C语言编程,谢谢)