学生管理系统2.0 方法版本

学生管理系统2.0

main.go

package main

import (
	"fmt"
	"os"
)

var smr studentmanger //声明一个全局的变量学生管理对象:smr

/*
title:学生管理系统2.0 方法版本
author:zjhzjhhh
time:2021.05.22
*/

/*
学生管理系统
1. 打印出菜单输入序号选择要实现的功能
2. 根据要实现的功能列出功能函数,放在了另一个文件里
3. 对于管理系统,我们需要一个管理者才可以操作系统,需要先定义个全局变量
4.
*/

func showMenu() {
	fmt.Println(`
	
	1. 查看所有学生
	2. 添加学生
	3. 修改学生
	4. 删除学生
	5. 退出

	`)
	fmt.Println("***************")

}

func main() {

	fmt.Println("学生管理系统!!")
	var choice int
	smr = studentmanger{
		allstudent: make(map[uint64]student, 100),
	}
	for {
	showMenu()
	fmt.Print("请输入学号:")
	fmt.Scanln(&choice)
	fmt.Println("你输入的是:", choice)
	switch choice {

	case 1:
		smr.ShowAllstudent()
	case 2:
		smr.AddStudent()
	case 3:
		smr.AlterStudent()
	case 4:
		smr.DeleteStudent()
	case 5:
		os.Exit(1)
	default:
		fmt.Println("请输入序号:")

	}
}

}

studentmanger.go

package main

import "fmt"

//造学生
type student struct {
	id   uint64
	name string
}

//造学生的管理者
type studentmanger struct {
	allstudent map[uint64]student
}

//在studentmanger这个结构体下面有四个功能1,2,3,4
/*
	1. 查看所有学生
	2. 添加学生
	3. 修改学生
	4. 删除学生
	5. 退出
	这四个功能,这四个功能分别都共同有一个接收者studentmanger
*/

//1. 查看所有学生
func (s studentmanger) ShowAllstudent() {
	for _, stu := range s.allstudent { //stu是具体每一个学生
		fmt.Printf("学号:%d 姓名:%s", stu.id, stu.name)
	}

}

//2. 添加学生
func (s studentmanger) AddStudent() {

	//1.根据用户输入的内容创建一个新的学生
	var (
		stuID   uint64
		stuName string
	)

	//2.1 首先要获取用户输入
	fmt.Print("请输入学号:")
	fmt.Scanln(&stuID)
	fmt.Print("请输入姓名:")
	fmt.Scanln(&stuName)

	//2.2 把新学生放到s.allstudent这个map中
	newStu := student{
		id:   stuID,
		name: stuName,
	}

	s.allstudent[newStu.id] = newStu

}

//3. 修改学生
func (s studentmanger) AlterStudent() {

	//获得用户输入的学号
	var stuID uint64
	fmt.Print("请输入学号:")
	fmt.Scanln(&stuID)

	//展示该学号对应的学生信息,如果没有则提示查无此人

	//请输入修改后的学生名
	//更新学生的姓名

}

//4. 删除学生
func (s studentmanger) DeleteStudent() {

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值