学生成绩管理系统是一个基于 C99 标准开发的轻量级控制台应用程序,旨在实现学生成绩的录入、查询、修改、删除、排序和数据保存等功能,适用于学校和教育机构的基本成绩管理需求。
- 支持 多班级管理,最多 10 个班级,每班最多 100 名学生。
- 数据自动保存至
Data
文件夹中的班级文件(如class_1.txt
)。 - 支持 多课程管理,每名学生最多可录入 5 门课程成绩。
- 提供 简单易用的菜单操作,使用直观,功能清晰。
- 严格的 输入校验机制,确保数据的完整性和准确性。
- 使用 Apache License 2.0 开源协议,开放代码,欢迎二次开发。
- 录入学生成绩 用户可为指定班级录入学生信息(姓名、学号、性别、课程及其对应成绩)。
- 查询课程平均分 查询指定班级某门课程的平均分。
- 查询学生成绩及排名 按学号查询学生所有课程成绩、总分及班级排名。
- 修改学生成绩 修改指定学生的某门课程成绩,并更新总分。
- 删除学生成绩 删除指定学生的某门课程成绩,并更新总分。
- 按学号排序输出学生总分及排名 按学号升序排序学生列表,并输出其总分及班级排名。
- 数据保存
数据会自动保存到
Data
文件夹中,文件名以班级编号命名(如class_1.txt
)。
- 操作系统:Windows 11
- 开发工具:Visual Studio 2022
- C 标准:C99
-
克隆代码仓库
git clone https://github.com/XXYoLoong/StuGradeSystem.git cd StuGradeSystem
-
导入项目
- 打开 Visual Studio 2022。
- 使用
File > Open > Project/Solution
打开项目文件。
-
配置编译环境
- 确保项目的编译标准为
C99
。 - 检查项目设置中的输出路径,确保可写权限。
- 确保项目的编译标准为
-
运行项目
- 点击 F5 或 Debug > Start Debugging 运行项目。
- 按照程序提示进行操作。
StuGradeSystem/
├── main.c // 主程序
├── data.h // 全局数据结构定义
├── data.c // 全局变量定义
├── utils.h // 工具函数声明
├── utils.c // 工具函数实现
├── input.h // 成绩录入模块声明
├── input.c // 成绩录入模块实现
├── query.h // 成绩查询模块声明
├── query.c // 成绩查询模块实现
├── modify.h // 成绩修改模块声明
├── modify.c // 成绩修改模块实现
├── delete.h // 成绩删除模块声明
├── delete.c // 成绩删除模块实现
├── sort.h // 排序模块声明
├── sort.c // 排序模块实现
└── Data/ // 数据保存文件夹
学生成绩管理系统
1. 录入学生成绩
2. 查询课程平均分
3. 查询学生成绩及排名
4. 修改学生成绩
5. 删除学生成绩
6. 按学号排序输出学生总分及排名
0. 退出程序
请输入您的选择:
-
录入学生成绩
请输入班级索引(0-9):1 请输入学生姓名:张三 请输入学号:20240001 请输入性别(M/F):M 请输入该学生的课程数量(最多 5 门):2 请输入课程 1 名称:数学 请输入课程 1 成绩:95 请输入课程 2 名称:英语 请输入课程 2 成绩:88 班级数据已保存到:Data/class_1.txt 学生成绩录入成功!
-
查询课程平均分
请输入班级索引(0-9):1 请输入课程名称:数学 科目 数学 的平均分是:95.00
- 班级索引范围:必须为
0-9
,否则提示重新输入。 - 学生人数限制:每班最多 100 名学生。
- 课程数量限制:每名学生最多 5 门课程。
- 性别输入格式:只能为
M
或F
(不区分大小写)。 - 成绩输入限制:只能输入有效的数字(浮点型)。
- 编译标准:严格遵循
C99
标准,确保跨平台兼容性。 - 模块化设计:所有功能模块独立设计,降低耦合性。
- 数据存储:成绩数据保存在
Data
文件夹中,文件按班级编号命名。 - 错误处理:通过输入校验和提示机制,确保程序健壮性。
- 支持从文件导入成绩数据。
- 增加图形化用户界面(GUI)。
- 支持多语言切换(如中文与英文)。
- 提交 Issue
- 如果发现 Bug 或有功能改进建议,请提交 Issue 描述问题或需求。
- 贡献代码
- 提交 Pull Request 时,请确保代码格式符合项目规范。
- 联系方式
- 如果有其他问题或需求,可以通过以下方式联系我:
- 邮箱: yoloong05@gmail.com
- GitHub Issues: StuGradeSystem Issues
- 如果有其他问题或需求,可以通过以下方式联系我:
本项目基于 Apache License 2.0 开源,详细条款请参见 LICENSE 文件。