# 学生成绩管理系统 - CSV格式说明 ## 数据存储格式 学生数据以CSV格式存储在 `data/students.csv` 文件中,便于查看和编辑。v2.2版本通过模块化的文件工具库提供更强大的CSV处理能力。 ## CSV文件结构 ### 文件位置 - **文件路径**: `data/students.csv` - **编码格式**: UTF-8 - **分隔符**: 逗号 (,) ### 字段说明 | 字段名 | 说明 | 示例 | |--------|------|------| | 学号 | 学生唯一标识 | 2021001 | | 姓名 | 学生姓名 | 张三 | | 年龄 | 学生年龄 | 20 | | 性别 | M(男)/F(女) | M | | 课程数量 | 选修课程总数 | 3 | | 课程1-10 | 课程名称 | 数学 | | 成绩1-10 | 对应课程成绩 | 85.50 | | 总分 | 所有课程总分 | 258.00 | | 平均分 | 平均成绩 | 86.00 | ### 示例数据 ```csv 学号,姓名,年龄,性别,课程数量,课程1,成绩1,课程2,成绩2,课程3,成绩3,课程4,成绩4,课程5,成绩5,课程6,成绩6,课程7,成绩7,课程8,成绩8,课程9,成绩9,课程10,成绩10,总分,平均分 2021001,张三,20,M,3,数学,85.50,英语,92.00,物理,78.50,,,,,,,,,,,,,258.00,86.00 2021002,李四,19,F,4,数学,90.00,英语,88.50,物理,85.00,化学,92.50,,,,,,,,,,,356.00,89.00 ``` ## 优势 1. **可读性强**: 可以用Excel、记事本等工具直接查看和编辑 2. **通用格式**: CSV是标准的数据交换格式 3. **易于备份**: 文本格式便于版本控制和备份 4. **数据分析**: 可以导入到Excel、Python等工具进行进一步分析 ## 注意事项 1. 如果课程数量少于10门,未使用的课程和成绩字段将为空 2. 修改CSV文件时请保持格式一致性 3. 程序会在添加、删除、修改学生信息时自动更新CSV文件 4. 建议定期备份CSV文件 ## v2.2版本改进 ### 🔧 模块化文件处理 - **file_utils模块**:专门的文件操作工具库,提供更可靠的CSV文件处理 - **validation模块**:增强的数据验证功能,确保CSV数据完整性 - **string_utils模块**:优化的字符串处理,更好地处理CSV字段解析 ### 📊 数据处理优化 - **错误恢复**:更强的CSV文件损坏检测和修复能力 - **性能提升**:优化的文件读写算法,处理大量数据更高效 - **编码支持**:增强的UTF-8编码处理,更好地支持多语言字符 ## 兼容性 - 系统会自动检测并读取CSV格式的学生数据 - 如果CSV文件不存在,系统会在首次保存数据时自动创建 - 支持中文字符(UTF-8编码) - v2.2版本向下兼容所有v2.1及更早版本的CSV文件 ## 技术实现 ### 相关模块 - **file_utils.c/h**:CSV文件读写核心功能 - **validation.c/h**:数据格式验证 - **string_utils.c/h**:字符串解析和处理 - **io_utils.c/h**:输入输出辅助功能 --- **版本**: v2.2.0 **最后更新**: 2025年 **模块化程度**: 高度模块化