Files
2026-05-01 10:51:39 +08:00

54 lines
1.8 KiB
C++

#ifndef ATTENDANCERECORD_H
#define ATTENDANCERECORD_H
#include <QString>
#include <QDateTime>
/**
* @brief 考勤记录数据模型
*
* 对应CSV文件格式:Timestamp,Student_ID,Name,Confidence,Status,Class_ID
*/
class AttendanceRecord
{
public:
AttendanceRecord();
AttendanceRecord(const QString &timestamp, const QString &studentId,
const QString &name, float confidence, const QString &status,
const QString &classId = "0");
// Getters
QString getTimestamp() const { return m_timestamp; }
QString getStudentId() const { return m_studentId; }
QString getName() const { return m_name; }
float getConfidence() const { return m_confidence; }
QString getStatus() const { return m_status; }
QString getClassId() const { return m_classId; }
QDateTime getDateTime() const { return m_dateTime; }
// Setters
void setTimestamp(const QString &timestamp);
void setStudentId(const QString &studentId) { m_studentId = studentId; }
void setName(const QString &name) { m_name = name; }
void setConfidence(float confidence) { m_confidence = confidence; }
void setStatus(const QString &status) { m_status = status; }
void setClassId(const QString &classId) { m_classId = classId; }
// 从CSV行解析
static AttendanceRecord fromCsvLine(const QString &line);
// 转换为显示字符串
QString toString() const;
private:
QString m_timestamp; // 时间戳字符串
QString m_studentId; // 学号
QString m_name; // 姓名
float m_confidence; // 置信度 (0.0-1.0)
QString m_status; // 状态 (success/fail)
QString m_classId; // 班级编号
QDateTime m_dateTime; // 解析后的日期时间对象
};
#endif // ATTENDANCERECORD_H