# StuGradeSystem **Repository Path**: chayunyolong/StuGradeSystem ## Basic Information - **Project Name**: StuGradeSystem - **Description**: 一个基于 C99 标准开发的轻量级控制台应用程序,旨在实现学生成绩的录入、查询、修改、删除、排序和数据保存等功能,适用于学校和教育机构的基本成绩管理需求。 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-12-20 - **Last Updated**: 2025-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **学生成绩管理系统 (Student Grade Management System)** 学生成绩管理系统是一个基于 **C99** 标准开发的轻量级控制台应用程序,旨在实现学生成绩的录入、查询、修改、删除、排序和数据保存等功能,适用于学校和教育机构的基本成绩管理需求。 **项目特点** - 支持 **多班级管理**,最多 10 个班级,每班最多 100 名学生。 - 数据自动保存至 `Data` 文件夹中的班级文件(如 `class_1.txt`)。 - 支持 **多课程管理**,每名学生最多可录入 5 门课程成绩。 - 提供 **简单易用的菜单操作**,使用直观,功能清晰。 - 严格的 **输入校验机制**,确保数据的完整性和准确性。 - 使用 **Apache License 2.0** 开源协议,开放代码,欢迎二次开发。 --- **功能说明** **主要功能** 1. **录入学生成绩** 用户可为指定班级录入学生信息(姓名、学号、性别、课程及其对应成绩)。 2. **查询课程平均分** 查询指定班级某门课程的平均分。 3. **查询学生成绩及排名** 按学号查询学生所有课程成绩、总分及班级排名。 4. **修改学生成绩** 修改指定学生的某门课程成绩,并更新总分。 5. **删除学生成绩** 删除指定学生的某门课程成绩,并更新总分。 6. **按学号排序输出学生总分及排名** 按学号升序排序学生列表,并输出其总分及班级排名。 7. **数据保存** 数据会自动保存到 `Data` 文件夹中,文件名以班级编号命名(如 `class_1.txt`)。 --- **运行环境** - **操作系统**:Windows 11 - **开发工具**:Visual Studio 2022 - **C 标准**:C99 --- **安装与运行** **安装步骤** 1. **克隆代码仓库** ```bash git clone https://github.com/XXYoLoong/StuGradeSystem.git cd StuGradeSystem ``` 2. **导入项目** - 打开 Visual Studio 2022。 - 使用 `File > Open > Project/Solution` 打开项目文件。 3. **配置编译环境** - 确保项目的编译标准为 `C99`。 - 检查项目设置中的输出路径,确保可写权限。 4. **运行项目** - 点击 **F5** 或 **Debug > Start Debugging** 运行项目。 - 按照程序提示进行操作。 --- **项目结构** ```plaintext 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/ // 数据保存文件夹 ``` --- **示例运行结果** **启动菜单** ```plaintext 学生成绩管理系统 1. 录入学生成绩 2. 查询课程平均分 3. 查询学生成绩及排名 4. 修改学生成绩 5. 删除学生成绩 6. 按学号排序输出学生总分及排名 0. 退出程序 请输入您的选择: ``` **示例操作** 1. 录入学生成绩 ```plaintext 请输入班级索引(0-9):1 请输入学生姓名:张三 请输入学号:20240001 请输入性别(M/F):M 请输入该学生的课程数量(最多 5 门):2 请输入课程 1 名称:数学 请输入课程 1 成绩:95 请输入课程 2 名称:英语 请输入课程 2 成绩:88 班级数据已保存到:Data/class_1.txt 学生成绩录入成功! ``` 2. 查询课程平均分 ```plaintext 请输入班级索引(0-9):1 请输入课程名称:数学 科目 数学 的平均分是:95.00 ``` --- **输入校验** **支持的校验功能** - **班级索引范围**:必须为 `0-9`,否则提示重新输入。 - **学生人数限制**:每班最多 100 名学生。 - **课程数量限制**:每名学生最多 5 门课程。 - **性别输入格式**:只能为 `M` 或 `F`(不区分大小写)。 - **成绩输入限制**:只能输入有效的数字(浮点型)。 --- **技术细节** 1. **编译标准**:严格遵循 `C99` 标准,确保跨平台兼容性。 2. **模块化设计**:所有功能模块独立设计,降低耦合性。 3. **数据存储**:成绩数据保存在 `Data` 文件夹中,文件按班级编号命名。 4. **错误处理**:通过输入校验和提示机制,确保程序健壮性。 --- **未来计划** - 支持从文件导入成绩数据。 - 增加图形化用户界面(GUI)。 - 支持多语言切换(如中文与英文)。 --- **贡献指南** 1. **提交 Issue** - 如果发现 Bug 或有功能改进建议,请提交 Issue 描述问题或需求。 2. **贡献代码** - 提交 Pull Request 时,请确保代码格式符合项目规范。 3. **联系方式** - 如果有其他问题或需求,可以通过以下方式联系我: - **邮箱**: yoloong05@gmail.com - **GitHub Issues**: [StuGradeSystem Issues](https://github.com/XXYoLoong/StuGradeSystem/issues) --- **许可证** 本项目基于 **Apache License 2.0** 开源,详细条款请参见 [LICENSE 文件](http://www.apache.org/licenses/LICENSE-2.0)。 --- 如果需要调整或补充其他内容,请告诉我!