• 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
    ",&id)
     45     fmt.Print("请输入姓名: ")
     46     fmt.Scanf("%s
    ",&name)
     47     fmt.Print("请输出年级: ")
     48     fmt.Scanf("%s
    ",&grade)
     49     fmt.Print("请输入分数: ")
     50     fmt.Scanf("%f
    ",&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
    
    ",
     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
    ",&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
    ",&id)
     81         fmt.Print("请输入姓名: ")
     82         fmt.Scanf("%s
    ",&name)
     83         fmt.Print("请输出年级: ")
     84         fmt.Scanf("%s
    ",&grade)
     85         fmt.Print("请输入分数: ")
     86         fmt.Scanf("%f
    ",&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
    
    ",
     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
    ",&opt)
    106         switch opt {
    107         case 1:
    108             AddStu()
    109         case 2:
    110             ModifyStu()
    111         case 3:
    112             fmt.Print("请输出你要查找的学生的学号:")
    113             fmt.Scanf("%s
    ",&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 }
  • 相关阅读:
    wso2 CEP集成storm实验
    mybatis的decimal精度缺失
    计算时间偏移量小工具
    Blob写入文件
    java父子进程通信
    log4j2配置MDC分线程写日志
    结构体
    局部变量与全局变量
    ARM漏洞
    ARM承认芯片漏洞:披露修复细节
  • 原文地址:https://www.cnblogs.com/xwxz/p/13354956.html
Copyright © 2020-2023  润新知