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】")

		}
	}
}

你可能感兴趣的:(go)