周秀媛
(兰州工业高等专科学校软件工程系 甘肃 兰州 730050)
随着计算机课程的改革与发展,采用.NET技术开发出一套功能强大、实用性强、题目多样的Visual Basic(以下简称VB)考试系统[1][2]已迫在眉睫,通过提出以过程记录为前提,采用模糊评分体系实现程序设计类主观题的自动评阅来实现系统设计与研发。
熟识VB.NET语言的编程特点和理解.NET框架的开发经验的基础上,提出了一个基于Client/Server(简称C/S)与Browser/Server(简称B/S)混合模式的三层结构考试系统的设计方法[3][4],并使用大型数据库Sql Server2000解决题库问题。系统设计工程中引入模块化设计的思想,该系统专门用于试题(卷)录入、查询、修改、删除、组卷和参加考试。其最大的特点是开放性、方便性、灵活性及易维护性。
本系统采用B/S结构和C/S结构相结合的方式来实现系统的整体架构。其中面向教师维护试题库模块采用B/S结构,既简化客户端,又便于教师随时访问;面向学生考试模块则处于安全性和网络访问量大的特点,采用C/S结构来实现,该考试系统结构如图1所示。
图1 VB考试系统模块
1)题库管理
题库管理系统包括试题录入、试题分类、试题库维护等功能。试题录入方式为集中录入或随时录入;题库中试题按知识点、题型、难度等进行分类管理;题库维护包括对试题库中的试题进行添加、删除、修改、浏览、重新整理、分类统计等功能。
2)考生管理
该模块实现需与教务系统建立连接,获取参与该课程考试学生的相关信息,并按照教师考勤情况设置考生是否有参试资格,生成登录考试时的验证信息;允许对成绩有疑问的考生向相关人员要求查看自己的答卷,答卷上显示试卷的内容、考生的答案、标准答案、评分标准、每道试题的得分情况等;具备考生成绩查询等功能。
3)考试过程控制
考试控制模块由考试系统服务器端完成,主要完成为客户端提供考试服务、监控客户端行为。包括实现考生考试资格的认证、取消、禁考、考试作废等功能的设定,以及每场考生信息的回收、汇总、提交给系统服务器等功能;实现在线检测,监测考生的考试状态,包括应试人数、在线考试的考生情况,缺考的考生、提交的考生,相关信息供监考教师查看。
4)自动组卷
考生登录成功后,系统根据考生登录的情况,判别考生是否第一次登录,如果是第一次登录,系统则根据组卷规则产生随机数来随机抽取试题组成试卷,并进入考试界面。反之,说明考生可能在考试中因某种原因需重新进入考试,此时仅需恢复考生原来试卷即可。
5)自动评阅
针对选择、判断等客观型试题,评分系统将逐一对比该题考生答案与评分答案,快速准确地给出考生成绩。主观题和操作题,通过不同算法实现自动评阅,最后得出考生的总分。
6)分析统计
统计考生总体的得分情况,考生总体的最高分、最低分、各个分数段的积累人数、平均分、标准差等,用图形直观地表示出考生在各个分数段的分布情况,以及考生成绩是否符合正态分布,从而了解考生总体的掌握情况;也可分析单个考生各知识点的解答情况。
7)安全性保障
考试系统要保证数据的安全,其中包括:考前试卷保密;考后答题信息的保密,以防考生考试记录丢失和意外情况处理,为后期汇总、评阅、备查做准备。
智能组卷原理为:由组卷人设定抽题参数,系统按照抽题参数自动抽取指定数量的符合组卷人要求的试题,将其追加到考生试卷库中,并以指定的方式显示在客户端界面上提供给考生答题使用。其中随机数由随机函数生成。假如题目数为N,则产生1~N之间的一个随机整数的计算公式如下:JLH=int(1+RAND(-1)*N)。其中JLH就是通过该随机函数控制抽取的试题的记录号。自动抽题参数设置界面如图2所示。
图2 智能组卷程序界面
知识点覆盖率是指抽取的试题知识点占试题库中知识点总数的百分比;试题难度比例指的是难度为“易”、“中”、“难”的题目的比例,由试题总量和试题难度比例可以算出各难度试题的数量。通过设置这三个参数,可得到每个知识点、每种试题难度的题目数,再利用随机函数去控制抽题并将抽到的题目加入到考生试卷库中。
考试结束后要对考生所做的试题进行评判,评分的结果至关重要。从某种意义上说,评分算法成为整个考试系统成败的关键,也是整个系统的核心。
1)主观题的特征分析及解决方案
在评分系统中对于标准性试题评阅,只需将考生答案与标准答案比较,即可实现评阅;而在实际考试中,主观题是不可缺少的重要组成部分。由于主观题的灵活多样和解答结果的不确定性,因此实现主观题的自动评分具有一定的难度,如程序改错题、编程题等。对于同一个问题,不同考生的解答结果也是不尽相同的。因此,不必强求答案的一致性,这就给计算机自动评分带来很大困难。
通过分析可知,评阅此类试题的关键是考察设计结果是否正确,即运行最终代码,判断运行结果是否与预设结果一致,因此提出一种切实可行的评分方案。但在实际操作中还应考虑以下几种情况:
(1)图文界面类试题。VB中的各类控件及图形界面的设计为考核的重点之一。该类试题通常需在界面上创建若干控件对象并设置相应属性,之后编写事件代码,完成指定功能。利用VB在操作过程时必然产生相关文件,阅卷系统通过扫描相关文件与正确操作应该产生的文件结构及内容进行比较,既可以达到分步计分的目的,又可避免有些考试系统中“一刀切”的评分算法。
(2)算法实现类试题。VB支持结构化程序设计语言,而顺序、分支与循环结构在实际问题中的应用是VB的核心与重点,解决方案就是逐字符进行比较。
除了以上所述特点之外,更重要的一点是必须严禁抄袭现象,有效防止作弊。本系统从实际出发,采用“记录解答过程”的方法。评分时如搜索不到指定文件,就可认定为“抄袭”。
2)实现方法与技术
本系统采用VC++设计核心模块,采用VB.NET设计复杂的功能界面。本节以主观题自动评分模块进行简要分析,如图3所示。
图3 自动评分流程图
本文解决了如何开发一个基于.NET架构的VB考试系统的方法,系统中涉及到面向对象编程、三层结构、Web服务以及同类软件先进的设计理念及思想。设计的系统具有稳定性好、操作便捷、便于维护等特点,适合高校的语言类课程考试,具有较强的推广性,相关模块已体现于实践教学环节中,收到了良好的效果。
[1]汪永明.基于 B/S模式的在线考试系统[J].微机发展,2004,14(1):59-60.
[2]秦政,张秀彬,曾国辉,等.基于XML在线考试系统[J].福建电脑,2004(12):47-49.
[3]赵睿,张太芳,等.基于C/S+B/S混合模式的网络考试系统原型分析与设计[J].Vol.34,No.3,2005:32.
[4]刘红军,唐瑞春.基于B/S架构的网上考试系统的设计与实现[J].滩坊学院学报,2005(4):50-52.