初学Go语言的学生管理系统

package main

import (
	"fmt"
	"os"
)

// Student struct represents a student (一般在结构体上面加一个注释解释)
type Student struct {
	id     int
	name   string
	age    int
	gender string
	score  int
}

var students map[int]*Student

func showAllStudents() {
	for _, v := range students {
		fmt.Println(*v)
	}
}

func newStudent() *Student {
	var (
		i int
		n string
		a int
		g string
		s int
	)
	fmt.Println("学号  姓名 年龄  性别  绩点")
	fmt.Scanln(&i, &n, &a, &g, &s)
	return &Student{
		id:     i,
		name:   n,
		age:    a,
		gender: g,
		score:  s,
	}
}

func addStudent() {
	fmt.Println("请输入待添加学生数据:")
	newStu := newStudent()
	students[newStu.id] = newStu
	fmt.Println("添加成功")
}

func findStudent() {
	var i int
	fmt.Println("请输入要查询的学生学号")
	fmt.Scanln(&i)
	fmt.Println(*students[i])
}

func deleteStudent() {
	var i int
	fmt.Println("请输入要删除的学生学号")
	fmt.Scanln(&i)
	fmt.Printf("即将删除学生:")
	fmt.Println(*students[i])
	delete(students, i)
	fmt.Println("删除成功")
}

func updateStudent() {
	var i int
	fmt.Println("请输入要修改的学生学号")
	fmt.Scanln(&i)
	fmt.Println("该学生信息如下所示:")
	fmt.Println(*students[i])
	fmt.Println("请输入该学生数据修改后的值")
	students[i]= newStudent()
	fmt.Println("修改成功")
}

func main() {
	// allocate 50 size places to the map -- students
	students = make(map[int]*Student, 50)
	for {
		fmt.Println("欢迎光临学生管理系统:")
		fmt.Println(`
		1、查看所有学生信息
		2、添加学生
		3、删除学生
		4、查看学生信息
		5、修改学生信息
		6、退出
	`)
		fmt.Printf("请输入你的操作:")
		var choice int
		fmt.Scanln(&choice)
		switch choice {
		case 1:
			showAllStudents()
		case 2:
			addStudent()
		case 3:
			deleteStudent()
		case 4:
			findStudent()
		case 5:
			updateStudent()
		case 6:
			os.Exit(1)
		default:
			fmt.Println("gun去重新输入")
		}
	}
}

原文地址:https://www.cnblogs.com/Luweir/p/14147251.html