go 學生管理系統(函數版)

最近在學習 go,通過go 編寫了一個簡單的學生信息管理系統,附上代碼如下

package main

import (
	"fmt"
	"os"

	//"math"
)

/*
函數版學生管理系統
1. 查看,新曾,刪除
*/
// 創建存放所有學生元素的 map
var allStud map[int64]*student

type student struct {
	id   int64
	name string
}

// 創建一個構造函數,進行學生結構體的創建

func newStud(id int64, name string) *student {
	return &student{
		id:   id,
		name: name,
	}
}

func separator() {
	fmt.Println("===========================")
}

func viewAllStud() {
	separator()
	fmt.Println("學號   姓名")
	for k, v := range allStud {
		fmt.Printf("%d  %s\n", k, v.name)
	}
}

func addStud() {
	var (
		id   int64
		name string
	)
	fmt.Print("請輸入學號:")
	fmt.Scanln(&id)
	fmt.Print("請輸入姓名")
	fmt.Scanln(&name)
	stud := newStud(id, name)
	allStud[id] = stud
}
func delStud() {
	separator()
	var delID int64
	fmt.Print("請輸入要刪除學生的學號")
	fmt.Scanln(&delID)
	delete(allStud,delID)
}

func main() {
	allStud = make(map[int64]*student, 100)
	for {

		//1.打印菜單
		//2.等待用戶選擇
		//3.執行對應的函數
		fmt.Println("歡迎使用學生管理系統!")
		fmt.Printf("1.查看所有學生\n2.新增學生\n3.刪除學生\n4.退出系統")
		fmt.Println("請輸入操作")
		var choice int
		fmt.Scanln(&choice)
		//fmt.Printf("你選擇了%d 這個選項\n", choice)
		/*
			用什麼來存所有的學生信息??
			刪除學生,就是刪除學生切片中指定的元素
			添加學生的方法呢?
			修改學生信息呢?
		*/

		switch choice {
		case 1:
			//查看學生
			viewAllStud()
		case 2:
			// 新增學生
			addStud()

		case 3:
			// 刪除學生
			delStud()
		case 4:
			fmt.Println("歡迎再次使用學生管理系統")
			os.Exit(0)
		default:
			fmt.Println("請輸入正確的選項:【1】 【2】 【3】 【4】")

		}
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章