论文部分内容阅读
[摘要] 高校的考试对学校来说一直是一项繁重的工作。针对此种情况,本文提出一种高校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
[关键词] 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