Files

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