79bf7cc8d0
- 更新README.md项目结构 - 更新代码统计报告.txt版本信息 - 更新CSV_FORMAT.md格式说明 - 同步所有文档到v4.2.0版本
3.2 KiB
3.2 KiB
学生成绩管理系统 - CSV格式说明
数据存储格式
学生数据以CSV格式存储在 data/students.csv 文件中,便于查看和编辑。v4.0.0版本通过模块化的文件工具库提供更强大的CSV处理能力,并增强了系统安全性。
v4.0.0版本安全性增强
- 🔒 密码保护: 用户密码采用SHA-256哈希存储,确保数据安全
- 🛡️ 缓冲区保护: 修复所有潜在的缓冲区溢出风险
- ✅ 输入验证: 强化所有数据输入的格式验证和边界检查
- 🧹 内存安全: 添加安全内存清除功能,防止敏感数据残留
CSV文件结构
文件位置
- 文件路径:
data/students.csv - 编码格式: UTF-8
- 分隔符: 逗号 (,)
字段说明
| 字段名 | 说明 | 示例 |
|---|---|---|
| 学号 | 学生唯一标识 | 2021001 |
| 姓名 | 学生姓名 | 张三 |
| 年龄 | 学生年龄 | 20 |
| 性别 | M(男)/F(女) | M |
| 课程数量 | 选修课程总数 | 3 |
| 课程1-10 | 课程名称 | 数学 |
| 成绩1-10 | 对应课程成绩 | 85.50 |
| 总分 | 所有课程总分 | 258.00 |
| 平均分 | 平均成绩 | 86.00 |
示例数据
学号,姓名,年龄,性别,课程数量,课程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
优势
- 可读性强: 可以用Excel、记事本等工具直接查看和编辑
- 通用格式: CSV是标准的数据交换格式
- 易于备份: 文本格式便于版本控制和备份
- 数据分析: 可以导入到Excel、Python等工具进行进一步分析
注意事项
- 如果课程数量少于10门,未使用的课程和成绩字段将为空
- 修改CSV文件时请保持格式一致性
- 程序会在添加、删除、修改学生信息时自动更新CSV文件
- 建议定期备份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:输入输出辅助功能
版本: v4.2.0
最后更新: 2025年
模块化程度: 高度模块化