0


【Golang项目实战】用Go写一个学生信息管理系统,真的太酷啦| 保姆级详解,附源码——建议收藏

在这里插入图片描述

  • 博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。
  • 博主主页: @是瑶瑶子啦
  • 所属专栏: Go语言核心编程
  • 近期目标:写好专栏的每一篇文章

在这里插入图片描述

学习了Go的基础语法知识,如何巩固和提升呢?跟着瑶瑶子写一个简易的学生信息管理系统来练练手吧!

文章目录

一、学生信息管理系统程序介绍

  • 功能介绍 - 添加学员信息- 根据学号(id)编辑学员信息- 展示所有学员信息- 退出系统

在这里插入图片描述

二、功能分析和实现

2.1:项目目录结构:

  • stuInfoProject:项目文件夹 - go.mod- main.go:主程序,核心逻辑代码- student.go:学生类型结构体的定义、构造函数、方法等- studentSys:学生信息管理系统类型结构体的定义、构造函数、方法等

2.2:开始菜单:

main.go

中定义显示菜单函数

funcshowMenu(){
    info :=`
    *********************欢迎来到学生管理系统***********
        1、添加学员信息
        2、编辑学员信息
        3、展示所有学员信息
        4、退出系统
    ************************************************
`
    fmt.Print(info)}

2.3:类型构建

在这个项目中,我们需要两个结构体:

  • 学生结构体:student,定义等封装在student.go文件中
package main

// 定义一个学生类型结构体type student struct{
    id    int//学号
    name  string//姓名
    class string}// 构造函数funcnewStudent(id int, name, class string)*student {return&student{
        id:    id,
        name:  name,
        class: class,}}
  • 学生信息管理系统结构体studentSys,定义和方法等封装在studentSys.go
package main

import"fmt"type studentSys struct{
    num      int//学生的数量
    students []*student //存储学生实体的切片}//构造函数funcnewStudentSys()*studentSys {return&studentSys{
        num:0,
        students:make([]*student,0,100),}}// 1)这个管理系统所具备的方法:添加学生func(sys *studentSys)addStudent(stu *student){
    sys.students =append(sys.students, stu)
    sys.num +=1
    fmt.Println("************添加成功**********")}// 2)编辑学生func(sys *studentSys)updateStudent(stu *student){for i, v :=range sys.students {if stu.id == v.id {//当学号相同时,找到要修改学生
            sys.students[i]= stu
            fmt.Println("***************修改成功***************")return}}
    fmt.Println("*********找不到该学号学生,修改失败*********")}// 3)展示学生func(sys *studentSys)showStudents(){for_, v :=range sys.students {
        fmt.Println("学号:", v.id,"姓名:", v.name,"班级", v.class)}}

2.3:整体逻辑:

funcmain(){//构造一个学生管理系统
    stuSys :=newStudentSys()//指针类型的,只创建一次,因为只有一个系统for{//打印菜单showMenu()//接收用户输入数据var input int
        fmt.Scanf("%d\n",&input)//switch-case进行流程空指switch input {case1://添加学生case2://根据id修改学生信息case3://展示所有学生的信息case4:
            os.Exit(0)//退出系统default:
            fmt.Println("err:你输入选项格式有误,请重新输入!")}}}

2.5:功能1:添加学员信息

在这里插入图片描述

  • 根据用户输入生成学员实例
// 获取用户输入的信息,创造学员的函数funcnewStuByUser()(*student,error){var(
        id    int
        name  string
        class string)//读取用户输入_, err := fmt.Scanln(&id,&name,&class)//出错,给出错误信息,并且将错误返回if err !=nil{
        fmt.Println("输入出错,err:", err)}returnnewStudent(id, name, class), err

}
  • case1:内核心逻辑代码
case1://添加学生
    fmt.Print("请输入学员的学号、名字、班级:(以空格隔开)")
    s1, err :=newStuByUser()//调用学生管理系统所具备的方法,像其中添加学生//没有出错才添加if err ==nil{
        stuSys.addStudent(s1)}

2.6:功能2:根据id修改学员信息

在这里插入图片描述

  • 根据用户输入生成学员实例 同上
  • case2:内核心逻辑代码
case2:
            fmt.Println("请输入该学生的学号,及其要修改的名称和班级:(用空格隔开)")
            s1, err :=newStuByUser()if err ==nil{
                stuSys.updateStudent(s1)}

2.7:展示所有学员信息、退出程序

case3:
            fmt.Println("以下是所有学生信息展示:")
            stuSys.showStudents()case4:
            os.Exit(0)//退出系统default:
            fmt.Println("err:你输入选项格式有误,请重新输入!")}

三、总结

综上,就是一个比较简单的,适合巩固基础的学生信息管理系统的小项目。涉及到函数、结构体、方法、构造函数等基础知识,非常适合小白拿来练手和巩固知识!


欢迎在评论区交流和留下你的想法和建议

如果对你有用,还请:💭评论+👍🏻点赞+⭐收藏+➕关注

在这里插入图片描述

  • Java岛冒险记【从小白到大佬之路】
  • LeetCode每日一题–进击大厂
  • 算法
  • C/C++
  • Go语言核心编程
  • 数据结构
标签: golang 数据结构 c++

本文转载自: https://blog.csdn.net/Yaoyao2024/article/details/130474869
版权归原作者 是瑶瑶子啦 所有, 如有侵权,请联系我们删除。

“【Golang项目实战】用Go写一个学生信息管理系统,真的太酷啦| 保姆级详解,附源码——建议收藏”的评论:

还没有评论