go语言基础项目

一、猜拳游戏程序:

功能:
1、要有一个游戏主界面
2、提示用户输入石头,剪刀,布 三个选项之一
3、用户输入与系统内置随机结果比较
4、输出比较的结果,谁赢谁输
5、统计用户赢的次数多还是机器赢的次数多
扩展:
1、登录验证,身份信息加密存储
2、AI算法实现,实现预判用户输入
 

具体实现:

/********************************************************************
  2  *文件名:xm1.go
  3  *作  者:Mr.Yu
  4  *时  间:2023年05月21日 星期日 10时22分11秒
  5  *版  本:1.0
  6  *作  用:
  7 ********************************************************************/
  8 package main
  9 
 10 /*"crypto/md5","encoding/hex"用于对玩家账户和密码进行加密保护
 11 "math/rand","time"产生随机数用于简单AI*/
 12 import (
 13 "fmt"
 14 "crypto/md5"
 15 "encoding/hex"
 16 "math/rand"
 17 "time"
 18 )
 19 
 20 /*定义全局变量,以下变量分别代表“玩家历史出招”,“胜负历史”,“玩家总胜数”,“AI总胜数”,“平局总数”
 21 以便于对历史数据进行统计实现历史战绩功能和让AI进行分析预判*/
 22 var (
 23     wjls []int
 24     sfls []string
 25     wjzs int = 0
 26     aizs int = 0
 27     pjzs int = 0
 28     )
 29 
 30 /*主体函数部分*/
 31 
 32 func main() {
 33     /*定义用于存放账号密码的map*/
 34     zhmm := make(map[string]string,100)
 35     /*定义用于打破部分层循环的条件变量,用于返回登录界面和结束游戏*/
 36     var (
 37         kill int = 0
 38         kill1 int = 0
 39         kill2 int = 0
 40     )
 41 
 42     /*最外层核心循环(登录界面)*/
 43 
 44     for kill == 0{
 45         /*重置循环条件kill1*/
 46         kill1 = 0
 47         /*调用登陆界面函数,打印登录界面*/
 48         dljm()
 49         /*该部分用于接收玩家选项*/
 50         var dljmxx int
 51         fmt.Println("\n请选择(输入序号):\n")
 52         yz,_ := fmt.Scanln(&dljmxx)
 53         if yz == 0 || dljmxx < 1 || dljmxx > 3 {
 54             fmt.Println("\n非法选项!请重新输入!\n")
 55             continue
 56         /*该支路用于注册玩家账号密码*/
 57         }else if dljmxx == 1{
 58             /*用于接收接收玩家账号和密码*/
 59             var zh string
 60             var mm string
 61             /*创建账号*/
 62             for {
 63                 fmt.Println("\n请输入一个4~8位的账号作为你的游戏账号(只能由有效字符构成):\n")
 64                 yz1,_ := fmt.Scanln(&zh)
 65                 /*调用账号检索函数判断账号是否已存在,返回验证值*/
 66                 yz2 := zhjs(zh,zhmm)
 67                 if yz1 == 0 || len([]rune(zh)) < 4 || len([]rune(zh)) > 8 {
 68                     fmt.Println("\n请输入4~8位的有效字符!\n")
 69                     continue
 70                 }else if yz2 == 0 {
 71                     fmt.Println("\n当前账号已存在!\n")
 72                     continue
 73                 }else {
 74                     break
 75                 }
 76             }
 77             /*创建密码*/
 78             for {
 79                 fmt.Println("\n请输入一个6~8位的密码作为你的游戏密码(只能由有效字符构成):\n")
 80                 yz1,_ := fmt.Scanln(&mm)
 81                 if yz1 == 0 || len([]rune(mm)) < 6 || len([]rune(mm)) > 8 {
 82                     fmt.Println("\n请输入6~8位的有效字符!\n")
 83                     continue
 84                 }else {
 85                     break
 86                 }
 87             }
 88             /*调用账号密码存储函数,对账号和密码进行存放*/
 89             zhmmcc(zh,mm,zhmm)
 90             fmt.Println("\n注册成功!现在你可以登陆了!\n")
 91         /*该支路用于玩家登录游戏*/
 92         }else if dljmxx == 2 {
 93             for kill1 == 0{
 94                 /*重置循环条件kill2*/
 95                 kill2 = 0
 96                 var zh1 string
 97                 var mm1 string
 98                 fmt.Println("\n请输入你的账号:\n")
 99                 yz1,_ := fmt.Scanln(&zh1)
100                 /*调用账号检索函数,判断账号是否存在,返回验证值*/
101                 yz2 := zhjs(zh1,zhmm)
102                 if yz1 == 0 {
103                     fmt.Println("\n输入非法!请重新输入!\n")
104                     continue
105                 }else if yz2 == 1 {
106                     fmt.Println("\n账号不存在!请先注册!\n")
107                     break
108                 }else {
109                     for kill2 == 0{
110                         fmt.Println("\n请输入密码:\n")
111                         yz1,_ := fmt.Scanln(&mm1)
112                         /*调用密码检索函数,判断密码是否正确,返回验证值*/
113                         yz2 := mmjs(zh1,mm1,zhmm)
114                         if yz1 == 0 {
115                             fmt.Println("\n输入非法!请重新输入!\n")
116                             continue
117                         }else if yz2 == 0 {
118                             fmt.Println("\n密码错误!请重新输入!\n")
119                             continue
120                         }else {
121                             fmt.Println("登陆成功!现在你可以开始游玩了!")
122 
123                             /*第二层核心循环(主界面)*/
124 
125                             for {
126                                 var zjmxx int
127                                 /*调用主界面函数,打印主界面*/
128                                 zjm()
129                                 fmt.Println("\n请选择(输入序号):\n")
130                                 yz1,_ := fmt.Scanln(&zjmxx)
131                                 if yz1 == 0 || zjmxx < 1 || zjmxx > 5 {
132                                     fmt.Println("\n选项非法!请重新输入!\n")
133                                     continue
134                                 /*该支路用于开启猜丁壳简单模式*/
135                                 }else if zjmxx == 1 {
136                                     /*调用简单模式函数*/
137                                     jdms()
138                                 /*该支路用于开启猜丁壳困难模式*/
139                                 }else if zjmxx == 2 {
140                                     /*调用困难模式函数*/
141                                     knms()
142                                 /*该支路用于查看历史战绩*/
143                                 }else if zjmxx == 3 {
144                                     /*调用历史战绩函数*/
145                                     lszj()
146                                 /*该支路用于返回登录页面*/
147                                 }else if zjmxx == 4 {
148                                     kill1 = 1
149                                     kill2 = 1
150                                     break
151                                 /*该支路用于在主界面直接退出游戏*/
152                                 }else {
153                                     fmt.Println("\n期待你的下次游玩!\n")
154                                     kill = 1
155                                     kill1 = 1
156                                     kill2 = 1
157                                     break
158                                 }
159                             }
160                         }
161                     }
162                 }
163             }
164         /*该支路用于在登录界面退出游戏*/
165         }else {
166             fmt.Println("\n期待你的下次游玩!\n")
167             break
168         }
169     }
170 }
171 
172 /*自定义函数(功能)部分*/
173 
174 /*登录界面函数*/
175 func dljm() {
176     for i:=0;i < 21;i++ {
177         print("*~")
178     }
179     fmt.Println()
180     fmt.Println("*~\t\t我爱猜丁壳\t\t*~")
181     fmt.Println("*~\t\t1.注册账号\t\t*~")
182     fmt.Println("*~\t\t2.登陆账号\t\t*~")
183     fmt.Println("*~\t\t3.退出游戏\t\t*~")
184     for i:=0;i < 21;i++ {
185         print("*~")
186     }
187     fmt.Println()
188 }
189 /*主界面函数*/
190 func zjm() {
191     for i:=0;i < 21;i++ {
192         print("*~")
193     }
194     fmt.Println()
195     fmt.Println("*~\t\t开始对决吧\t\t*~")
196     fmt.Println("*~\t\t1.简单模式\t\t*~")
197     fmt.Println("*~\t\t2.困难模式\t\t*~")
198     fmt.Println("*~\t\t3.历史战绩\t\t*~")
199     fmt.Println("*~\t\t4.登陆界面\t\t*~")
200     fmt.Println("*~\t\t5.退出游戏\t\t*~")
201     for i:=0;i < 21;i++ {
202         print("*~")
203     }
204     fmt.Println()
205 /*账号检索函数,用于在注册账号时判断账号是否重复,和在登录时判读账号是否存在*/
206 }
207 func zhjs(zh string,zhmm map[string]string) int {
208     /*由于账号和密码都是加密存放的,所以要先进行加密,在进行检索*/
209     md5sj := md5.New()
210     md5sj.Write([]byte(zh))
211     zhh := md5sj.Sum(nil)
212     jmzh := hex.EncodeToString(zhh)
213     for k,_ := range zhmm {
214         if k == jmzh {
215             return 0
216         }
217     }
218     return 1
219 }
220 /*帐号密码存储函数,通过map类型和md5,对密码和帐号进行存放*/
221 func zhmmcc(zh,mm string,zhmm map[string]string) {
222     /*调用加密函数对账号和密码进行加密,返回加密的账号和密码*/
223     zh,mm = md5jm(zh,mm)
224     zhmm[zh] = mm
225 }
226 /*加密函数通过md5对数据进行简单加密*/
227 func md5jm(zh,mm string) (string,string){
228     md5sj := md5.New()
229     md5sj.Write([]byte(zh))
230     zhh := md5sj.Sum(nil)
231     jmzh := hex.EncodeToString(zhh)
232     md5sj1 := md5.New()
233     md5sj1.Write([]byte(mm))
234     mmm := md5sj1.Sum(nil)
235     jmmm := hex.EncodeToString(mmm)
236     return jmzh,jmmm
237 }
238 /*密码检索函数*/
239 func mmjs(zh1,mm1 string,zhmm map[string]string) int {
240     zh1,mm1 = md5jm(zh1,mm1)
241     if zhmm[zh1] == mm1 {
242         return 1
243     }else {
244         return 0
245     }
246 }
247 /*简单模式函数*/
248 func jdms() {
249     /*产生随机数用作AI*/
250     rand.Seed(time.Now().UnixNano())
251     var wj int
252     ai := rand.Intn(3)
253     /*接收玩家招式,判断对局情况,并打印出对局情况*/
254     for {
255         fmt.Println("\n请你出招(0代表石头,1代表剪刀,2代表布):\n")
256         yz,_ := fmt.Scanln(&wj)
257         if yz == 0 || wj < 0 || wj > 2 {
258             fmt.Println("\n输入非法!请重新输入!\n")
259             continue
260         }else {
261             /*调用结果打印函数打印结果*/
262             jgdy(wj,ai)
263             break
264         }
265     }
266     /*调用数据统计函数,并向该函数传递关键数据,用以统计关键历史数据*/
267     sjtj(wj,ai)
268 }
269 /*数据统计函数,统计关键历史数据,辅助生成历史战绩,和为困难AI提供玩家习惯*/
270 func sjtj(wj,ai int) {
271     wjls = append(wjls,wj)
272     if wj == ai {
273         sfls = append(sfls,"平局")
274         pjzs++
275     }else if (wj == 0 && ai == 1) || (wj == 1 && ai == 2) || (wj == 2 && ai == 0) {
276         sfls = append(sfls,"玩家获胜")
277         wjzs++
278     }else {
279         sfls = append(sfls,"AI获胜")
280         aizs++
281     }
282 }
283 /*困难模式函数(困难AI采用简单的手写算法,及通过对玩家的历史出招进行分析,当存在一个玩家最常用的招式时AI固定采用该
    招式的克制招式,当存在两个最常用的招式时AI通过随机数自定一个克制招式,当存在三个最常用招式或还未有历史招式时困难模
    式函数将调用简单模式跳转至简单模式启动,这里的玩家历史出招统计了以往玩家在简单模式和困难模式的全部出招)*/
284 func knms() {
285     var wj int
286     var (
287         a int
288         b int
289         c int
290     )
291     if len(wjls) < 1 {
292         /*调用为简单模式*/
293         jdms()
294     }else {
295         for _,v := range wjls {
296             if v == 0 {
297                 a++
298             }else if v == 1 {
299                 b++
300             }else {
301                 c++
302             }
303         }
304         if a == b && b == c {
305             /*调用为简单模式*/
306             jdms()
307         }else {
308             for {
309                 /*该随机数是用于在玩家有两个最常用招式的时候随机一个克制招式*/
310                 ai := rand.Intn(2)
311                 fmt.Println("\n请你出招(0代表石头,1代表剪刀,2代表布):\n")
312                 yz,_ := fmt.Scanln(&wj)
313                 if yz == 0 || wj < 0 || wj > 2 {
314                     fmt.Println("\n输入非法!请重新输入!\n")
315                     continue
316                 }else {
317                     if a == b && a > c {
318                         if ai == 0 {
319                             /*调用结果打印函数和数据统计函数*/
320                             jgdy(wj,2)
321                             sjtj(wj,2)
322                         }else if ai == 1 {
323                             jgdy(wj,0)
324                             sjtj(wj,0)
325                         }
326                     }else if a == c && a > b {
327                         if ai == 0 {
328                             jgdy(wj,2)
329                             sjtj(wj,2)
330                         }else if ai == 1 {
331                             jgdy(wj,1)
332                             sjtj(wj,1)
333                         }
334                     }else if b == c && b > a {
335                         if ai == 0 {
336                             jgdy(wj,0)
337                             sjtj(wj,0)
338                         }else if ai == 1 {
339                             jgdy(wj,1)
340                             sjtj(wj,1)
341                         }
342                     }else if a > b && a > c {
343                         jgdy(wj,2)
344                         sjtj(wj,2)
345                     }else if b > a && b > c {
346                         jgdy(wj,0)
347                         sjtj(wj,0)
348                     }else  {
349                         jgdy(wj,1)
350                         sjtj(wj,1)
351                     }
352                 }
353                 break
354             }
355         }
356     }
357 }
358 /*结果打印函数*/
359 func jgdy(wj,ai int) {
360     if ai == 0 && wj == 0 {
361         fmt.Println("\nAI:石头,玩家:石头,平局!\n")
362     }else if ai == 1 && wj == 1 {
363         fmt.Println("\nAI:剪刀,玩家:剪刀,平局!\n")
364     }else if ai == 2 && wj == 2 {
365         fmt.Println("\nAI:布,玩家:布,平局!\n")
366     }else if ai == 0 && wj == 1 {
367         fmt.Println("\nAI:石头,玩家:剪刀,AI获胜!\n")
368     }else if ai == 0 && wj == 2 {
369         fmt.Println("\nAI:石头,玩家:布,玩家获胜!\n")
370     }else if ai == 1 && wj == 0 {
371         fmt.Println("\nAI:剪刀,玩家:石头,玩家获胜!\n")
372     }else if ai == 1 && wj == 2 {
373         fmt.Println("\nAI:剪刀,玩家:布,AI获胜!\n")
374     }else if ai == 2 && wj == 0 {
375         fmt.Println("\nAI:布,玩家:石头,AI获胜!\n")
376     }else if ai == 2 && wj == 1 {
377         fmt.Println("\nAI:布,玩家:剪刀,玩家获胜!\n")
378     }
379 }
380 /*历史战绩函数*/
381 func lszj() {
382     fmt.Println("\n历史战绩:\n")
383     fmt.Println("玩家总胜:",wjzs)
384     fmt.Println("AI总胜:",aizs)
385     fmt.Println("平局总数:",pjzs)
386     fmt.Println("\n详情:\n")
387     for _,v := range sfls {
388         fmt.Println(v)
389     }
390     fmt.Println()
391 }

二、学生管理信息系统程序:


功能:

1、有学生管理系统主界面
2、主界面要有增、删、改,查的选项
3、可以向系统新建学生信息,信息越全越好(姓名,性别,年龄,年级,专业,住址 .......)
4、针对学生信息可以完成基本维护工作,且保证数据一致性。
5、系统要有退出选项,不能无限制增加。

具体实现:

  1 /********************************************************************
  2  *文件名:xm2.go
  3  *作  者:Mr.Yu
  4  *时  间:2023年05月27日 星期六 19时02分45秒
  5  *版  本:1.0
  6  *作  用:
  7 ********************************************************************/
  8 package main
  9 
 10 import "fmt"
 11 
 12 /*定义全局变量xsxx,用以存储学生信息,该复杂map的第一层的key为学生学号,第二层的key为6个信息类别名*/
 13 var xsxx = make(map[int] map[string]string)
 14 
 15 /*主体函数部分*/
 16 
 17 func main() {
 18     for {
 19         /*定义变量zjmxx用于接收用户在主界面的选项*/
 20         var zjmxx int
 21         /*定义变量kill接受修改函数部分的返回值,并用于判断是否直接退出主系统*/
 22         var kill int
 23         zjm()
 24         /*接收用户在主界面的选项,并判断是否合法*/
 25         fmt.Println("\n请输入对应操作的序号:\n")
 26         yz,_ := fmt.Scanln(&zjmxx)
 27         if yz == 0 || zjmxx < 1 || zjmxx > 5 {
 28             fmt.Println("\n输入非法!请重新输入!\n")
 29             continue
 30         }else {
 31             /*该支路用于添加学生信息*/
 32             if zjmxx == 1 {
 33                 /*调用添加学生信息函数*/
 34                 tj()
 35             /*该支路用于删除学生信息*/
 36             }else if zjmxx == 2 {
 37                 /*调用删除学生信息函数*/
 38                 sc()
 39             /*该支路用于修改学生信息*/
 40             }else if zjmxx == 3 {
 41                 /*调用修改学生信息函数,返回用户在修改界面是否直接退出主程序的选择*/
 42                 kill = xg()
 43             /*该支路用于查询学生信息*/
 44             }else if zjmxx == 4 {
 45                 /*调用查询学生信息函数*/
 46                 cx()
 47             }else {
 48                 break
 49             }
 50         }
 51         if kill == 1 {
 52             break
 53         }
 54     }
 55 }
 56 
 57 /*自定义函数(功能)部分*/
 58 
 59 /*主界面函数,用于打印主界面*/
 60 func zjm() {
 61     for i := 0;i < 21;i++ {
 62         print("*~")
 63     }
 64     fmt.Println()
 65     fmt.Println("*~\t\t<学生信息系统>\t\t*~")
 66     fmt.Println("*~\t\t1.添加学生信息\t\t*~")
 67     fmt.Println("*~\t\t2.删除学生信息\t\t*~")
 68     fmt.Println("*~\t\t3.修改学生信息\t\t*~")
 69     fmt.Println("*~\t\t4.查询学生信息\t\t*~")
 70     fmt.Println("*~\t\t5.退出信息系统\t\t*~")
 71     for i := 0;i < 21;i++ {
 72         print("*~")
 73     }
 74     fmt.Println()
 75 }
 76 /*添加函数,用于添加学生信息*/
 77 func tj() {
 78     /*以下变量分别用于接收学生的学号、姓名、年龄、性别、年级、专业、住址*/
 79     var (
 80         xsxh int
 81         xsxm string
 82         xsnl string
 83         xsxb string
 84         xsnj string
 85         xszy string
 86         xszz string
 87     )
 88     for {
 89         fmt.Println("\n请输入学生学号:\n")
 90         yz,_ := fmt.Scanln(&xsxh)
 91         if yz == 0 {
 92             fmt.Println("\n输入非法!请重新输入!\n")
 93             continue
 94         }else {
 95             fmt.Println("\n请分别输入学生的姓名、年龄、性别、年级、专业、住址:\n")
 96             yz1,_ := fmt.Scanln(&xsxm,&xsnl,&xsxb,&xsnj,&xszy,&xszz)
 97             if yz1 == 0 {
 98                 fmt.Println("\n输入非法!请重新输入!\n")
 99                 continue
100             }else {
101                 xsxx[xsxh] = make(map[string]string)
102                 xsxx[xsxh]["学生姓名"] = xsxm
103                 xsxx[xsxh]["学生年龄"] = xsnl
104                 xsxx[xsxh]["学生性别"] = xsxb
105                 xsxx[xsxh]["学生年级"] = xsnj
106                 xsxx[xsxh]["学生专业"] = xszy
107                 xsxx[xsxh]["学生住址"] = xszz
108             }
109         }
110         fmt.Println("\n添加成功!\n")
111         break
112     }
113 }
114 /*删除函数*/
115 func sc() {
116     var xsxh int
117     for {
118         fmt.Println("\n请输入你的删除对象的学号:\n")
119         yz,_ := fmt.Scanln(&xsxh)
120         if yz == 0 {
121             fmt.Println("\n输入非法!请重新输入!\n")
122             continue
123         }else {
124             delete(xsxx,xsxh)
125         }
126         fmt.Println("\n删除成功!\n")
127         break
128     }
129 }
130 /*学生信息修改界面函数,用于打印学生信息修改界面*/
131 func xgjm() {
132     for i := 0;i < 21;i++ {
133         print("*~")
134     }
135     fmt.Println()
136     fmt.Println("*~\t\t<学生信息修改>\t\t*~")
137     fmt.Println("*~\t\t1.修改学生姓名\t\t*~")
138     fmt.Println("*~\t\t2.修改学生年龄\t\t*~")
139     fmt.Println("*~\t\t3.修改学生性别\t\t*~")
140     fmt.Println("*~\t\t4.修改学生年级\t\t*~")
141     fmt.Println("*~\t\t5.修改学生专业\t\t*~")
142     fmt.Println("*~\t\t6.修改学生住址\t\t*~")
143     fmt.Println("*~\t\t7.返回上一界面\t\t*~")
144     fmt.Println("*~\t\t8.退出信息系统\t\t*~")
145     for i := 0;i < 21;i++ {
146         print("*~")
147     }
148     fmt.Println()
149 }
150 /*索引函数,用于判断对应学号是否存在*/
151 func sy(xsxh int) int{
152     var sfcz int
153     for k := range xsxx {
154         if xsxh == k {
155             sfcz = 1
156         }
157     }
158     return sfcz
159 }
160 /*修改函数*/
161 func xg() int{
162     /*以下变量分别用于接收用户在修改界面的选择
163       和学生的学号、姓名、年龄、性别、年级、专业、住址
164       以及两个是否打断循环的条件*/
165     var (
166         xgjmxx int
167         xsxh int
168         xsxm string
169         xsnl string
170         xsxb string
171         xsnj string
172         xszy string
173         xszz string
174         kill1 int
175         kill2 int
176     )
177     for {
178         /*接收用户输入的学号,并判断是否存在以及是否合法*/
179         fmt.Println("\n请输入代修改对象的学号:\n")
180         yz,_ := fmt.Scanln(&xsxh)
181         /*调用索引函数,返回学号是否存在的判断结果*/
182         sfcz := sy(xsxh)
183         if yz == 0 || sfcz == 0 {
184             fmt.Println("\n输入非法或该学号不存在!请重新输入!\n")
185             continue
186         }else {
187             for {
188                 /*调用学生信息修改界面函数*/
189                 xgjm()
190                 /*接收用户在修改界面的选项,并判断是否合法*/
191                 fmt.Println("\n请输入对应操作的序号:\n")
192                 yz,_ := fmt.Scanln(&xgjmxx)
193                 if yz == 0 || xgjmxx < 1 || xgjmxx > 8 {
194                     fmt.Println("\n输入非法!请重新输入!\n")
195                     continue
196                 }else {
197                     /*该支路用于修改学生姓名*/
198                     if xgjmxx == 1 {
199                         for {
200                             fmt.Println("\n请输入学生姓名:\n")
201                             yz,_ := fmt.Scanln(&xsxm)
202                             if yz == 0 {
203                                 fmt.Println("\n输入非法!请重新输入!\n")
204                                 continue
205                             }else {
206                                 xsxx[xsxh]["学生姓名"] = xsxm
207                             }
208                             break
209                         }
210                     /*该支路用于修改学生年龄*/
211                     }else if xgjmxx == 2 {
212                         for {
213                             fmt.Println("\n请输入学生年龄:\n")
214                             yz,_ := fmt.Scanln(&xsnl)
215                             if yz == 0 {
216                                 fmt.Println("\n输入非法!请重新输入!\n")
217                                 continue
218                             }else {
219                                 xsxx[xsxh]["学生年龄"] = xsnl
220                             }
221                             break
222                         }
223                     /*该支路用于修改学生性别*/
224                     }else if xgjmxx == 3 {
225                         for {
226                             fmt.Println("\n请输入学生性别:\n")
227                             yz,_ := fmt.Scanln(&xsxb)
228                             if yz == 0 {
229                                 fmt.Println("\n输入非法!请重新输入!\n")
230                                 continue
231                             }else {
232                                 xsxx[xsxh]["学生性别"] = xsxb
233                             }
234                             break
235                         }
236                     /*该支路用于修改学生年级*/
237                     }else if xgjmxx == 4 {
238                         for {
239                             fmt.Println("\n请输入学生年级:\n")
240                             yz,_ := fmt.Scanln(&xsnj)
241                             if yz == 0 {
242                                 fmt.Println("\n输入非法!请重新输入!\n")
243                                 continue
244                             }else {
245                                 xsxx[xsxh]["学生年级"] = xsnj
246                             }
247                             break
248                         }
249                     /*该支路用于修改学生专业*/
250                     }else if xgjmxx == 5 {
251                         for {
252                             fmt.Println("\n请输入学生专业:\n")
253                             yz,_ := fmt.Scanln(&xszy)
254                             if yz == 0 {
255                                 fmt.Println("\n输入非法!请重新输入!\n")
256                                 continue
257                             }else {
258                                 xsxx[xsxh]["学生专业"] = xszy
259                             }
260                             break
261                         }
262                     /*该支路用于修改学生住址*/
263                     }else if xgjmxx == 6 {
264                         for {
265                             fmt.Println("\n请输入学生住址:\n")
266                             yz,_ := fmt.Scanln(&xszz)
267                             if yz == 0 {
268                                 fmt.Println("\n输入非法!请重新输入!\n")
269                                 continue
270                             }else {
271                                 xsxx[xsxh]["学生住址"] = xszz
272                             }
273                             break
274                         }
275                     /*该支路用于返回主界面*/
276                     }else if xgjmxx == 7 {
277                         kill1 = 1
278                     /*该支路用于退出主系统*/
279                     }else {
280                         kill1 = 1
281                         kill2 = 1
282                     }
283                 }
284                 if kill1 == 1 {
285                     break
286                 }
287             }
288         }
289         break
290     }
291     return kill2
292 }
293 /*查询函数*/
294 func cx() {
295     var xsxh int
296     for {
297         fmt.Println("\n请输入学生学号:\n")
298         yz,_ := fmt.Scanln(&xsxh)
299         if yz == 0 {
300             fmt.Println("\n输入非法!请重新输入!\n")
301             continue
302         }else {
303             fmt.Println()
304             for k,v := range xsxx[xsxh]{
305                 fmt.Println(k,":",v)
306             }
307             fmt.Println()
308         }
309         break
310     }
311 }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值