本项目已在GitHub开源:

概述

本套系统是我大一程序设计进阶课的结课作业,实现了登录、文件读写,以及对数据的查询、排序等操作。

1、单人完成巨量代码的编写(本以为几百行能解决的系统,前前后后写了两千多行,虽然很多是注释...)

2、本套系统基于Windows系统,执行C11标准。

3、项目使用Clion集成环境开发。

4、项目模块化,将不同功能写在不同的源文件中,通过头文件集中管理和调用。

5、用户输入检测,只允许用户输入规则内的数据,不合法的数据一律提示重新输入。

相关文件的解释:

文件 解释
for_main.h 包含主函数所需的所有头文件
user.h 定义登录用户的相关信息结构体
stu_info.h 定义用于存储学生信息的结构体
for_function_module.h 包含每个模块函数所需的头文件以及主函数的声明
main.c 主函数
main_menu.h & main_menu.c 主菜单模块
secondary_menu.h & secondary_menu.c 二级菜单模块
login_module.h & login_module.c 登录模块
registered_module.h & registered_module.c 用户注册模块
add_module.h & add_module.c 学生信息添加模块
query_module.h & query_module.c 学生信息查询模块
modify_module.h & modify.c 学生信息修改模块
delete_module.h & delete_module.c 学生信息删除模块
statistic_module.h & statistic_module.c 成绩统计模块

系统结构

  • 主菜单
  • 二级菜单
  • 登录模块
  • 注册模块
  • 学生信息添加模块
  • 学生信息查询模块
  • 学生信息修改模块
  • 学生信息删除模块
  • 成绩统计

功能详解

一、主菜单

本系统设置有权限,只有注册账号后输入正确的账号密码才能进入。

主菜单设置有输入内容的控制功能,即检测输入内容是否合法:

二、登录模块

输入正确的账号密码即可进入系统。

三、二级菜单

二级菜单中提供5个功能,输入代码即可跳转至对应功能。

二级菜单设置有输入内容的控制功能,即检测输入内容是否合法:

四、学生信息添加模块

在此模块中,需依次输入学生的学号、姓名、性别、年龄、语文成绩、数学成绩、英语成绩。

输入结束后,学生信息被保存在stu_info目录下的stu_info.txt文件中:

输入结束后,提示是否继续添加,选择”是“则当前界面清除,进入下一轮的输入,否则返回二级菜单。

本模块同样设置有输入内容检测功能,非法输入无效。

五、学生信息查询模块

本系统支持按学号、姓名和性别查询学生信息,输入要查询的学生的学号、姓名或性别均可查询。

若系统中没有要查询的学生信息,则提示:

六、学生信息修改模块

本系统支持按学号、姓名查询学生信息并修改。

依次输入修改后的学生学号、姓名、性别、年龄及各科成绩即可。

七、学生信息删除模块

本系统支持按学号、姓名和性别删除学生信息,输入学生的学号、姓名或性别均可删除相关信息。

八、成绩统计模块

本系统支持对单科成绩的查询,包括升序、降序查询和分数段查询,同时显示该科目的平均分。

按语文成绩升序查询:

按数学成绩降序查询: