go 学生管理系统(结构体方法版)

go 结构体版学生管理系统

main.go

package main

import (
	"fmt"
	"os"
)

func menu() {
  fmt.Println("--------------------- welcome to use sms ---------------------")
  fmt.Println(`
	1.查看所有学生
	2.增加学生
	3.修改学生
	4.删除学生
	5.退出
  `)
}

var sms studMgr

func main() {
	sms = studMgr{
		allStud: make(map[int64]stud),
	}
	var choice int
	for  {
		menu()
		fmt.Println("请输入您的选项")
		fmt.Scan(&choice)
		switch choice {
		case 1:
			sms.showAllStud()
		case 2:
			sms.addNewStud()
		case 3:
			sms.modStud()
		case 4:
			sms.delStud()
		case 5:
			os.Exit(1)
		default:
			fmt.Println("输入有误,请重新输入")

		}
	}

}

stu_manage.go

package main

import "fmt"

// 学生管理系统
// 有一个物件:
// 1.保存了一些数据 -->结构体的字段
// 2.有三个功能    -->结构体的方法

type stud struct {
	id   int64
	name string
}

//造一个学生的管理者
type studMgr struct {
	allStud map[int64]stud
}

// 查看学生
func (s studMgr) showAllStud() {
	for _, v := range s.allStud {
		fmt.Printf("学号:%d 姓名:%s\n", v.id, v.name)
	}
}

//增加学生
func (s studMgr) addNewStud() {
	var (
		id   int64
		name string
	)

	fmt.Println("请输入新学生的学号")
	fmt.Scan(&id)
	fmt.Println("请输入新学生的姓名")
	fmt.Scan(&name)
	newStu := stud{id, name}
	s.allStud[id] = newStu
}

//修改学生
func (s studMgr) modStud() {
	var (
		id      int64
		newName string
	)

	fmt.Println("请输入要修改新学生的学号")
	fmt.Scan(&id)
	stu, ok := s.allStud[id]
	if !ok {
		fmt.Println("查无此人")
		return
	}
	fmt.Println("请输入学生的新姓名")
	fmt.Scan(&newName)
	stu.name = newName
	s.allStud[id] = stu
}

//删除学生
func (s studMgr) delStud() {
	var id int64

	fmt.Println("请输入要修改新学生的学号")
	fmt.Scan(&id)
	_, ok := s.allStud[id]
	if !ok {
		fmt.Println("查无此人")
		return
	}
	delete(s.allStud, id)
	fmt.Println("删除成功")
}

目录结构
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值