81 lines
2.8 KiB
Markdown
81 lines
2.8 KiB
Markdown
# 学生成绩管理系统 - 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年
|
||
**模块化程度**: 高度模块化 |