36 lines
1.4 KiB
C
36 lines
1.4 KiB
C
/**
|
|
* @file student_io.h
|
|
* @brief 学生数据文件输入输出操作头文件
|
|
* @note 声明学生数据的文件读写、CSV解析等功能
|
|
*/
|
|
|
|
#ifndef STUDENT_IO_H
|
|
#define STUDENT_IO_H
|
|
|
|
#include "config.h"
|
|
|
|
/**
|
|
* @brief 从CSV文件加载学生数据
|
|
* @details 从STUDENTS_FILE指定的CSV文件中读取学生信息并加载到内存中
|
|
* 解析CSV格式数据,包括学号、姓名、年龄、性别、课程信息等
|
|
* 如果文件不存在,会初始化为空的学生列表
|
|
* @note 会跳过CSV文件的头部行,最多加载MAX_STUDENTS个学生
|
|
* @note 加载完成后会设置statsNeedUpdate标志为true
|
|
* @warning 如果CSV格式不正确,可能导致数据解析错误
|
|
* @see STUDENTS_FILE, MAX_STUDENTS, Student结构体
|
|
*/
|
|
void loadStudentsFromFile();
|
|
|
|
/**
|
|
* @brief 将学生数据保存到CSV文件
|
|
* @details 将内存中的所有学生数据以CSV格式保存到STUDENTS_FILE文件中
|
|
* 包含完整的CSV头部和所有学生的详细信息
|
|
* 保存成功后会重置dataModified标志
|
|
* @note CSV格式包括:学号、姓名、年龄、性别、课程数量、各课程名称和成绩、总分、平均分
|
|
* @note 对于课程数量不足MAX_COURSES的学生,会用空值填充
|
|
* @warning 如果文件无法创建或写入,会显示错误信息
|
|
* @see STUDENTS_FILE, MAX_COURSES, dataModified
|
|
*/
|
|
void saveStudentsToFile();
|
|
|
|
#endif // STUDENT_IO_H
|