GO语言学习基础-学生管理系统的实现

Posted 甲三

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GO语言学习基础-学生管理系统的实现相关的知识,希望对你有一定的参考价值。

1. 编写 main.go 程序

`
package main

import (
"fmt"
"os"
)

var smr stuMgr //声明一个全局的全局变量学生管理smr

// 菜单函数

func showMenu() {
fmt.Println("------------Welcome to sms!---------------")
fmt.Println( 1. 查看所有学生 2. 添加学生 3. 删除学生 4. 修改学生姓名 5. 退出 )
}

func main() {

smr = stuMgr{
	allStudent: make(map[int64]student, 100),
}

for {
	showMenu()
	fmt.Print("请输入操作(1 2 3 4):")
	var choice int
	fmt.Scanln(&choice)
	fmt.Printf("你输入的是:%d", choice)

	switch choice {
	case 1:
		smr.showStudent()
	case 2:
		smr.addStudent()
	case 3:
		smr.editStudent()
	case 4:
		smr.delStudent()
	case 5:
		os.Exit(1)
	default:
		fmt.Println("输入错误!")
	}
}

}
`

2. 编写 student_mgr.go 程序

`package main

import "fmt"

// 学生管理系统
// 有一个物件:
// 1. 它保存了一些数据 ---> 结构体的字段
// 2. 他有三个功能 ---> 结构体的方法 :面向对象编程语言的思维

// 定义学生结构体
type student struct {
id int64
name string
}

// 造一个学生的管理者
type stuMgr struct {
allStudent map[int64]student
}

// 查看所有学生
func (s stuMgr) showStudent() {
// 遍历s.allStudent
for _, v := range s.allStudent { // v是具体某个学生
fmt.Printf("学号:%d 姓名:%s\\n", v.id, v.name)
}
}

// 增加学生
func (s stuMgr) addStudent() {
// 1. 根据用户输入的内容新建一个学生
// 2. 追加数据
var (
id int64
name string
)
// 获取用户输入
fmt.Print("请输入学号:")
fmt.Scanln(&id)
fmt.Print("请输入学生姓名:")
fmt.Scanln(&name)
newStu := student{
id: id,
name: name,
}
s.allStudent[newStu.id] = newStu
fmt.Println("添加成功!")
}

// 编辑学生
func (s stuMgr) editStudent() {
// 1. 获取用户输入的ID
// 2. 展示学号对应的学生信息,如果没有提示查无此人
// 3. 请输入修改后的学生名
// 4. 更新
var stuid int64
fmt.Print("请输入学生学号:")
fmt.Scanln(&stuid)
stuobj, ok := s.allStudent[stuid]
if !ok {
fmt.Println("查无此人!")
return
}
fmt.Printf("你要修改的学生信息如下:学号-%d 姓名-%s\\n", stuobj.id, stuobj.name)
fmt.Print("请输入学生的新名字:")
var newname string
fmt.Scanln(&newname)
stuobj.name = newname
s.allStudent[stuid] = stuobj //更新值
fmt.Println("修改成功!")
}

// 删除学生
func (s stuMgr) delStudent() {
//1. 请用户输入要删除学生的ID
//2. 找学生,如果没有,打印查无此人
//3. 执行删除操作
fmt.Print("请输入要删除学生的学号:")
var stuid int64
fmt.Scanln(&stuid)
_, ok := s.allStudent[stuid]
if !ok {
fmt.Println("查无此人!")
return
}
delete(s.allStudent, stuid)
fmt.Println("删除成功!")
}
`

3. 编译并执行



以上是关于GO语言学习基础-学生管理系统的实现的主要内容,如果未能解决你的问题,请参考以下文章

go语言实现学生管理系统

go语言实现简单的学生管理系统

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

Go语言基础之切片

GO语言编程基础-复合类型结构体

Golang学习之路:结合GO+的学生管理系统