package main
import (
"fmt"
"os"
)
type student struct {
name0 string
num0, score0 int
}
func newStudent(name string, num, score int) *student { //模拟student的构造函数
return &student{
name0: name,
num0: num,
score0: score,
}
}
var studentInf = make([]*student, 0, 100)
func userInput() *student {
var (
name string
num, score int
)
fmt.Print("请输入学生学号:")
fmt.Scanln(&num)
fmt.Print("请输入学生姓名:")
fmt.Scanln(&name)
fmt.Print("请输入学生成绩:")
fmt.Scanln(&score)
return newStudent(name, num, score)
}
func addInf() {
ptr := userInput() //ptr类型是*student
studentInf = append(studentInf, ptr)
fmt.Println("添加信息成功!")
fmt.Printf("您添加信息如下:\n姓名:%v\t学号:%v\t成绩:%v\n", ptr.name0, ptr.num0, ptr.score0)
menu()
}
func printInf() {
if len(studentInf) == 0 {
fmt.Println("没有任何成绩信息")
menu()
}
for _, val := range studentInf {
fmt.Printf("%#v\n", *val)
}
menu()
}
func changeInf() {
var (
num int
)
fmt.Print("请输入想要修改的学生学号:")
fmt.Scanln(&num)
var finish bool
for index, val := range studentInf {
if val.num0 == num {
ptr := userInput()
studentInf[index] = ptr
finish = true
fmt.Printf("修改成功!姓名:%s\t学号:%d\t成绩:%d\n", ptr.name0, ptr.num0, ptr.score0)
menu()
}
}
if !finish {
fmt.Println("输入的学号不存在")
}
}
func menu() {
fmt.Printf("--------------------学生成绩管理系统--------------------\n")
fmt.Printf("0.添加学生成绩 1.修改学生成绩\n")
fmt.Printf("2.查看学生成绩 3.退出系统\n")
var choose int
fmt.Scanln(&choose)
switch choose {
case 0:
addInf()
case 1:
changeInf()
case 2:
printInf()
case 3:
fmt.Println("退出系统!")
os.Exit(0)
default:
fmt.Println("输入有误,请重新选择:")
menu()
}
}
func main() {
menu()
}
Golang学生成绩管理系统
最新推荐文章于 2024-04-28 14:30:48 发布