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

Posted 曲鸟

tags:

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

一、什么是GO+语言

Go+ 是七牛云 CEO 许式伟发明的一门可用于工程、STEM 教育和数据科学的编程语言,于 2020 年 7 月正式发布,2021 年 10 月推出 1.0 版本。

它有什么优点呢?简单来说就是既有GO的性能又有Python那样简洁的语法,未来还会兼容python,具体可以在官方社区文章中进行了解学习:https://bbs.csdn.net/topics/603424035



二、安装教程

GO+社区里面有很多安装教程的文章,这里就不再重复讲解了(GO+社区访问地址:https://bbs.csdn.net/forums/goplus?category=0

想先简单尝试的话,也可直接通过在线地址:https://play.goplus.org/ 进行体验。


另外,GO+支持Vscode,只需要在Vscode中的应用中搜索安装goplus插件即可,它目前提供如下功能:

  1. 语法高亮
  2. 自动片段
  3. 格式源代码
  4. 自动完成
  5. 悬停功能显示
  6. 自动导入
  7. 显示符号的定义

未来还会支持更多功能,插件教程地址:https://github.com/gopcode/vscode-goplus


三、GO+版的学生管理系统

相信不少小伙伴跟我一样,在大一学期的时候老师都会布置一个学生管理系统的作业或考试。有的是通过C语言写的,有的是通过python写的。下面我就结合GO+来实现一个简单版的学生管理系统


1. 演示效果

1)主界面


2)增加学生


3)修改学生


4)刪除学生


5)查询学生


2. 源码分享

import (
	"fmt"
	"os"
)

// 储存学生数据
var Mgr studentMannger

//定义个储存学生信息的结构体
type studentMannger struct 
	stu map[uint]*student


//定义一个学生信息的结构体
type student struct 
	id    uint
	name  string
	age   uint
	gender string



//查询所有学生信息
func (s studentMannger) showAllStudents() 
	println("----所有学生的信息如下----\\n\\n")
	println("  ID", "姓名", "年龄", "性别")
	for i, v := range s.stu 
		println(i, v.name, v.age, v.gender)
	
		println("--------------------------")

//增加学生信息
func (s studentMannger) addStudent() 
	println("请输入新学生id:")
	var (
		stuID    uint
		stuName  string
		stuAge   uint
		stuGender string
	)
	fmt.Scanln(&stuID)
	_, ok := s.stu[stuID]
	if ok 
		println("此学号存在!")
		return
	
	println("请输入新学生名称:")
	fmt.Scanln(&stuName)
	println("请输入新学生年龄:")
	fmt.Scanln(&stuAge)
	println("请输入学生的性别:")
	fmt.Scanln(&stuGender)
	s.stu[stuID]=&studentstuID,stuName,stuAge,stuGender

//修改学生信息
func (s studentMannger) updateStudent() 
	println("请输入要修改学生的id:")
	var (
		stuID    uint
		stuName  string
		stuAge   uint
		stuGender string
		num      int
	)
	fmt.Scanln(&stuID)
	_, ok := s.stu[stuID]
	if !ok 
		println("查无此人!")
		return
	
	println("请输入要修改学生哪项信息:\\n1.姓名;2.年龄,3.性别,4.所有信息\\n请输入序号:")
	fmt.Scanln(&num)
	switch num 
	case 1:
		println("请输入要修改学生的姓名:")
		fmt.Scanln(&stuName)
		s.stu[stuID].name = stuName
	case 2:
		println("请输入要修改学生的年龄:")
		fmt.Scanln(&stuAge)
		s.stu[stuID].age = stuAge
	case 3:
		println("请输入要修改学生的性别:")
		fmt.Scanln(&stuGender)
		s.stu[stuID].gender = stuGender
	case 4:
		println("请输入要修改学生的姓名:")
		fmt.Scanln(&stuName)
		println("请输入要修改学生的年龄:")
		fmt.Scanln(&stuAge)
		println("请输入要修改学生的性别:")
		fmt.Scanln(&stuGender)
		s.stu[stuID] = &student
			name:  stuName,
			age:   stuAge,
			gender: stuGender,
		
	
	println("----修改成功----")

//删除学生信息
func (s studentMannger) delStudent() 
	println("请输入要删除学生的id:")
	var stuID uint
	fmt.Scanln(&stuID)
	delete(s.stu, stuID)
	println("----删除成功----")



Mgr = studentMannger
	stu: make(map[uint]*student, 100),

println("-------------欢迎使用学生管理系统-------------")
for 
	println(`
		1.查看所有学生信息
		2.增加学生信息
		3.修改学生信息
		4.删除学生信息
		5.退出程序
------------------------------------------
	`)
	println("请输入上面对应的序号来选择对应的操作:")
	var stuID uint
	fmt.Scanln(&stuID)
	switch stuID 
	case 1:
		Mgr.showAllStudents()
	case 2:
		Mgr.addStudent()
	case 3:
		Mgr.updateStudent()
	case 4:
		Mgr.delStudent()
	case 5:
		os.Exit(1)
	default:
		println("输入错误,请重新输入!")
	


上面的代码主要是使用GO+省略了main函数和修改了print的写法。

实现的学生信息管理系统很简单,只有基本的增删改成功能,大佬们可以自己拿下拉进行修改。


四、总结

GO+确实能够简洁不少我们的代码,但官方文档的教程还比较少,很多都还在等待更新中:


通过这次使用GO+的体验来讲,我还是很期待很原因在未来官方教学文档完善后,继续使用及学习GO+在我的日常工作生活中。

也相信在未来会有越来越多的developer加入到GO+大家庭中来。

以上是关于Golang学习之路:结合GO+的学生管理系统的主要内容,如果未能解决你的问题,请参考以下文章

Golang学习之路:Go+体验分享及字面量讲解

Golang学习之路—map切片

GO语言的进阶之路-Golang高级数据结构定义

面向校招全力备战2023Golang实习与校招

Golang学习之路一环境搭建

题解PTA团体程序设计天梯赛L1-030 一帮一 (15 分) Go语言|Golang