AI智能
改变未来

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


一、什么是GO+语言

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

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

文章目录

  • 一、什么是GO+语言
  • 二、安装教程
  • 三、GO+版的学生管理系统
  • 1. 演示效果
  • 2. 源码分享
  • 四、总结
  • 二、安装教程

    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写20000的。下面我就结合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    uintname  stringage   uintgender 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    uintstuName  stringstuAge   uintstuGender 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]=&student{stuID,stuName,stuAge,stuGender}}//修改学生信息func (s studentMannger) updateStudent() {println("请输入要修改学生的id:")var (stuID    uintstuName  stringstuAge   uintstuGender stringnum      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 = stuNamecase 2:println("请输入要修改学生的年龄:")fmt.Scanln(&stuAge)s.stu[stuID].age = stuAgecase 3:println("请输入要修改学生的性别:")fmt.Scanln(&stuGender)s.stu[stuID].gender = stuGendercase 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 uintfmt.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 uintfmt.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+大家庭中来。

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » Golang学习之路(八):结合GO+的学生管理系统