Harmony开发中考试组件库怎么使用

考试组件库 (kaoshimuban)

一个功能完整的HarmonyOS考试组件库,支持单选题、多选题、判断题和填空题四种题型,可快速构建考试界面。

功能特性

  • 单选题- 支持单选题的渲染和交互,自动互斥选择
  • 多选题- 支持多选题的渲染和交互,可选择多个答案
  • 判断题- 支持判断题(正确/错误)的渲染和交互
  • 填空题- 支持填空题的渲染,支持多个填空
  • 自动评分- 内置评分逻辑,支持自定义每题分值
  • 结果统计- 提供详细的考试结果,包括得分、正确率等

效果预览

考试界面结果页面
支持四种题型混合展示显示得分、正确率、错题解析

安装方式

方式一:ohpm安装(推荐)

ohpminstallkaoshimuban

或使用简写命令:

ohpm i kaoshimuban

方式二:本地引用

  1. library目录复制到你的项目中
  2. oh-package.json5中添加依赖:
{ "dependencies": { "kaoshimuban": "file:../library" } }

方式三:HAR包引用

  1. 编译生成HAR包:hvigorw assembleHar -p module=library
  2. 将HAR包放入项目的libs目录
  3. oh-package.json5中添加依赖:
{ "dependencies": { "kaoshimuban": "file:./libs/kaoshimuban.har" } }

快速开始

1. 导入组件和类型

import{ExamComponent,ExamData,ExamResult,QuestionType,QuestionData}from'kaoshimuban';

2. 准备考试数据

privatecreateExamData():ExamData{constquestions:QuestionData[]=[// 单选题newQuestionData('q1',// 题目IDQuestionType.SINGLE,// 题目类型'HarmonyOS是由哪家公司开发的?',// 题干'华为',// 正确答案10,// 分值['华为','小米','苹果','谷歌']// 选项),// 多选题newQuestionData('q2',QuestionType.MULTIPLE,'以下哪些是HarmonyOS的核心特性?(多选)',['分布式架构','微内核设计','全场景覆盖'],// 正确答案数组15,['分布式架构','微内核设计','全场景覆盖','仅支持手机']),// 判断题newQuestionData('q3',QuestionType.TRUE_FALSE,'ArkTS是HarmonyOS应用开发的主要编程语言。',true,// 正确答案:true或false5),// 填空题newQuestionData('q4',QuestionType.FILL_BLANK,'HarmonyOS的UI框架名称是____。',['ArkUI'],// 正确答案数组10,undefined,// 填空题无选项1// 填空数量)];returnnewExamData('HarmonyOS 基础知识测试',// 考试标题questions,// 题目列表40,// 总分30// 时间限制(分钟));}

3. 使用组件

@Entry@Componentstruct ExamPage{@StateexamData:ExamData=this.createExamData();@StateshowResult:boolean=false;@StateexamResult:ExamResult|null=null;build(){Column(){if(this.showResult&&this.examResult!==null){// 显示考试结果this.ResultView()}else{// 显示考试界面ExamComponent({examData:this.examData,onSubmit:(result:ExamResult)=>{this.examResult=result;this.showResult=true;}})}}.width('100%').height('100%')}@BuilderResultView(){Column(){Text(`得分:${this.examResult!.score}/${this.examResult!.totalPoints}`)Text(`正确:${this.examResult!.correctCount}/${this.examResult!.totalCount}`)Button('重新考试').onClick(()=>{this.showResult=false;this.examResult=null;})}}}

API 文档

ExamComponent

主考试组件,用于渲染完整的考试界面。

属性类型必填说明
examDataExamData考试数据(需使用@ObjectLink)
onSubmit(result: ExamResult) => void提交回调

QuestionData

题目数据类,使用构造函数创建。

newQuestionData(id:string,// 题目IDtype:QuestionType,// 题目类型content:string,// 题干内容correctAnswer:string|string[]|boolean,// 正确答案points:number,// 分值options?:string[],// 选项(单选/多选题)blankCount?:number// 填空数量(填空题))

ExamData

考试数据类,使用构造函数创建。

newExamData(title:string,// 考试标题questions:QuestionData[],// 题目列表totalPoints:number,// 总分timeLimit?:number// 时间限制(分钟))

QuestionType

题目类型枚举。

说明
QuestionType.SINGLE单选题
QuestionType.MULTIPLE多选题
QuestionType.TRUE_FALSE判断题
QuestionType.FILL_BLANK填空题

ExamResult

考试结果类。

属性类型说明
answersUserAnswer[]所有答案
scorenumber得分
totalPointsnumber总分
correctCountnumber正确题数
totalCountnumber总题数

辅助函数

// 判断答案是否正确isAnswerCorrect(question:QuestionData,userAnswer:any):boolean

题型说明

单选题 (SINGLE)

  • 显示单选按钮样式
  • 点击选项自动取消之前的选择
  • 正确答案为单个字符串

多选题 (MULTIPLE)

  • 显示复选框样式
  • 可同时选择多个选项
  • 正确答案为字符串数组
  • 评分时忽略选择顺序

判断题 (TRUE_FALSE)

  • 固定显示"正确"和"错误"两个选项
  • 正确答案为布尔值truefalse

填空题 (FILL_BLANK)

  • 根据blankCount显示对应数量的输入框
  • 正确答案为字符串数组
  • 评分时忽略大小写和首尾空格

样式定制

组件使用了以下颜色方案:

元素颜色
单选题标签#1890ff (蓝色)
多选题标签#52c41a (绿色)
判断题标签#faad14 (橙色)
填空题标签#722ed1 (紫色)
正确选中#52c41a (绿色)
错误选中#ff4d4f (红色)
提交按钮#1890ff (蓝色)

注意事项

  1. ExamData需要使用@State装饰器声明
  2. 传递给ExamComponent时,examData会通过@ObjectLink绑定
  3. 多选题答案比较时会忽略顺序
  4. 填空题答案比较时会忽略大小写和首尾空格

许可证

Apache-2.0

更新日志

v1.0.0 (2025-12-31)

  • 初始版本发布
  • 支持单选题、多选题、判断题、填空题
  • 内置自动评分功能
  • 提供考试结果统计

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1164283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

‌IoT设备测试的硬件与软件集成实操指南

一、集成测试的核心挑战物联网设备测试面临三重维度耦合:‌硬件层‌:传感器精度、功耗波动、通信模块稳定性‌固件层‌:嵌入式系统实时性、OTA升级兼容性‌云平台层‌:数据管道延迟、API鉴权机制、异常恢复能力典型案例&#xff1…

潮玩抽赏小程序开发全解析:玩法落地+技术架构+合规防控

潮玩抽赏小程序的核心竞争力在于“稀缺性惊喜沉浸式体验”,但超70%开发者因概率失控、高并发崩盘、IP版权违规等问题折戟。2025年国内盲盒市场规模突破500亿元,小程序渠道贡献超30%交易额,赛道潜力显著。本文从技术视角拆解潮玩抽赏核心玩法实…

DevOps中的持续测试实施路径与效能提升

‌一、持续测试的核心价值重塑在日均数十次部署的DevOps流水线中,传统阶段式测试已成瓶颈。持续测试通过‌测试左移、右移与自动化深度集成‌,构建质量防护网:‌质量门禁前移‌:需求评审阶段嵌入测试用例设计(如BDD协作…

转行渗透测试工程师:3 个月自学实战指南,这几个操作助我成功转型

转行做渗透测试工程师:3 个月自学计划分享 一、引言 渗透测试工程师是网络安全领域的热门岗位,不少人想通过自学转行。3 个月时间虽短,但只要制定科学的计划,专注核心知识点,就能快速入门,为求职打下基础。…

基于单片机的红绿灯设计

摘 要 随着城市化建设和交通事业的飞速发展,在智能交通系统的研究和发展中,交通信息显示系统是解决交通拥挤、保证交通安全、提高交通网络使用效率的不可缺少的重要部分,如在道路上安装可变交通信息显示牌,对行驶在道路上的车辆进…

[2-03-03].第02节:ES初识 - ElasticSearch概念

ElasticSearch学习大纲 二、ES中的核心概念: 2.1.Lucene和Elasticsearch: Lucene: 最先进、功能最强大的搜索库,如果直接基于lucene开发,非常复杂,api复杂 b.Elasticsearch: 基于lucene,封…

Paperzz 开题报告|AI 赋能学术起点,一键开启你的论文高效创作之旅

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - 开题报告https://www.paperzz.cc/proposal 在学术研究的漫漫长路上,开题报告是叩响知识殿堂的第一扇门。它不仅是对研究方向的精准锚定,更是后续论文写作的蓝图与基石。但…

基于单片机的防火防盗报警系统

摘 要 随着社会和经济的发展,防火工作越来越重要,但是目前国内的许多研发都侧重于大型场所的火灾报警。因此,我们就有必要研制一种结构简单、经济实用的家庭烟雾报警器以适应市场的需求。基于供家庭使用的烟雾报警器应该具备的基本要求和功能…

钉钉的AI赋能办公

一、 钉钉AI的核心形态:从“指令”到“托管”钉钉的AI赋能主要经历了从 Chat(对话) 到 Agent(助理),再到现在的 Workflow(流转) 三个阶段。1.1 个人级:你的“数字双胞胎”…

Node.js用os.cpus()轻松获取CPU核心数

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Node.js的os.cpus():从静态核心数到动态计算资源的演进与挑战目录Node.js的os.cpus():从静态核心数到动态…

【广东省高等教育学会人工智能与高等教育研究分会主办 | IEEE出版 | 往届已完成EI核心检索,快至会后3个月检索】第三届智慧城市与信息系统国际学术会议 (ICSCIS 2026)

第三届智慧城市与信息系统国际学术会议 (ICSCIS 2026) 2026 3rd International Conference on Smart City and Information System 2026年1月30-2月1日 中国广州 大会官网:www.icscis.net【论文投稿】 截稿时间:见官网 主办单位:广东省…

什么是大模型?——AI的“超级大脑“全面解析,从入门到精通

本文系统介绍了大模型的概念、特征、与小模型的区别、涌现能力、工作原理、应用领域及未来趋势。大模型是拥有数十亿至数千亿参数的深度学习模型,通过预训练、微调和对齐三个阶段工作,具备跨领域泛化能力。随着参数规模扩大,AI展现出涌现能力…

车企AI市场分析榜单:原圈科技领衔,决胜2026营销变革

在2026年激烈的汽车市场竞争中,AI市场分析成为关键。本文深度盘点主流系统,其中原圈科技凭借其在技术能力、行业应用深度及客户实证效果的突出表现,被视为领先解决方案。榜单将为您揭示各系统优劣,为车企智能化营销转型提供决策依据。2026车企智胜未来:AI市场分析系统深度榜单引…

77.8分SOTA!Qwen3-VL多模态检索模型技术详解与实战应用

Qwen3-VL-Embedding和Reranker是基于Qwen3-VL的多模态检索与排序模型,采用双塔和单塔架构,在MMEB-V2基准测试中取得77.8分SOTA成绩。支持文本、图像、视频等多模态输入,通过MRL和QAT技术实现高效推理。文章详细解析了模型架构、训练策略和实现…

Android 基础入门教程2.5.5 ExpandableListView(可折叠列表)的基本使用

2.5.5 ExpandableListView(可折叠列表)的基本使用 分类 Android 基础入门教程 本节引言: 本节要讲解的Adapter类控件是ExpandableListView,就是可折叠的列表,它是ListView的子类, 在ListView的基础上它把应用中的列表项分为几组…

大模型完全解析:从小白到AI入门的必学知识体系

本文系统解析AI与大模型核心概念,从AI定义、大模型原理、GPT本质、AIGC应用到算力与Token等基础知识入手,清晰阐述AI发展的三个阶段(弱人工智能、强人工智能、超强人工智能)及当前所处位置,为读者提供结构化、易懂的AI入门指南。最全AI科普&a…

干货收藏!2026网络安全新机遇:AI技术引领高薪就业新时代

干货收藏!2026网络安全新机遇:AI技术引领高薪就业新时代 文章分析2026年专科专业新增趋势,指出AI、智能化和数字经济相关专业成为热点。技术人才就业前景广阔,得益于政策支持、人才缺口扩大和薪资上涨。黑马程序员培训机构推出融…

Android 基础入门教程2.5.6 ViewFlipper(翻转视图)的基本使用

2.5.6 ViewFlipper(翻转视图)的基本使用 分类 Android 基础入门教程 本节引言: 本节给大家带了的是ViewFlipper,它是Android自带的一个多页面管理控件,且可以自动播放! 和ViewPager不同,ViewPager是一页页的&#xf…

pytest框架:mark标记功能

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、mark标记在实际工作中,我们要写的自动化用例会比较多,也不会都放在一个py文件中,如果有几十个py文件,上百个方…

新手必看!2026年这3张入门级网安证书,让你轻松踏入网络安安全行业

新手必看!2026年这3张入门级网安证书,让你轻松踏入网络安全行业 如果你正准备进入网络安全行业,却还在纠结该考哪张证书作为起点,那么这篇文章会给你清晰的答案。 2026年,网络安全人才缺口依旧巨大,而对新…