Add files via upload

This commit is contained in:
2025-07-17 21:16:30 +08:00
committed by GitHub
parent 74ed54f7f4
commit ecdc668ae3
7 changed files with 1784 additions and 0 deletions
+81
View File
@@ -0,0 +1,81 @@
# 学生成绩管理系统 - 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年
**模块化程度**: 高度模块化