一个基于go语言的学生成绩管理系统,没有花里胡哨的界面,但有你想象不到的功能;没有mysql,redis做支撑,但文件管理也不赖
;没有高大上的高级语法,但经验告诉我:大道至简!
刚刚学习完go语言基础,纯当拿来练手用的。喜欢的小伙伴可以拿去玩玩~🤪🤪🤪
写代码之前要搞明白自己要做什么,要开发出一个啥玩意,而不是一边写一遍想,那样也许能完成任务,但是你有时候会发现,当你在完成一个功能的时候,也许这个功能和之前的某个功能重复,但你为了代码的简洁性将这个两个功能的公共部分进行封装,也许很快就会封装完成,但是当开发到第n个功能的时候再次遇到了这样的情况,你是不是得再次封装?再者,如果在开发到第n个功能的时候,发现这个功能好像和第m个功能有点类似,此时你觉得有必要删除第m个功能,但是当你着手去删除的时候,发现它后面牵扯到一堆其他的功能,这个时候你会为了让你的程序显得更加完美而去做这件复杂的“删除”?种种诸如此类的问题都是因为一开始没有搞明白自己要干什么,对于要开发的程序没有一个大体的框架和认知!所以说,think before you do—很重要!在开始写代码之前,先好好思考自己要写一个什么样的程序,然后设计出程序的整体框架,框架的每个部分要实现什么功能?这些功能又可以由哪些子功能组成?实现这些子功能使用何种技术栈更加合理?
在进行框架的设计之前,首先搞懂需求,以需求为驱动!
我打算实现一个学生成绩管理系统,见名知意,重点是对学生成绩的管理,当然,除了学生以外,还有教师,他们是充当学生的管理者,与此同时,对于教师的管理,权限就交给管理员;每个身份的用户都有自己特定的功能,不能越权操作。
简化需求:
面向用户
功能划分
学生能够查询,比较成绩等
教师能够管理学生的信息和成绩等
管理可以管理教师的信息等
查看个人信息
查询成绩
成绩PK
成绩分析
查看个人信息
查看所有学生成绩(单科排序,总分排序,自己所管理的班级)
查询学生成绩
成绩分析
管理班级
学生信息列表
查询学生信息
更新学生信息
新增学生信息
删除学生信息
登录
登出
学生成绩的录入
定时写入,将buffer中的数据定时写入到文件中,以达到持久化的目的
// 学生
type Student struct {
Num string //学号 学号的组成:年份 2022 编号 00001(00001到99999) 用户类型:1(1,2,3分别代表学生,教师和管理员)--》2022000011
Name string //姓名
Major string //专业
Class string //班级
Birthday string //出生日期
Gender uint64 //性别 0:男 1:女
Semester uint64 //年级 1:大一 2:大二 3:大三 4:大四
User_type uint64 //用户类型 1:学生 2:教师 3:管理员
Password string //密码
}
// 老师
type Teacher struct {
num string //职工号
name string //姓名
major string //专业
birthday string //出生日期
gender uint64 //性别 0:男 1:女
user_type uint64 //用户类型 1:学生 2:教师 3:管理员
password string //密码
class_list string //管理的班级
}
// 管理者
type Manager struct {
num string //职工号
name string //姓名
birthday string //出生日期
gender uint64 //性别 0:男 1:女
user_type uint64 //用户类型 1:学生 2:教师 3:管理员
password string //密码
}
// 成绩
type Score struct {
Num string //学号
Chinese uint64 //语文
Math uint64 //数学
English uint64 //英语
Physical uint64 //物理
Chemistry uint64 //化学
Biology uint64 //生物
Sports uint64 //体育
Semester uint64 //学期 1,2,3,4,5,6,7,8 从大一到大四总共8个学期
}
使用文件进行数据的存储。
管理员:manager.txt
教师:teacher.txt
学生:student.txt
成绩:score.txt
gitee地址:student-score-manage-system