[go基础] go基础之学生管理系统(go结构体 方法学习)

前言:
今天学习了go的结构体,方法。所以就写了一个学生管理系统来熟悉一下这方面的知识,只是一个简单的使用,并未涉及复杂逻辑,对于初学者巩固基础比较有帮助。

这是一个学生管理系统。具有查询所有学生、按序号需查询学生、增加学生、删除学生、退出系统功能。采用用户管理控制等方式来实现,模拟一个网页操作。具体实现看代码部分,具有详细注释。有错误欢迎指出。

代码样例

package main

import (
	"fmt"
	"os"
)

//学生管理系统  实现功能 查找所有学生 按学号查找指定学生 增加学生 删除学生

//定义一个结构体 存放学生信息
type student struct {
	id int64 //学号
	name string //名字
	class string //班级
	profession string //专业
}
//定义一个结构体 作为用户登陆
type manager struct {
	id int //作为用户id
}

//定义一个全局map用来存放学生相关信息  返回一个指针
var stu map[int64]*student

//student 结构体构建一个构造函数 方便以后的调用
func newStudent(id int64,name string,class string,profession string)  *student{
	return &student{
		id:         id,
		name:       name,
		class:      class,
		profession: profession,
	}
}

//查询所有学生
func (m manager)queryAllStudent()  {
	fmt.Println("学生表单如下:")
	for k,v:=range stu{
		fmt.Println(k,v.name,v.class,v.profession)
	}
	fmt.Println("over......")
}
//根据学号查询学生信息
func (m manager)queryStudentById(id int64)  {
	var flag bool = false
	for k,v:=range stu {
		if k == id{
			flag = true
			fmt.Println("找到学生,学生信息如下:")
			fmt.Println(k,v.name,v.class,v.profession)
		}
	}
	if !flag {
		fmt.Println("没有找到学生信息,请检查学号是否正确")
	}
}

//增加学生
func (m manager)addStudent()  {
	var(
		id int64 //学号
		name string //名字
		class string //班级
		profession string //专业
	)
	fmt.Println("请按如下格式输入学生信息")
	fmt.Println("格式:id name class profession 中间用空格作为区分,回车结束")
	fmt.Print("准备好了嘛,请开始输入:")
	fmt.Scanf("%d %s %s %s\n",&id ,&name, &class, &profession)
	newStu :=newStudent(id,name,class,profession)
	stu[id] = newStu
	fmt.Println("添加学生成功")
}
//根据学号删除学生
func (m manager)deleteStudent()  {
	var id int64
	fmt.Print("请输入要删除学生的学号:")
	fmt.Scanln(&id)
	//从map中删除
	delete(stu,id)
	fmt.Println("已删除学生相关信息")
}

func main()  {
	user := manager{id:1}
	stu = make(map[int64]*student,10)
	for{
		fmt.Println("欢迎登陆学生管理系统")
		fmt.Println(`功能如下:
							1. 查询所有学生
							2. 按学号查找所有学生
							3. 增加学生
							4. 删除学生
							5. 退出系统`)
		fmt.Print("请输入你的选择:")
		var choose int
		fmt.Scanln(&choose)
		switch choose {
		case 1: user.queryAllStudent()
		case 2:
			var id int64
			fmt.Print("请输入要查找的学号:")
			fmt.Scanln(&id)
			user.queryStudentById(id)
		case 3:
			user.addStudent()
		case 4:
			user.deleteStudent()
		case 5:
			os.Exit(0)
		default:
			fmt.Println("输入错误信息,请输入正确的信息")
		}
	}
	fmt.Println("已退出学生管理系统")

}

发布了197 篇原创文章 · 获赞 73 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39397165/article/details/105054211