测验页面的价值不止是给出分数。对于学习者,知道“这一题错了”还不够,还要能看到正确选项和解释;完成一组题后,结果页还应给出本次成绩与历史最佳成绩。篮球口袋教练把逐题反馈和结果汇总分为两个阶段,避免在答题过程中丢失题目上下文。

篮球口袋教练 HarmonyOS 学习应用(06):测验结果页的解释型反馈运行回读

一、单题反馈保存题目上下文

用户选择选项后,页面根据当前题的正确答案计算对错,并展示正确选项与解释文本。解释来自题目模型,不是页面临时拼接的通用提示,因此不同知识点可以保留各自的学习原因。

const correct = question.options[selectedIndex] === question.answer
this.feedback = correct ? '回答正确' : '答案不正确'
this.explanation = question.explanation

题目、用户选择、正确答案和解释要在当前题切换前一起保留。否则页面一进入下一题,用户只能看到结果颜色,无法知道自己在哪个概念上出现偏差。

二、完成结果以模块为单位归档

答完后,服务记录模块 id、得分、题目总数与时间。历史最佳成绩从同一模块的结果集合中计算,因此体能训练的成绩不会覆盖战术策略的成绩。

static bestScore(moduleId: string): number {
  return QuizService.allResults()
    .filter(item => item.moduleId === moduleId)
    .reduce((best, item) => Math.max(best, item.score), 0)
}
页面阶段 关注信息 用户能得到什么
作答中 当前题、所选答案、解释 立即理解对错原因
提交后 得分、总题数、正确率 了解本次完成度
再次进入 模块历史最佳 判断是否超过过去表现

三、运行回读结果

模拟器中逐题选择答案后,页面回读到正确选项、对错反馈和当前题解释。完成体能训练模块 6 道题后,结果页显示 6/6100%、“满分”和“历史最高:6/6”。这证明解释反馈与结果汇总都在真实答题动作链中出现。

四、解释型反馈的边界

解释型反馈不等于给用户直接公布所有题目的答案。正确的顺序是先接受用户选择,再显示该题的判定与解释;结果页只汇总已经完成的题目。若题目集合为空,页面应阻止进入作答并提示暂无内容,而不是生成 0 分的伪结果。

五、后续扩展的切入点

当前模型已经以模块 id 分隔成绩,后续可以在不改变题目反馈逻辑的前提下增加错题回练、按知识点统计和阶段性复习。关键是继续让题目解释、作答过程和成绩持久化各自承担单一职责,避免把所有规则堆进结果页。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐