Files
IOT_SIM/shared/grading.ts
T
xuyueandClaude Opus 5.5 37fc747b49 自动评分:评分规则和执行引擎
- 每个示例的 checks.yaml:书上评价表的功能项转成操作步骤和期望结果(10 个示例共 23 项)
- 引擎:编译一次,每项在沙箱里单独启动一次程序,按控件名操作、调节实训台、核对结果;
  提示框自动点第一个按钮;全站同时最多跑 2 项
- 不通过时写明期望和实际,如"期望6 秒内 txt_even 的文字包含"发现入侵",实际是"正常"";
  找不到书上规定的控件名时直接指出
- 规则写错时指出第几项第几步
- 测试:参考答案全部通过;编译错误、控件改名、判断写反、忘停定时器、接错 DO 口各自报出对应原因

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 18:20:46 +08:00

18 lines
534 B
TypeScript

// 自动评分的结果:服务器给学生程序逐项检查后返回,学生提交后立即能看到。
export interface CheckResult {
/** 检查项名称,对应书上评价表的功能项,如"能实时显示入侵数据" */
title: string
passed: boolean
/** 不通过的原因:期望看到什么、实际是什么 */
message?: string
}
export interface GradeResult {
/** 编译没通过时所有项都不通过 */
compiled: boolean
results: CheckResult[]
/** 评分用时(毫秒) */
ms: number
}