当前位置:网站首页>【GO语言学习之路】结构体实战
【GO语言学习之路】结构体实战
2022-06-09 15:44:00 【温文艾尔】
️写在前面
- 这里是温文艾尔的学习之路
- 如果对你有帮助,给博主一个免费的点赞以示鼓励把QAQ
- 博客主页 温文艾尔的学习小屋
- ️更多文章请关注温文艾尔主页
- 文章发布日期:2022.05.025
- java学习之路!
- 欢迎各位点赞评论收藏️
- 冲冲冲
- ️上一篇内容:【GO语言学习之路】GO语言中的变量
文章目录
实战目标,利用结构体等实现对学生的
- 增加
- 修改
- 查询
package main
import "fmt"
//学员信息管理系统
/** 1.学生有id、姓名、年龄、分数等信息 2.程序提供展示学生列表、添加学生、编辑学生信息、删除学生等功能 */
type Student struct {
id int
name string
class string
}
func newStudent(id int, name string, class string) *Student {
return &Student{
id: id,
name: name,
class: class,
}
}
type studentMgr struct {
allStudents []*Student
}
func newStudentMgr() *studentMgr {
return &studentMgr{
allStudents: make([]*Student, 0, 100),
}
}
//添加学生
func (s *studentMgr) addStudent(stu *Student) {
s.allStudents = append(s.allStudents, stu)
}
//编辑学生
func (s *studentMgr) editStudent(stu *Student) {
for i, v := range s.allStudents {
if v.id == stu.id {
s.allStudents[i] = stu
return
}
}
//走到这里说明没有找到指定的学生
fmt.Printf("输入的学生信息有误,系统中没有学号是 %d 的学生\n", stu.id)
}
//删除学生
func (s *studentMgr) deleteStudent(stu *Student) {
for i, v := range s.allStudents {
if v.id == stu.id {
s.allStudents = append(s.allStudents[:i], s.allStudents[i+1:]...)
return
}
}
//走到这里说明没有找到指定的学生
fmt.Printf("输入的学生信息有误,系统中没有学号是 %d 的学生\n", stu.id)
}
//展示学生
func (s *studentMgr) showStudent() {
for _, v := range s.allStudents {
fmt.Printf("学号:%d 姓名: %s 班级: %s\n", v.id, v.name, v.class)
}
}
package main
import (
"fmt"
"os"
)
//获取用户输入的函数
func getInput() *Student {
var (
id int
name string
class string
)
fmt.Println("请按要求输入学员信息")
fmt.Print("请输入学员的学号:")
fmt.Scanf("%d\n", &id)
fmt.Print("请输入学员的姓名:")
fmt.Scanf("%s\n", &name)
fmt.Print("请输入学员的班级:")
fmt.Scanf("%s\n", &class)
return newStudent(id, name, class)
}
func main() {
sm := newStudentMgr()
for {
//1.打印系统菜单
showMenu()
//2.等待用户选择选项
var input int
fmt.Println("请输入你要操作的序号")
fmt.Scanf("%d\n", &input)
fmt.Println("用户输入的是", input)
//3.执行用户选择的动作
switch input {
case 1:
//添加学员
sm.addStudent(getInput())
fmt.Println("添加成功")
case 2:
//编辑学员信息
sm.editStudent(getInput())
fmt.Println("编辑成功")
case 3:
//展示所有学员信息
sm.showStudent()
case 4:
//删除学员信息
sm.deleteStudent(getInput())
fmt.Println("删除成功")
case 5:
//退出系统
os.Exit(0)
}
}
}
func showMenu() {
fmt.Println("欢迎来到学员信息管理系统")
fmt.Println("1.添加学员")
fmt.Println("2.编辑学员信息")
fmt.Println("3.展示所有学员信息")
fmt.Println("4.删除学员信息")
fmt.Println("5.退出系统")
}
测试
添加
欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
1
用户输入的是 1
请按要求输入学员信息
请输入学员的学号:100
请输入学员的姓名:zs
请输入学员的班级:201913
添加成功
欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
1
用户输入的是 1
请按要求输入学员信息
请输入学员的学号:101
请输入学员的姓名:ls
请输入学员的班级:201914
添加成功
删除
欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
4
用户输入的是 4
请按要求输入学员信息
请输入学员的学号:100
请输入学员的姓名:zs
请输入学员的班级:201913
删除成功
修改
请输入你要操作的序号
3
用户输入的是 3
学号:101 姓名: ls 班级: 201914
欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
2
用户输入的是 2
请按要求输入学员信息
请输入学员的学号:101
请输入学员的姓名:zs
请输入学员的班级:201913
编辑成功
欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
3
用户输入的是 3
学号:101 姓名: zs 班级: 201913
查询
欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
3
用户输入的是 3
学号:101 姓名: zs 班级: 201913
边栏推荐
猜你喜欢
随机推荐
How to use PS slicing tool to cut pictures
June training (day 01) - array
期货在哪开户,找谁开安全可靠??
618. How to prepare for the great promotion
ps填充快捷键是什么
单体应用和微服务调用区别
Google showed its AI "trump card" and generated super realistic pictures. Netizen: is openaidall-e going to be crushed?
若依 思维导图
Mysql进阶优化篇01——四万字详解数据库性能分析工具(深入、全面、详细,收藏备用)
Byte side: how to check if the website cannot be displayed?
构建从智能质检到对话分析的一体化智能对话分析平台 ,杭州银行客服中心打造智慧运营新名片
65 2D绘图(基本绘制和填充)
How to realize WPS slash heading and typing separately
低代码分析盘点:银行业低代码应用需要规避两大误区
wps如何取消隐藏的单元格工作表
Qscrollarea use tutorial to realize the setting interface that can slide up and down
LeetCode 327. 区间和的个数
五月集训(第31天) —— 状态压缩
PS how to import fonts
The aquatic industry digital B2B e-commerce platform realizes fine management and drives enterprise performance growth








