Go语言学习笔记十八-练习篇-Go语言版学生信息管理系统
练习篇-Go语言版简单学生信息管理系统
1 package main 2 3 import ( 4 "fmt" 5 "os" 6 ) 7 8 //怎么又是学生信息管理系统 9 //学生类 10 type Student struct { 11 StuId string 12 StuName string 13 StuGrade string 14 StuScore float32 15 } 16 //学生构造函数 17 func NewStudent(id string,name string,grade string,score float32) *Student { 18 newStu := new(Student) 19 newStu.StuId = id 20 newStu.StuName = name 21 newStu.StuGrade = grade 22 newStu.StuScore = score 23 return newStu 24 } 25 //定义学生的全局变量 26 var AllStu = make(map[string]Student,100) 27 28 func Menu() { 29 fmt.Println("------------------学生信息管理系统------------------") 30 fmt.Println("------------------1、添加学生----------------------") 31 fmt.Println("------------------2、修改学生信息-------------------") 32 fmt.Println("------------------3、查找学生----------------------") 33 fmt.Println("------------------4、学生信息展示-------------------") 34 fmt.Println("------------------0、退出系统----------------------") 35 fmt.Println("-------------------------------------------------") 36 } 37 38 func AddStu() { 39 var id string 40 var name string 41 var grade string 42 var score float32 43 fmt.Print("请输入id: ") 44 fmt.Scanf("%s\n",&id) 45 fmt.Print("请输入姓名: ") 46 fmt.Scanf("%s\n",&name) 47 fmt.Print("请输出年级: ") 48 fmt.Scanf("%s\n",&grade) 49 fmt.Print("请输入分数: ") 50 fmt.Scanf("%f\n",&score) 51 newStu := NewStudent(id,name,grade,score) 52 fmt.Println(newStu) 53 //所有学生加入学生对象 54 AllStu[newStu.StuId] = *newStu 55 fmt.Println("添加成功!") 56 } 57 func SearchStu(id string) bool { 58 value,ok := AllStu[id] 59 if ok { 60 fmt.Println("查找到了该学生!") 61 fmt.Printf("学号:%s 姓名:%s 年级:%s 分数:%.2f\n\n", 62 value.StuId,value.StuName,value.StuGrade,value.StuScore) 63 return ok 64 } else { 65 fmt.Println("没有该学生!") 66 return false 67 } 68 } 69 func ModifyStu() { 70 var id string 71 fmt.Print("请输出你要查找的学生的学号:") 72 fmt.Scanf("%s\n",&id) 73 res := SearchStu(id) 74 if res { 75 var id string 76 var name string 77 var grade string 78 var score float32 79 fmt.Print("请输入id: ") 80 fmt.Scanf("%s\n",&id) 81 fmt.Print("请输入姓名: ") 82 fmt.Scanf("%s\n",&name) 83 fmt.Print("请输出年级: ") 84 fmt.Scanf("%s\n",&grade) 85 fmt.Print("请输入分数: ") 86 fmt.Scanf("%f\n",&score) 87 newStu := NewStudent(id,name,grade,score) 88 AllStu[id] = *newStu 89 fmt.Println("修改成功!") 90 } 91 } 92 93 func ShowStu() { 94 for _, value := range AllStu { 95 fmt.Printf("学号:%s 姓名:%s 年级:%s 分数:%.2f\n\n", 96 value.StuId,value.StuName,value.StuGrade,value.StuScore) 97 } 98 } 99 func main() { 100 for { 101 Menu() 102 var opt int 103 var id string 104 fmt.Println("请输入你的操作") 105 fmt.Scanf("%d\n",&opt) 106 switch opt { 107 case 1: 108 AddStu() 109 case 2: 110 ModifyStu() 111 case 3: 112 fmt.Print("请输出你要查找的学生的学号:") 113 fmt.Scanf("%s\n",&id) 114 SearchStu(id) 115 case 4: 116 ShowStu() 117 case 0: 118 os.Exit(0) 119 default: 120 fmt.Println("输入错误!请重新输入") 121 122 } 123 } 124 125 }
分类:
Go语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!