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

这篇具有很好参考价值的文章主要介绍了【Golang项目实战】用Go写一个学生信息管理系统,真的太酷啦| 保姆级详解,附源码——建议收藏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

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

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

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

二、功能分析和实现

2.1:项目目录结构:

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

2.2:开始菜单:

main.go中定义显示菜单函数


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

2.3:类型构建

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

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

// 定义一个学生类型结构体
type student struct {
	id    int    //学号
	name  string //姓名
	class string
}

// 构造函数
func newStudent(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 //存储学生实体的切片
}

//构造函数

func newStudentSys() *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:整体逻辑:

func main() {
	//构造一个学生管理系统
	stuSys := newStudentSys() //指针类型的,只创建一次,因为只有一个系统

	for {
		//打印菜单
		showMenu()
		//接收用户输入数据
		var input int
		fmt.Scanf("%d\n", &input)
		//switch-case进行流程空指
		switch input {
		case 1: //添加学生
			
		case 2: //根据id修改学生信息
		
		case 3: //展示所有学生的信息
		
		case 4:
			os.Exit(0) //退出系统
		default:
			fmt.Println("err:你输入选项格式有误,请重新输入!")
		}
	}
}

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

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

  • 根据用户输入生成学员实例

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

}
  • case1:内核心逻辑代码
	case 1: //添加学生
	fmt.Print("请输入学员的学号、名字、班级:(以空格隔开)")
	s1, err := newStuByUser()

	//调用学生管理系统所具备的方法,像其中添加学生
	
	//没有出错才添加
	if err == nil {
		stuSys.addStudent(s1)
	}

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

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

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

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

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

三、总结

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


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

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

【Golang项目实战】用Go写一个学生信息管理系统,真的太酷啦| 保姆级详解,附源码——建议收藏文章来源地址https://www.toymoban.com/news/detail-432675.html

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

到了这里,关于【Golang项目实战】用Go写一个学生信息管理系统,真的太酷啦| 保姆级详解,附源码——建议收藏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python Web开发 flask轻量级Web框架实战项目--学生管理系统

     上次发的一篇文章,有很多朋友私信我要后面的部分,那咱们就今天来一起学习一下吧,因为我的数据库这门课选中的课题是学生管理系统,所以今天就以这个课题为例子,从0到1去实现一个管理系统。数据库设计部分我会专门出一个博客的,敬请期待吧~~~ 介如很多朋友问

    2024年02月16日
    浏览(25)
  • 【vue实战项目】通用管理系统:信息列表,信息的编辑和删除

    本文为博主的vue实战小项目系列中的第七篇,很适合后端或者才入门的小伙伴看,一个前端项目从0到1的保姆级教学。前面的内容: 【vue实战项目】通用管理系统:登录页-CSDN博客 【vue实战项目】通用管理系统:封装token操作和网络请求-CSDN博客 【vue实战项目】通用管理系统

    2024年02月03日
    浏览(24)
  • java 学生信息管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

    一、源码特点     java 学生信息管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java 学生信息管理系统 二、

    2024年02月09日
    浏览(21)
  • qt实现信息管理系统(学生信息管理系统)功能更完善

    信息系统代码地址:https://gitee.com/dxl96/StdMsgSystem 本学生信息管理系统同升级改造的幅度较大,涉及到的东西对于初学者来说,可能稍显复杂,可以先移步到 https://blog.csdn.net/IT_CREATE/article/details/82027462 查看简易的系统。 本系统引入日志管理,数据库选择支持sqllite、mysql,自

    2024年02月13日
    浏览(19)
  • 学生基本信息管理系统

    目录 一、选题与前期调查 1.选题 2.前期调查 二、人员分工 三、项目描述 1.项目简介 2.项目技术 3.功能需求分析 4.系统细节 四、系统功能运行结果截图展示 五、关键代码 六、使用git管理代码 七、遇到的困难 1.选题 学生基本信息管理系统(2人)等级:C- 功能要求: 1、添加学生

    2024年01月16日
    浏览(50)
  • 学生宿舍信息管理系统

    任务6 学生宿舍信息管理系统 已知宿舍的信息包括:宿舍楼号,宿舍号,床位号,对应床位号的学生学号,楼长姓名等。设计程序能实现以下功能: (1)宿舍信息录入:可随时增加宿舍信息到数据文件中 (2)宿舍信息浏览:宿舍的信息输出到屏幕 (3)查询:按学号查询学

    2024年02月05日
    浏览(59)
  • 【JAVA】学生信息管理系统

    目录 前言 一、环境搭建 二、功能实现 1.学生信息类的创建 2.学生信息的添加功能 3.学生信息的删除功能 4.学生信息的修改功能  5.学生信息的查看功能  三、主类的调用 1.界面的搭建 2.学生端和教师端 3.系统和功能的选择 总结         JAVA实现的学生信息管理系统(包含教

    2024年02月03日
    浏览(23)
  • 学生信息管理系统——JAVA

          学生信息管理系统是一个实现信息管理的多功能平台,本文主要介绍一个简易功能的java 程序。 1、添加学生信息。 2、删除学生信息。 3、查看学生信息。 4、修改学生信息。 1、创建一个标准的学生类 2、分布实现功能         (1)添加学生信息         (2)删除

    2024年02月08日
    浏览(21)
  • mysql 学生信息管理系统

    一、分析 ①业务分析: 学生信息管理系统是面向学生和学校教师的一个多功能数据管理平台 ②系统分析: 本系统所涉及到的用户有学校学生和教师,对于不同的用户系统所提供的功能也有所不同,其中对于学生来说,学生可以提供该系统进行自身数据的查询,教师可以通过

    2024年02月10日
    浏览(19)
  • 学生信息管理系统(数据库)

    要求实现功能: (1)学生、课程、教师等信息的录入和维护,一门课只由一位教师上,一位教师可上多门课 (2)学生进行选课,一学期约20学分 (3)教师在每门课结束后给出学生成绩,不及格则补考后记录补考成绩 (4)能明细查询某学生的选课情况及某课程的选修学生情

    2024年02月03日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包