54 lines
1.8 KiB
C++
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 ×tamp, 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 ×tamp);
|
|
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
|