高校VFP课程无纸化考试系统的设计与应用研究

时间:2022-08-11 04:22:57

高校VFP课程无纸化考试系统的设计与应用研究

[摘要] 高校的考试对学校来说一直是一项繁重的工作。针对此种情况,本文提出一种高校VFP课程无纸化考试系统的设计方法并开发出实用的软件。此软件包括随机抽卷、考生状态监控、自动收卷、计算机评卷、成绩输出等功能,实现了从出卷、考试到批改试卷的全程无纸化,简单高效。把该考试系统应用于笔者所在学校VFP课程的期末考核中,获得了较好的效果。

[关键词] VFP; 无纸化考试; SQL; 计算机评卷

[中图分类号] G420;TP315 [文献标识码] A [文章编号] 1673 - 0194(2013)05- 0102- 02

1 引 言

Visual FoxPro是Microsoft公司推出的数据库开发软件,也是全国计算机等级考试所要求科目之一。在全国高校中,计算机专业开设该门课程,是作为数据库开发的一门高级语言;非计算机专业开设该门课程,是作为继计算机基础课程之后,深入学习计算机知识的一门计算机语言类课程,且可以帮助学生通过全国计算机等级考试。

对于VFP课程的学习,除了掌握必要的理论知识外,更重要的是实际操作,如:数据库的建立、程序的编写、表单的建立、SQL语句的编写等。而对于这些实际操作的考核,用传统纸质试卷无法做到[1]。

因此,有必要开发基于微型计算机的无纸化考试系统,来克服纸质试卷的缺点。另外,无纸化考试还具有降低考试工作量、提高效率、防止作弊、考试环境与工作实际类似、增加学生动手能力、低碳等优点[2]。

2 系统设计

本系统基于局域网进行设计,使用Visual FoxPro 6.0语言进行开发。包括三部分:服务器端、学生端和改卷程序。

2.1 服务器端

服务器端的作用是对考试数据的输入、导出、维护和监控。具体功能有:

2.1.1 试题包的导入

可以在考试前导入试题包。试题包包括:单个文件网页(mht)格式的文本文件,用于在学生端进行显示,供考生读取试题信息;供考生实际操作和SQL语句操作的各种文件。为了防止相邻考生作弊,试题包有多个,学生登录时随机抽取一套。导入试题包内容的命令为:Copy file *.* to目标文件夹\*.*。

2.1.2 考生表的导入

考试前需导入考试班级学生的名单,名单的格式为DBF,结构为:

学号(C型,8),姓名(C型,8),状态(C型,6),班级(C型,20)。

导入考生表的命令为:Copy file考生表.dbf to目标文件夹\考生表.dbf

2.1.3 显示考生状态

为一个表单,上面显示正在考试班级的每个考生的状态(未登录,登录,已交卷)及整个班级处于各种状态的人数。其中,统计处于“已交卷”状态的人数的命令为:

count for状态=’已交卷’to thisform.text3.value

2.1.4 备份考生考试数据

每场考试结束后,需要备份的考试数据。数据包括学生的答题卡和实际操作产生的各种文件,改卷程序将依据这些文件为学生评分。

2.1.5 添加考生信息

在实际考试中,经常需要临时添加考生到某个考场中,采用的办法是,建立一个表单,上面添加4个文本框,用来输入学号、姓名、状态、班级信息,然后用如下命令添加到考生表中:

insert into考生表values(alltrim(thisform.text_xh.value),alltrim (thisform.text_xm.value),alltrim(thisform.text_zt.value), alltrim(thisform.text_bj.value))

2.2 学生端

学生端的作用是提供考生登录时的身份验证,从服务器把考题随机拷贝到学生端计算机,交卷,以及考试的试题板等[3]。具体功能为:

2.2.1 登录时验证信息

为了防止误输入别人学号及走错考场,考生登录时,需要输入自己的学号,系统根据学号在服务器端的学生表中查询出相应的姓名,显示在学生端,供考生确认。

2.2.2 二次登录和防止学生重复考试

在考试过程中,难免出现死机、断电等非正常退出。在这种情况下,应该允许学生再次登录,从非正常退出前的状态下继续做题,正常交卷。前提是需要监考老师输入二次登录密码。判断考生非正常退出的命令是:

IF len(alltrim(xmzt(1)))>0 and alltrim(xmzt(2))=’登录’

messagebox("您已经登录过,如果想再次登录,请监考老师输入二次登录密码")

ENDIF

2.2.3 随机抽取试题和二次登录抽取试题

为了防止学生作弊和猜题,本系统采用随机抽取试题:服务器端有多套试题,分别保存于不同的文件夹中,考生在学生端经过验证后,随机复制一套试卷到学生端计算机。

本系统采用对时间函数产生的数值进行处理获得随机数的办法。例如服务器中有6套试题,分别保存于6个文件夹中:shiti 0,shiti 1,…,shiti 5,对这6套试题复制的命令如下:

Shiti_NO=alltrim(str(SEC(DATETIME( ))%6))

Shiti_direct=’\\sever\shiti’+ Shiti_NO+’\*.*’

COPY file &Shiti_direct to考生目录

经过对系统在实际应用过程中抽取试题套数的统计,发现每套题被抽中的概率相同,从而实现了随机抽取试题的目标。

2.2.4 在学生端显示试题

考试需要显示试题给学生,在表单中,显示大量文本通常使用的是编辑框,但编辑框有其不完善的地方,比如数据源不灵活,文本的页面无法设置(如行间距和页边距等)。这为实现试题显示的方便性和美观性带来了困难。

为了克服这些缺点,本系统采用的是使用VFP 6.0提供的浏览器控件_webbrowser 4,利用格式为MHT的网页文件作为其数据源的办法。

本系统使用3种题型对学生进行考核:选择题、实际操作题和SQL题。题板为一个表单,上面添加一个页数目为3的页框,每个页上面放一个_webbrowser 4控件,每个_webbrowser 4控件的navigate属性设置为存放相应题的MHT文件,如:

thisform.Pageframe1.Page1._webbrowser41.navigate(‘选择题.mht’)

其中“选择题.mht”为页面已经设置好的文本文件。实际操作题和SQL题也做类似设置即可。

2.2.5 答案的保存

根据题型的不同,答案有3种情况:实际操作题答案为学生所创建的各种文件,保存于考生目录中,交卷时直接提交即可。本系统设计为只要学生是从答题板上启动的VFP软件,则系统自动把考生目录设置为默认目录,学生所做实际操作题全部保存于考生目录;选择题答案的保存采取的办法为设置数个按钮数目为4的选项按钮组,在其InteractiveChange事件中加入如下代码:

If thisform.Optiongroup.Option1.value=1

UPDATE 答题卡 set 选择1=’A’

ENDIF

对于SQL题的答案,本系统设计为要求学生填写在题板中设置好的编辑框中,在编辑框的InteractiveChange事件中加入如下代码:

UPDATE答题卡 set sql1=this.value

2.2.6 答案的提交

无纸化考试的关键之一是如何把学生所做的答案准确无误地提交。本系统设计了两种交卷方法:第一种是手动交卷,在考试时间截止之前,点击答题板上的“交卷”按钮,经过学生确认以后,学生端即可把考生目录中的所有文件提交到服务器上。使用的命令为:

COPY file *.* to \\sever\VF收卷\考生目录

第二种交卷方法是系统自动交卷,配合Timer控件的倒计时,在考试时间只剩5分钟的时候提醒考生一次。时间耗完,使用上述命令强制交卷。

2.3 改卷程序

如何对学生提交上来的答案进行计算机自动改卷,是无纸化考试另外一个关键。本系统改卷程序的功能主要包括标准答案的输入、批改试卷和成绩输出[4]。

2.3.1 标准答案的输入

为一个表单,上面放置一个表格控件,向表格控件添加如下内容:试题套数(C型,2),数个选择题答案(C型,1),数个SQL题答案(memo)。改卷程序依据这些数据对学生的选择题和SQL题进行批改,判分。

2.3.2 试卷的批改

有3种题型,需要3种改卷方法。

第一种,选择题的批改。只需要把考生答题卡表中的选择题答案分别和标准表中相应试题的选择题答案进行比较,相同说明考生做对。

第二种,对实际操作题的批改。虽然实际操作题也为客观题,但实际考试中涉及多种操作,多种操作产生多种格式的文件。这给批改带来了一定的困难。本系统采取的办法是先建立一个文件夹,文件夹中放入标准的实际操作产生的各种文件,把考生的文件夹中的文件和标准文件夹中的文件进行比较,相同说明正确。

对于文件的比较,在VFP中,表单文件、项目文件、报表文件、数据库文件等都可以把它们当作VFP数据表的形式打开,打开之后,用比较表内容的方法比较即可。

第三种,SQL题的批改。SQL题属于主观题,答案可以不唯一。这也是无纸化考试的一个难点。本系统对SQL进行批改的方法主要分3步[5]:

(1) 关键部分的检查,比如查询的字段名,某些查询条件等。如果关键部分不正确,则该SQL语句肯定不正确,不加分。

(2) 第(1)步正确的情况下,判断SQL语句是否有语法错误。判断的方法是执行语句,能执行则说明无语法错误。此时需要用到VFP软件中ON ERROR命令。此命令的功能是当程序发生错误时,执行指定的操作。

(3) 如果第(2)步正确,需要判断执行的结果是否满足要求。判断的方法是,让标准答案表中相应的SQL语句执行,查询结果生成一个表。让学生答题卡表中的SQL语句执行生成另外一个表。检查这两个生成的表内容是否相同,如果相同,说明预判断的SQL语句正确。

2.3.3 成绩输出

由程序生成的成绩表为DBF格式,为了方便成绩的查看,设置了导出为XLS格式的功能,相应的命令为:

Use成绩表

COPY TO成绩表TYPE XLS

3 验 证

本系统用于笔者所在学院2009级1 023人和2010级1 012人的VFP课程期末考核。系统运行顺利,减少了教师50%以上的工作量,节省了70%以上的批改试卷的时间;VFP成绩公布后,无1名学生对自己的成绩提出异议;本系统配置简单。使用结果验证了本系统的正确性和实用性。

主要参考文献

[1] 申杰,王文凡,等. 高校《Visual Foxpro应用》课程考核改革的探索[J].华北水利水电学院学报:社科版,2010(4):175-177.

[2] 李晓宇. 新时期高校无纸化考试系统应用的几点思考[J]. 中国科教创新导刊,2011(28):36-37.

[3] 李健,陈剑英,等. 一种基于能力考核的无纸化考试系统的设计与实现[J]. 计算机与现代化,2011(11):158-161.

[4] 王珠强,葛新旗. 无纸化考试系统评价体系研究[J]. 中国管理信息化,2010(21):73-75.

[5] 辛守庭,徐超. 一种在程序中判断SQL正误的方法[J]. 信息系统工程,2012(8):139-150.

上一篇:关于高校开放式实验教学的探索 下一篇:医院图书馆电子阅览室的管理与服务