练习篇-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 }