标题 | 基于B/S架构的C语言在线考试系统设计与实现 |
范文 | 铁治欣 林永兴 冉宇瑶
摘要:目前C语言在线考试正逐步取代传统考试方式。针对C语言在线考试系统不能适应客观性试题与主观性试题混合组卷的缺点,设计开发一个基于B/S架构混合组卷的C语言在线练习与考试系统。学生登录该系统,可随时随地进行C语言练习,并可根据系统给出的评分及答案判断个人学习掌握情况,既可扩展学生学习时间和空间,也能减轻教师工作压力。实际应用表明,该系统实用性强,用户界面友好,可靠性高,在实践中取得了良好效果。 关键词:C语言;在线考试系统;自动判卷系统 DOI:10.11907/rjdk.192059开放科学(资源服务)标识码(OSID): 中图分类号:TP319文献标识码:A 文章编号:1672-7800(2019)010-0103-04 0引言 C语言是一种在工业界应用广泛的程序设计语言,也是高等学校计算机专业基础必修课程与学生使用计算机及进行后续专业课程学习的最基本工具。作为一门实践性很强的课程,其旨在培养学生逻辑思维能力、编程能力和解决实际问题能力。课程考试是检查学生对知识、技能掌握程度和运用情况的一个重要教学环节,是对学习行为的一种行之有效的导向措施。考试在督促学生自觉学习、激发学生创造力、调整教学策略等方面起着重要作用。隨着“互联网+”在教育领域的不断发展,人工进行出题、考试、阅卷、成绩统计评估及试卷分析的传统方式已不能适应C语言程序设计课程考试需求。目前,应用于C语言教学的在线考试系统主要分为3类:①通用考试系统,该类考试系统适用多种课程,只要将准备好的题目按规定格式导入题库即可进行在线考试,但系统通常仅支持客观性试题的自动判卷,大多不支持主观性试题,即使支持主观性试题考试,也不支持主观性试题自动判卷;②专门为C语言课程设计的在线考试系统,该类系统与第一类功能基本相同,仅支持客观性试题,如Ren等、王淑艳等设计开发的系统,这种系统由于不能考核编程类主观试题,所以对学生整体编程能力考察程度较浅。另一些系统仅支持主观性试题,该类系统通常集成某种OnlineJudge系统,从而实现对编程题目的自动判卷,如褚治广、张浩斌、曾棕根、陈湘骥等等设计的系统,但由于不能考查客观性试题,对基本概念的考察较弱。还有一些系统同时支持客观性与主观性试题,如周志锋等开发的系统,但系统没有练习模式,学生平时无法练习使用;③通过Online Judge系统进行考试,如华中科技大学推出的HUSTOJ系统、北京大学、清华大学、浙江大学各自推出的在线评测系统及杭州电子科技大学的HDOJ系统等,该类系统通常用于ACM国际大学生程序设计竞赛(ACM/ICPC),也可在这些系统中以竞赛的形式出题进行练习或考试,但该类系统也没有客观性试题的设置,因此对基本概念的考察较弱。Wasik等对Online Judge系统及其应用进行了全面综述,目前能够适应客观性试题(如判断、单选、多选等)与主观性试题(如程序填空,程序设计等)混合组卷,并能够支持网上考试与学生自由练习的C语言考试系统并不多见。 因此,本文基于B/S架构,设计开发一个可满足上述要求的C语言在线练习与考试系统。学生在局域网内可通过浏览器在线编程练习或在线考试,系统可智能判卷并记录评判结果。教师可通过局域网登录考试系统进行题库维护、设定组卷方案、开启/关闭考试、设定平时练习作业及统计学生分数等操作。 1系统设计 1.1系统体系结构设计 系统体系结构如图1所示。系统部署在学院局域网内,服务器部署在学院中心机房,答题终端主要部署在学院计算机实验室内。本文系统通过HUSTOJ系统对主观性试题进行判题,首先部署一套HUSTOJ系统,系统数据库服务器与WEB服务器也可与HUSTOJ系统共用一台或多台服务器,可满足日常教学小规模使用,同时也可满足期末考试多课程、多班级考试大规模并发的需求。 1.2系统功能模块设计 基于B/S的C语言在线练习与考试系统主要包括基本信息管理、题库管理、试卷库管理、考试过程管理、在线测试、模拟考试、考生试卷管理、成绩管理及系统管理等模块,如图2所示。 (1)基本信息管理。该模块主要完成课程、班级等基本信息管理。课程管理模块完成对考试课程的管理,包括添加、修改、删除、查询等功能;自然班级管理模块对使用该系统的自然班进行管理,包括添加、修改、删除、查询自然班级以及在自然班级中增加、修改、删除、查询学生信息等功能;选课班级管理模块主要根据学生选课情况实现添加、修改、删除、查询选课班级及在选课班级中增加、删除、查询学生信息等功能。 (2)题库管理。该模块主要对系统试题进行管理,包括添加、修改、删除、查询、批量导入(出)题目等。题目类型主要包括判断题、单项选择题、多项选择题、程序填空题、运行结果题、程序设计题。每个题目主要包含题目编号、题型、题目内容和标准答案、知识点等信息。 (3)试卷库管理。该模块主要包括自动组卷、手动组卷和试卷修改等子模块。自动组卷功能根据用户制定的组卷策略,自动生成指定数量的试卷;组卷策略是用户设定自动生成试卷的一组参数,主要包括策略类型(考试或练习)、每种题型的题量、每种题型中每个题目的分值、每种题型在各个知识点的占比、考试时间与种子试卷数量等;手动组卷功能允许用户从试题库中任意挑选题目,并设定其分值,生成种子试卷。试卷修改功能允许用户浏览生成的种子试卷,对不合适的题目进行替换。 (4)考试过程管理。该模块主要包括开启考试、关闭考试、考生状态设置、考生信息查询等子模块。开启考试功能主要设定考试有效截止时间,从试卷库中抽取一套对应的模板试题生成试卷,生成试卷时会将模板试题中每种类型的题目在该类型范围内随机分配题号,对于客观性试题还将随机分配其备选项的顺序,将考试课程状态设置为“已开启考试”;若将该课程状态设定为“考试关闭”,此时系统会强迫所有参加考试但还未交卷的考生交卷,并关闭考试,考生无法再进入该考试进行答题;由于网络中断、机器重启等客观原因,需通过主考人员设定考生考试状态,可通过考生状态设置功能完成,考生状态主要有未考试、继续考试、重考处理、作弊处理、缺考处理、考试中、已交卷、已阅卷等。考生可按学号、姓名、考生状态等进行信息查询,支持模糊查询,并可以Excel格式导出文档。 (5)在线测试。学生通过浏览器访问考试页面进行考试,考试前需用学号和密码登录系统,只有合法的考生才能登录系统;选择合适的考试课程后得到一份考试试卷,学生答卷时,已回答的题目与未回答的题目颜色不同,系统也会自动实时保存考生试卷;考生进行交卷操作或考试时间到被迫自动交卷时,系统将执行交卷操作,此时系统设置相应考生的考试状态和考试时间,退出考试功能,考生不能再次登录重复考试。 (6)模拟考试。系统提供在线测试和模拟考试两个模块。在考试未开启的状态下,进入在线测试模块,系统提示不能使用,只能使用模拟考试模块。同样,在考试开启状态下,进入模拟考试模块,系统提示不能使用,只能使用在线测试模块。模拟测试与在线测试功能基本相同,但模拟考试模块增加了一个子模块显示模拟考试结果,该模块的功能是当用户在模拟考试状态下交卷后,系统将执行交卷操作,自动阅卷,显示成绩和各题的参考答案。 (7)考生试卷管理。该模块提供考生试卷查询及按班级进行考试试卷备份、归档等功能。 (8)成绩管理。教师登录后,可查询所有自己教授课程班级的学生考试成绩,并将成绩以Excel文件格式导出。 (9)系统管理。该模块包括角色管理、用户管理、系统设置等子模块。系统在权限管理上采用基于角色的权限管理体系,用户根据所属角色具有不同的系统功能。完成系统运行相关参数设置后,系统将其存入数据库中。 1.3数据库设计 数据库设计采用Power designer软件实现。概念设计阶段的系统实体联系图(E-R图)如图3所示,系统主要实体有:系统设置、系统功能信息、角色、用户、部门、学生、行政班级、课程、知识点、考试课程、题型、题库、程序问题、组卷策略、组卷策略题型、详细组卷策略、课程试卷、课程试卷题目、考试班级学生、考生试卷信息、考生试卷程序问题、考试结果等。 系统采用MySQL作为数据库管理系统。系统需要访问两个数据库,一个是概念模型进一步经逻辑、物理设计后得到的数据库DBl,另外一个是HUSTOJ项目需要的数据库DB2,因为本文系统需通过HUSTOJ项目系统自动批改程序设计题目。 2主要实现方法 2.1考试过程管理实现 考试过程管理模块是一个非常重要的模块,其主要任务是管理教师对考试整个过程的控制,包括开启、关闭考试,查询、设置学生状态等,其流程如图4(a)所示。 2.2在线与模拟测试实现 系统在线与模拟测试流程如图4(b)所示。学生登录系统后,若教师没有启动考试,则学生自动进入模拟测试模式,学生可选择练习范围,由系统给出练习题进行模拟考试,学生交卷后,系统会进行判卷并逐题给出学生得分与参考答案;若教师已经启动考试,则学生自动进入考试模式进行考试。 2.3试卷生成 学生试卷生成需要经过两大步骤:生成课程种子试卷和生成学生卷。 生成某一考试课程C种子试卷的核心步骤包括:①读取本考试课程的組卷策略S;②对组卷策略S中的任一题型P,根据组卷策略S设定的分数占比及每题分值,计算题型P的题目个数PN;③对于任一知识点K,根据组卷策略S设定的知识点K的分数占比,计算题型P在知识点K中的题目个数KN;④从试题库中随机抽取课程为C,题型为P,知识点为K的KN个题目;⑤至此生成一套种子试卷,重复步骤②-④,直到生成规定数量的种子试卷为止。 生成学生卷的核心步骤如下: (1)对于每个参加某课程考试的学生S,当通过身份认证后,系统做以下步骤; (2)在试卷库中存贮的本考试课程的种子试卷中任取一份试卷,记为R,做以下步骤; (3)对于R中的任一题型P,假设这一类型的题目数量为PN; (4)设定学生S试卷中类型为P的题目题号i=1; (5)任意选取P中的一道题目Pi,Pi即为学生试卷中类型为P的题目第i题目,若第i道题有多个选项,则将这些选项随机排列,并将正确的选项记录下来,生成第i道题目; 题目题号i增加1,若i 2.4自动判卷实现 对于客观性试题,由于在生成学生试卷时已记录正确选项,所以只需对比学生答题答案与生成试卷时答案的字符串,若完全一样则判定学生答案正确,否则不正确。 对于主观性试题,如程序设计题目,采用开源项目HUSTOJ搭建的在线评测系统实现自动判题。系统中的每个程序设计题目均有一个属性用于记录该题目在HUST0J中的题号,这样两个系统中的程序设计题目将建立——对应关系。本文系统设计了一个监视服务进程,当学生提交新答案后,该进程将相应判题任务加入HUSTOJ数据库的任务队列中,由HUSTOJ完成判题,系统定时从HUSTOJ数据库取回判题结果。 3结语 本文设计开发了一个基于B/S的C语言在线自由练习与考试系统。实践表明,该系统实用性强,用户界面友好、简洁,可靠性高,可适应多个教学班级同时在线练习或考试。系统上线后,学生可以在学院局域网内随时随地进行C语言学习,不仅使学生的学习时间、空间得到了扩展,而且大幅减轻了教师教授C语言课程的工作压力,提高了教师工作效率。下一步将进一步扩展,使系统实现其它语言(如Java、C++、Pascal)的在线练习与考试。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。