布置作业、提交与自动评分
- 作业:老师选实验、起点(界面已做好 / 空白工程)、截止时间、每项分值(自动评分项 + 老师评分项); 起点工程由设计器引擎从参考答案生成(去掉事件绑定和事件处理方法),布置时保存起点和评分规则快照 - 提交:后台排队评分(全站同时最多评 3 份、跑 6 个检查项),重启后继续评;评分中不能再交,截止后不能交 - 学生:"我的作业"列表;实验页的作业模式(作业名、截止时间、提交、得分),评分结果弹出逐项显示 - 老师:班级管理页加"作业"标签页,布置、修改、删除作业,查看全班提交情况;改分值后重新算分 - 串口列表为空时提示在 Load 或 Click 事件里填充 - 测试:作业接口(可见范围、排队评分、部分得分、改分值、截止、删除);10 个示例两种起点都能编译 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
37fc747b49
commit
4e6b0d5cb2
23 files changed
+1439
-50
No files matched your search
@@ -15,3 +15,40 @@ export interface GradeResult {
|
||||
/** 评分用时(毫秒) */
|
||||
ms: number
|
||||
}
|
||||
|
||||
// ---------- 作业 ----------
|
||||
|
||||
/** 学生的起点:blank 空白工程(从界面做起),ui 界面已做好(只写代码) */
|
||||
export type StartMode = 'blank' | 'ui'
|
||||
|
||||
/** 分值:自动评分项按规则顺序各自的分值;老师评分项(界面、注释、命名等)由老师打分 */
|
||||
export interface Scoring {
|
||||
auto: number[]
|
||||
manual: { title: string; points: number }[]
|
||||
}
|
||||
|
||||
export interface Assignment {
|
||||
id: number
|
||||
classId: number
|
||||
className: string
|
||||
sampleId: string
|
||||
title: string
|
||||
startMode: StartMode
|
||||
/** 截止时间(毫秒时间戳),null 表示不限 */
|
||||
deadline: number | null
|
||||
createdAt: number
|
||||
/** 自动评分项的名称,和 scoring.auto 一一对应 */
|
||||
checkTitles: string[]
|
||||
scoring: Scoring
|
||||
}
|
||||
|
||||
export interface Submission {
|
||||
id: number
|
||||
status: 'pending' | 'done' | 'error'
|
||||
result: GradeResult | null
|
||||
/** 自动评分得分(通过的项的分值之和) */
|
||||
autoScore: number | null
|
||||
createdAt: number
|
||||
/** 排队评分时前面还有几份 */
|
||||
queueAhead?: number
|
||||
}
|
||||
Reference in new issue
Block a user