Go语言实现简易学生管理系统

学生管理系统

本程序是为了联系Go语言前期知识,包括常量、变量、结构体、文件调用等。

StudentManage.go

负责学生管理系统功能的实现

package main

import "fmt"

// 学生信息管理系统
// 1. 保存数据 --> 结构体字段
// 2. 三个功能 --> 结构体方法

type student struct {
	id int64
	name string
}

type studentManager struct {
	allStudent map[int64]*student
}

// 查看学生
func (s *studentManager) showStudents(){
	for k, v := range s.allStudent{
		fmt.Printf("学号:%d, 姓名:%s\n", k, v.name)
	}
}

// 增加学生
func (s *studentManager) addStudent()  {
	// 根据输入创建一个新的学生
	var(
		id int64
		name string
	)
	fmt.Println("请输入学号:")
	_, _ = fmt.Scanln(&id)
	fmt.Println("请输入姓名:")
	_, _ = fmt.Scanln(&name)
	newStu := student{
		id: id,
		name: name,
	}
	// 将新的学生添加到slice中
	s.allStudent[newStu.id] = &newStu
	fmt.Println("添加成功!")
}

// 修改学生
func (s *studentManager) updateStudent()  {
	// 获取用户输入学号
	var id int64
	fmt.Println("请输入修改学生的学号:")
	_, _ = fmt.Scanln(&id)
	// 展示该学生信息,否则输出查无此人
	// 判断map是由包含该键
	// 1. value := map[key], 若value为该类型的零值,表示查无此项
	// 2,value, ok := map[key, 若key = false,表示查无此项
	stuObj, ok := s.allStudent[id]
	if ok != true{
		fmt.Println("查无此人,请查证后输入!")
		return
	}
	fmt.Printf("学号:%d, 姓名:%s\n", stuObj.id, stuObj.name)
	// 输入修改后的相关信息
	var newName string
	fmt.Println("请输入修改学生的新姓名:")
	_, _ = fmt.Scanln(&newName)
	stuObj.name = newName
	// 更新学生信息
	s.allStudent[id].name = newName
}
// 删除学生
func (s *studentManager) deleteStudent()  {
	// 获取用户输入学生的id
	var id int64
	fmt.Println("请输入删除学生的学号:")
	_, _ = fmt.Scanln(&id)
	// 查找该学生信息,有则删除,否则输出查无此人
	_, ok := s.allStudent[id]
	if !ok{
		fmt.Println("查无此人,请查证后输入!")
		return
	}
	delete(s.allStudent, id)
	fmt.Println("删除成功!")
}

studentManagerSys.go

Main入口,负责各功能的调用。

package main

import (
	"fmt"
	"os"
)

// 学生信息管理系统
var smr studentManager
// 菜单函数
func showMenu() {
	fmt.Println("----------Welcome sms!----------")
	fmt.Println(
`
1. 查看所有学生
2. 添加学生
3. 修改学生
4. 删除学生
5. 退出`)
}

func main() {
	smr = studentManager{
		allStudent: make(map[int64]*student, 100),
	}
	var choice int
	showMenu()
	for {
		// 等待用户输入
		fmt.Println("请选择要进行的操作:")
		_, _ = fmt.Scanln(&choice)
		switch choice {
		case 1:
			smr.showStudents()
		case 2:
			smr.addStudent()
		case 3:
			smr.updateStudent()
		case 4:
			smr.deleteStudent()
		case 5:
			os.Exit(1)
		default:
			fmt.Println("输入无效,请重新输入选项!")
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值