# Studentsystem **Repository Path**: diycp2015/Studentsystem ## Basic Information - **Project Name**: Studentsystem - **Description**: 学生成绩信息管理系统 - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-02-10 - **Last Updated**: 2021-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Studentsystem #### 介绍 学生成绩信息管理系统 #### 软件架构 目标:完成一个学生成绩信息管理系统 登录用户:管理员,班主任,学生 ![](https://images.gitee.com/uploads/images/2019/1204/105933_d60d8500_5519397.png "屏幕截图.png") 教师信息单条记录内容:教师唯一编号 姓名 管理班级编号 联系方式 密码 学生信息单条记录内容:学号 班级编号 姓名 入学时间 联系方式 密码 学生成绩单条记录内容:学号 考试编号 单次考试成绩(按语数英顺序排放) 功能: 1、不同的用户登录 2、不同用户查询/修改记录 3、报表生成 管理员:生成任意报表 班主任:生成班级学生信息报表、生成学生成绩报表 学生:生成个人成绩报表 4、用文件导入数据,导出报表等 5、删除超过3年的学生记录 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 ``` //变量 //链表均为双向链表 //链表头 void* head[3]; //0是老师信息,1是学生信息 2是学生成绩 administrator admin; extern int current_usertype;//用户类型有三种 超级管理员1 班主任2 学生3 extern int current_userid; char pass_set[93] = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()`~!@#$%^&*-+=_|{}[]:;'<>,.?/";//92个密码允许的字符 //重置密码,非交互,传入的密码是正确的,直接放进结构体就可以了 成功返回1 失败返回0 int reset_pass(int type, int unique_id, char* newpass) //输入密码,半交互,对密码进行合法性,过长过短检测,password长度为22,输入密码的函数,1成功 int input_pass(char* inputpass) //自己修改自己密码,交互,包括输入密码,比对密码等,没成功就回退,传入参数确保存在,成功返回1 失败返回0 int change_pass(int type, int unique_id) //输入姓名,半交互,名字长度检测,确保传回合法 int input_name(char* input) //检查数字输入的合法性,半交互,用在选项和id和成绩,且能确定范围 成功返回真实值 失败返回0 int check_num(int a, int b) //输入联系方式 半交互 int input_connectinfo(char* input) //修改信息,交互 成功返回1,未修改成功返回0 int change_info(int type, int unique_id) //报错用,半交互,无返回 直接退出程序 显示错误地方 void errorr(char* reason) //查找tea_info结构体的指针 非交互 返回指针 tea_info* findteaid(int unique_id) //查找stu_info结构体的指针 非交互 返回指针 stu_info* findstuid(int unique_id) //多行打印班主任信息 非交互 void printteainfo(tea_info* p) //多行打印学生信息 非交互 void printstuinfo(stu_info* p) //保存信息回文件,非交互 不free掉内存,因为可能只是临时存储到文件中,最后程序关闭时系统会自动回收内存 int savetofile() //打印某个学生成绩,非交互,确保传入id存在,会返回一共有几个成绩 int printstuscore(int unique_id) //添加某学生成绩 交互 传入的id确定存在 要判断考试编号是否存在 增加返回1,没加返回0 int add_score(int unique_id) //删除成绩 非交互 指定学号及考试相对顺序删除或者删除学号的所有考试 test_id 写-1 int del_score(int unique_id, int relative_sequential) //删除学生 非交互 已确定id存在 int del_stu(int unique_id) //初始化函数 非交互 成功返回1 失败返回0 int initialize() //欢迎界面 非交互 成功返回1 失败返回0 void welcome() //删除所有信息(除管理员) 非交互 成功返回1 失败返回0 int del_all() //登录 交互 选择用户类型 登录 成功返回1 失败返回0 int login() //导出信息到文件 非交互 0是老师信息,1是学生信息,2是学生成绩 int out_all_info(int type) //添加学生 交互 成功添加返回1 int add_stu() //增加老师 交互 int add_tea() //删除老师 非交互 id确保存在 int del_tea(int unique_id) //打印指定班级学生信息 非交互,指定班级id int printclassstuinfo(int classid) //打印指定班级学生成绩 非交互,指定班级id和考试编号 int printclassstuscore(int classid, int testid) //找到老师的id 非交互 ,传入学生班级id,在链表中查找老师的id, tea_info* findclassidtoteaid(int classid) //所有人成绩排序 非交互 不用参数,返回成功1失败0 int sortstuscore() ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)