Go實現學生管理系統
阿新 • • 發佈:2020-10-14
student.go
package main import ( "fmt" ) // 學生 type student struct{ id int name string class string } // 學生的建構函式 func newStudent(id int, name, class string) *student{ return &student{ id: id, name: name, class: class, } } // 學生管理 type manage struct { allStudent []*student } // 學生管理的建構函式 func newManage() *manage{ return &manage{ allStudent: make([]*student, 0, 100), } } // 新增學生 func (s *manage) addStudent(newstu *student){ s.allStudent = append(s.allStudent, newstu) } // 編輯學生資訊 func (s *manage)modifystudent(newstu *student){ for i, v := range s.allStudent{ if newstu.id == v.id{ s.allStudent[i] = newstu return } } fmt.Printf("系統不存在學號為%d的這個學生!\n", newstu.id) } // 展示所有學生資訊 func (s *manage) showAllStudent(){ for _, v := range s.allStudent{ fmt.Printf("學號:%d---姓名:%s---班級%s\n", v.id, v.name, v.class) } }
main.go
package main import ( "fmt" "os" ) func menu(){ fmt.Println("歡迎使用go學生管理系統") fmt.Println("1:新增學生") fmt.Println("2:編輯學生資訊") fmt.Println("3:展示所有學生資訊") fmt.Println("4:退出") } func getInput() *student{ var ( id int name string class string ) fmt.Println("請輸入學生的學號:") fmt.Scanf("%d\n", &id) fmt.Println("請輸入學生的姓名:") fmt.Scanf("%s\n", &name) fmt.Println("請輸入學生的班級") fmt.Scanf("%s\n", &class) stu := newStudent(id, name, class) return stu } func main(){ sm := newManage() for{ //1.列印系統 menu() //2.使用者選擇操作 var input int fmt.Print("請輸入你要的運算元:") fmt.Scanf("%d\n", &input) fmt.Println("你選擇的操作是:", input) // 3.執行操作 switch input{ case 1: stu := getInput() sm.addStudent(stu) break case 2: stu := getInput() sm.modifystudent(stu) break case 3: sm.showAllStudent() break case 4: os.Exit(0) } } }