GO语言-函数版学生管理系统

GO的结构体,方法,Map,fmt等基础语法

package main
 
import (
	"fmt"
	"os"
)
 
/*
函数版学生管理系统
写一个系统能够查看\新增\删除学生
*/
type student struct {
	id   int64
	name string
}
 
//声明student的构造函数
func newStudent(id int64, name string) *student {
	return &student{
		id:   id,
		name: name,
	}
}
 
//变量声明
var allStudent map[int64]*student
 
func showAllStudent() {
	//把所有的学生都打印出来
	for k, v := range allStudent {
		fmt.Printf("学号:%d 姓名:%s\n", k, v.name)
	}
}
 
func addStudent() {
	//向allStudent中添加一个新学生
	//1.创建一个新学生
	//1.1 获取用户输入
	var (
		id   int64
		name string
	)
	fmt.Print("请输入学生学号:")
	fmt.Scanln(&id)
	fmt.Print("请输入学生姓名:")
	fmt.Scanln(&name)
	//1.2 创建一个学生
	newStu := newStudent(id, name) //newStu是student的指针类型
	//2.添加到allStudent这个map中
	allStudent[id] = newStu
}
 
func deleteStudent() {
	// 1.请用户输入要删除的学生序号
	var deleteID int64
	fmt.Print("请输入要删除的学生序号:")
	fmt.Scanln(&deleteID)
	//2.去allStudent这个map中根据key删除对应的键值对
	delete(allStudent, deleteID) // delete(map,key)
}
 
func exitSystem() {
 
}
func main() {
	allStudent = make(map[int64]*student, 48) //初始化(开辟内存空间)
	for {
 
		//1.打印菜单
		fmt.Println("欢迎光临学生管理系统")
		fmt.Println(`
		1.查看所有学生
		2.新增学生
		3.删除学生
		4.退出系统
	`)
		fmt.Print("请输入要执行的操作:")
		//2.等待用户选择要做什么
		var choice int
		fmt.Scanln(&choice)
		//3.执行相应的操作
		switch choice {
		case 1:
			showAllStudent()
		case 2:
			addStudent()
		case 3:
			deleteStudent()
		case 4:
			os.Exit(1)
		default:
			fmt.Println("请输入1~4之间的数字")
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值