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學生成績管理系統
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.