基于微信小程序的在线考试系统设计与实现
2022-08-19马延立
马延立
(许昌职业技术学院信息中心 河南 许昌 461000)
0 引言
随着信息技术的发展,学校教学手段不断向信息化、智能化发展,加上近年来受疫情影响,线上教学得到了飞速发展,在线考试平台也成为了教师评价学生学习情况的主要方式。本文设计并实现了一套在线考试系统,该系统基于微信小程序实现,用户无需对软件下载安装可直接在微信中使用,系统实现了学生可通过小程序考试端进行在线考试、在线练习、错题管理等操作。教师通过后台管理端可进行管理题库、自动组卷、考试管理、客观题自动评分等操作,对学生考试成绩、练习次数、错题知识点等归类分析,极大提高了教师工作效率,减轻了教师工作负担。
1 系统需求分析及总体功能架构
1.1 系统需求分析
1.1.1 操作便捷
从考生角度来讲,在线考试系统要满足考生在线报名、在线练习、在线考试、成绩查询等功能,考生进行考试时无需下载APP,使用小程序直接进入考试端进行考试。考试端支持考生在线注册登录和后台导入账号密码登录;考试端支持考生使用多种模式进行在线练习。从教师角度来讲,考试系统管理后台要满足教师使用便捷的需求,可以通过系统界面、Word 和Excel 格式导入题库,客观题支持自动评分,支持自动组卷等[1]。
1.1.2 可控性强
在线考试支持强制交卷、不可回看、后台延时、打乱题目等操作;支持试卷定时按班级或人员进行发放;管理后台可对试卷进行整体分析,包括题目得分率、客观题排名等。
1.1.3 易扩展
学生信息支持手动导入,同时也支持对接学校数据中心,通过API 接口获取学生信息;根据实际需要系统可快速部署在其他小程序平台或生成APP。
1.2 系统总体功能架构
在线考试系统分为微信小程序考试端和Web 后台管理端。考试端主要是学生使用,其主要功能为在线练习、在线考试、错题管理等[2];管理端主要由教师使用,主要功能为题库管理、组卷管理、试卷管理、考生管理、报表分析等。在线考试系统总体功能见图1。
2 系统技术选型
2.1 考试端
为了增强使用者使用体验,减轻使用者手机使用压力,考试端采用微信小程序实现,微信小程序不区分手机操作系统,无需下载,打开即可登录使用,关闭后不占用手机存储,目前大量移动端应用都有小程序版本。本文设计的基于微信小程序的考试端使用uni-app 进行开发,uniapp 是一个使用Vue.js 开发的前端应用框架,开发者只需要编写一套代码,就可以发布到微信小程序、支付宝小程序、苹果APP、安卓APP、移动Web 端等多个平台。
2.2 后台管理端
教师后台管理系统基于B/S 架构进行设计开发,采用前后端分离的架构设计模式。前端采用Vue.js 进行开发,Vue 是一个轻量级前端框架,具有双向数据绑定、组件化、数据和结构的分离、虚DOM 等特点,且运行速度快。
2.3 API 接口开发
考试端和后台管理端的API 接口都采用了ThinkPHP5进行设计开发。ThinkPHP 是一款轻量级PHP 开发框架,具有免费开源,开发快速、简单,性能出色等特点。ThinkPHP5 是其第五代开发框架,加入了对API 接口开发的良好支持,能够快速构建开发API 接口。
3 系统数据库表设计及功能实现
3.1 系统主要数据库表设计
本系统使用MySQL 数据库,其主要数据库表包含题库表、试卷表、考试表、错题表、答卷表、用户表等,其设计如下。
(1)题库表(e_question):题库表存放试题的相关信息,包括题目编号(q_id)、题干(q_content)、题目类型(q_typeid)、选项(q_option)、答案(q_answer)、知识点(q_knowledge)、难易程度(q_level)等,其中“选项”字段只有当题目类型为选择题时有值,其他情况为null。为了更方便地读取“选项”字段值,采用JSON 字符串保存该值。
(2)试卷表(e_paper):试卷表存放了组卷信息,主要包含试卷编号(p_id),试卷内容(p_content)、试卷状态(p_flag)、组卷人(p_userid)等信息,为了让该数据表适应不同题型的试卷,字段“试卷内容”采用JSON 字符串保存试卷所含题目信息,包含试题类型id(TypeId)、题目id(QuestionIds)、每题分值(Score),读取试卷时系统按照该字段试题类型和题目id 顺序从“题库表”读取题目信息。由5 道单选题(TypeId 为1)、5 道多选题(TypeId 为2)、5 道简单题(TypeId 为4)组成的100 分“试卷内容”字段表示形式如下:
[{"TypeId":"1","QuestionId":"10,17,20,70,103","Score":"5"},
{"TypeId":"2","QuestionId":"5,19,30,85,208","Sc ore":"5"},
{"TypeId":"4","QuestionId":"135,191,310,385,408","Score":"10"}]
(3)考试表(e_exam):考试表包含了教师组织的考试信息,主要包含考试编号(e_id)、试卷编号(e_pid)、考试时间(e_time)、考试状态(e_flag)、是否允许回看(e_isback)、是否强制交卷(e_submit)、参考班级(e_classid)等。
(4)错题表(e_error):错题表包含了学生自测及考试中的错题信息,主要自动为题目编号(eq_qid)、作答答案(eq_option)、笔记内容(eq_content)等。
(5)答卷表(e_answer):答卷表主要包含学生每次考试的答卷信息,主要字段有试卷编号(a_pid)、考生编号(a_userid)、答卷内容(a_content)、得分(a_score)等,其中“答卷内容”采用JSON 字符串格式保存考生的答题信息,其表示形式如下:
{"qid":"题目编码","answer":"答案","score":"得分"}
(6)用户表(e_user):用户表包含学生的学号(u_userid)、性别(u_sex)、专业(u_major)、班级(u_class)、手机号(u_phone)、登录密码(u_password)、是否允许登录(u_islogin)、注册时间(u_time)、数据来源(u_origin)等。“数据来源”字段标识考生信息是后台导入还是考生考试端自助注册。“是否允许登录”可控制考生是否可以登录考试端。
3.2 系统主要功能实现
3.2.1 考生管理
考生管理主要实现了对考生基本信息的管理和登录认证,本系统实现了两种方式获取考生信息,一种是教师可通过后台系统批量导入考生信息,主要包括考生的姓名、学号、手机号、专业、班级、初始密码等,考生可在小程序端通过学号和初始密码进行登录,登录成功后系统会自动将学生微信id 与学号进行绑定关联;第二种是考生通过考试端进行注册,注册完成后根据教师设置的是否需要后台进行审核进行相关操作,若需要审核则等待教师审核通过后考生可进行登录使用。
3.2.2 题库管理
本系统题库管理功能包括题目单题录入、Excel导入、Word导入,题目类型支持单选题、多选题、填空题、判断题、简答题等[3],题目录入时可将客观题正确答案及主观题参考答案一并录入,题库管理界面见图2。
单题录入时教师点击“添加题目”,选择题目类型,输入题目内容、课程名称、难易程度、选项、正确答案、知识点、答案解析等进行手动录入,由于手动输入题目较为麻烦,一般只用于录入少量题目时使用,录入大量题目时使用Excel 或者Word 进行批量导入。
Excel 导入题目时教师操作相对简单,教师按照设定的Excel 模板输入题目进行导入即可,其中录入填空题时,正确答案可不填写,选项数代表题目中的空数,若空较多,可对列进行扩展;录入简答题时,正确答案写在标题为A列。Excel 导入不支持题干中有图片的题目,Excel 导入模板见图3。
Word 导入题目时则需要按照导入模板设定的标准进行操作,具体要求为:
(1)每个题目的录入顺序需要按照题干、选项、答案、难易程度、答案解析、题型进行录入,相互之间用回车隔开。(2)难易程度、答案解析、题型均以加冒号开头,如:“答案解析:”。难易程度包括难、中、易3 个级别。(3)题目中的文本、图片、公式需要在同一行不能出现回车符,需要换行显示时用大括号括起来。(4)题目需要添加题号,题号用小写数字表示,题目与题目之间用空行隔开。(5)选择题答案录入方式为“‘答案:’+答案内容”,多选题的答案内容之间用逗号隔开。(6)判断题答案用中文“对”和“错”表示。(7)填空题的空缺处用下划线“____”表示,空格与空格之间用顿号“、”隔开。填空题答案以分号“;”结束,若有多个空格答案用分号“;”隔开。
3.2.3 组卷管理
本系统组卷管理包括手动组卷和自动组卷两种方式。手动组卷时教师手动从试题库选择题目,设定题型总分,系统会根据选择的题目进行归类并计算单题分值。自动组卷时教师需要设定试卷名称、试卷题库科目、试卷总分、题型、题型分值、题型数量、难易程度比值等,提交生成之后系统会自动根据设定产生试卷,教师可对生成的试卷进行个别调整,自动组卷界面见图4。
3.2.4 考试管理
考试管理功能包括考前管理、考中管理、考后管理等。
考前管理主要实现了教师可以填写本次考试信息、选择试卷、设置考试时间,考试须知,并设定试题是否允许回看,是否允许提前交卷、是否强制收卷、是否打乱题目顺序等,选择需要参加考试的班级或学生;当学生进入小程序考试端时,会看到需要参加的考试信息,到设定的考试时间,学生即可点击进入考试,考前试卷管理界面见图5。
考中管理可以处理考试中出现的特殊情况,比如针对考试中考生手机无法进入小程序、手机死机的情况可以对考生账号进行延时处理;对于考试误操作提前交卷可手动撤回考生试卷。对考试过程中违规的考生可标记违规或强制收卷。
考后管理可以查看考试完成情况,学生考试用时等,进入考后阅卷即可查看学生客观题得分情况及对主管题目进行判分。阅卷完毕后,教师可以通过后台设置让学生在考试端查看试卷得分,并查看题目正确答案及解析。
3.2.5 在线练习
学生登录考试端小程序后可根据教师开放的题库或试卷库进行试题练习,题库题目按照科目类别、题目类型、难易程度、知识点等进行了划分,学生可自主进行选择练习;选择试卷进行练习时,学生可以设定题目是否可以回看、是否及时显示参考答案等进行练习,同时可对题目进行收藏及添加笔记等。
3.2.6 在线考试
在线考试界面主要显示试卷名称、考试倒计时、题型、题目内容,界面操作按钮包括交卷、答题卡、标记、上一题、下一题;其中当教师设置考试不可提前交卷时,点击“交卷”按钮时会提示“本场考试不允许提前交卷!”,当考试时间到时系统会禁止学生答题,自动提交学生试卷;点击“答题卡”按钮可显示所有题号,已答题目显示绿色,未答题目显示灰色,标记题目显示红色,点击相应题号可跳转到所选题目;考生答题过程中如果遇到答案不确定时,可先行作答,然后点击“标记”按钮,待题目全部做完后可点击“答题卡”按钮查看标记为红色的题目进行重点检查。
考试过程可设置为“可回看题目”和“不可回看题目”两种模式,“可回看题目”模式下学生答题顺序不受限制,遇到不确定题目可先进行标记跳过,全部作答完成可回看检查题目;“不可回看模式”下学生只能顺序答题,“上一题”和“标记”按钮均不可点击,只能点击“下一题”按钮进行作答,题目跳过后也不可回看重做,答题界面见图6。
3.2.7 错题管理
错题管理中的错题为自动记录,主要记录考生考试或练习过程中做错的题目,主要针对客观题设定,主观题可以手动添加。错题管理支持以题型、难易程度、课程科目、知识点进行分类管理。对错题学生可以进行添加笔记、重新测试、移除错题等操作。
4 结语
本文设计的基于微信小程序的在线考试系统为疫情形势下教师线上教学提供了一个比较实用的工具,且基于uni-app 开发的系统可以快速部署到其他平台。但同时本系统也有一些不足,比如远程考试时不能监测学生是否作弊等,后期仍需不断完善。