文本型试卷随机组卷系统的设计与实现

2011-08-15 00:49翁健高
大众科技 2011年5期
关键词:试题库小题文档

翁健高 李 文

(广西大学计算机与电子信息学院,广西 南宁 530004)

文本型试卷随机组卷系统的设计与实现

翁健高 李 文

(广西大学计算机与电子信息学院,广西 南宁 530004)

随着高校教学改革的深化,目前的高校的各门课程基本上都采用试卷库的方式进行组卷考试,这样能够更全面地衡量学生对每门功课的掌握程度,也更体现了教考分离的核心本质。目前考试试卷的组卷方式普遍采用任课教师预先组好每一份试题,考试时再随机抽取任一份试卷的方式或采用市面上的数据库随机组卷系统的方式进行组卷,而文本型试卷随机组卷系统利用教师提交的WORD文档组成的试题库直接转换为文本文档,然后使用此文档类型的试题库直接随机生成考试试卷,使试题库随机组卷实现简单化、易用性和便利性。

试题库;文本文档;随机组卷

随着高校教学改革的深化,目前的高校的各门课程基本上都采用试卷库的方式进行组卷考试,这样对学生会更公平、更能全面衡量学生所掌握的知识。

目前试卷的组卷方式普遍采用任课教师预先组好每一份试卷,考试时再随机抽取任一份试卷的方式或采用市面上的数据库随机组卷系统的方式进行组卷,前者随机性不高,而数据库类型的随机组卷系统在建立试卷库时录入量大,给建立试卷库带来了很大的难度。

“文本型试卷库随机组卷系统” 能够避免以上两种组卷方式的缺点,只要将已上交的WORD文档类型的试卷库转换为文本文档,就能实现试卷库的随机组卷工作,不需要再做设置,也不需要录入,从而大大地减轻了教务人员或教师的试题录入工作量。该系统的缺点是只适用于能将WORD文档并顺利转换为文本文档的试卷库,对于有数学公式的试卷库不适用。

(一)文本型试卷随机组卷系统试卷库的组库规则

目前,高校任课教师上交的试卷库一般都为WORD文档,如果需要使用本系统来随成生成考试试卷,必须按照下列规则来构建试卷库,系统才能顺利稳定地运行。

1.试卷中每大类型题目的标号必须为“一、二、 三、四、… ”(如“一、填空题,二、选择题.....”)设置,否则不能正确工作。试卷库最多能设置十大类型的题目,如果超过十个类型的题目量,则十大类型题以后的题目系统不作组卷操作;如果试卷库的题目类型确实超过十大类,则可将十大类型后面的题目放在另一个WORD文档中,组卷时分别组卷,然后将组出的两份试卷合并即可。

2.每大类型题目的每小题的标号必须如“1、2、……999.”设置,每大类型题目最多能设置999小题,否则不能正确工作。

3.如果小题内还有分标题,则分标题的标号可以设置为①、②、③、④…或Ⅰ、Ⅱ、Ⅲ、Ⅳ…或⑴、⑵、⑶、⑷…或 A、B、C、D…或 1)、2)、3)、4)…。

4.每小题的排列可以换行,也可以包含有空行,系统都能正确分辨。

(二)文本型试卷随机组卷系统的实现

考虑到系统的通用性,系统应包含试卷库试题类型分析、试题抽取和试卷组卷三部分。界面设计应包括输入将要生成试卷的试卷名称,试卷库路径选择、试卷文件输出路径选择、试题抽取和试卷组卷五个部分。

1.抽题随机性的实现

随机性是该系统的灵魂,只有实现对每大题的所有小题抽取的随机均等抽取的机会,才能真正体现系统的优越性。目前在编程过程中产生随机数,最常用的方法是使用随机函数,但该函数是根据数学迭代的方式产生,虽然能随机产生各不相同的随机数,但分布仍然太集中,所以本系统采用由系统时钟的方法产生随机数,这样每大题内所有小题都会最大限度地获得均等随机抽取的机会,保证了系统的随机性。实现核心代码为:

For i =1 To m

a(i) = i

Next i

100: start = Second(Time) Mod m

If start = 0 Then GoTo 100

For w =1 To 10

Next w

120: step = Second(Time) Mod m

If step = 0 Or step =1 Then GoTo 120

j = 1

Do

b1(k, j) = a(start)

i = start

For h = i +1 To m

a(h - 1) = a(h)

Next h

If (start + step) < m Then

start = (start + step) Mod m - 1

Else

start = (start + step) Mod m

End If

If start = 0 Then start = m

m = m - 1

j = j + 1

Loop Until j > n

End If

其中DO循环的功能是过滤掉已经选取过的题目被重新选择的情况。

2.试卷库题型及题量分析

试卷库中包含了题目类型和每类型的题目数量,组卷的目的就是能从每个类型的题目中抽取一定数量的题目。为此,系统必须先分析试卷库,确定试卷库中所包含的题目类型及每类型题的小题数量和每类型题目在文档中的位置,为产生随机题目和试题抽取提供依据。实现核心代码为:

Do While Not EOF(1)

On Error Resume Next

Line Input #1, NextLine

ftotal = ftotal + 1

If InStr(Trim(NextLine), "一、") Then

tmname(itypenum) = NextLine

ftotalh(itypenum) = ftotal

Do While InStr(Trim(NextLine), "二、") = 0 And Not EOF(1)

Line Input #1, NextLine

ftotal = ftotal + 1

If InStr(Trim(NextLine), "、") <> 0 Then

yestm = Left(Trim(NextLine),InStr(Trim(NextLine), "、") - 1)

If yestm > 0 And yestm <= 999 Then

tmnum(itypenum) = tmnum(itypenum) + 1

yestm = 0

End If

End If

Loop

itypenum = itypenum + 1

End If

Loop

3.试题抽取

试卷库的构成比较复杂。首先,试卷库主要由题目类型和各小题组成,小题中又包含有小标题,每小题有可能包含多行文字,也可能包含有空行。如何区分每小题的读取完整并过滤掉有可能出现的空行,是本系统的难点和关键点。为此,完整读取选取的每小题并过滤掉空行的核心代码为:

Do While Not EOF(1)

On Error Resume Next

Line Input #1, NextLine

readh = readh + 1

If readh = btwz Then

If NextLine <> "" Then

Lines = ""

Lines = Lines & NextLine & Chr(13)

Do While Not EOF(1)

Line Input #1, NextLine

wq = 0

wq = Left(Trim(NextLine),InStr(Trim(NextLine), "、") - 1)

If wq = 0 Then

wb = Left(Trim(NextLine),InStr(Trim(NextLine), "、") - 1)

If wb <> "一" And wb <> "二" And

wb <> "三" And wb <> "四" And

wb <> "五" And wb <> "六" And

wb <> "七" And wb <> "八" And

wb <> "九" And wb <> "十" Then

Lines = Lines & NextLine & Chr(13)

End If

Else

Exit Do

End If

Loop

readh = 0

Close #1

Exit Function

LOOP

4.试卷组卷

主要是把试题抽取中的变量值写入WORD文档,从而生成完整的试卷,具体实现为:

Open txtdestination For Output As #1

Print #1, lines2

Close #1

Txtdestination为试卷的保存路径。

(三)结束语

文本型试卷随机组卷系统的研究成功,解决了高校广大教师试卷库组卷的难题,简便易用的操作,使每位教师都能方便利用该系统进行随机组卷,从而能更全面、更客观地含量学生所掌握的知识。

[1] 王雍均.试题库系统智能组卷技术的研究[J].长江大学学报(自然版),2006,34(3):56~58.

[2] 尹柯,甘志华.随机选题算法的设计与实现[J].河南大学学报,2004,34(1):91-93.

[3] 郭继虎,李国宏,张金桐.利用VB6.0开发化学试卷生成器[J].计算机与应用化学,2003,3:374-376.

[4] 王宇颖,侯爽,郭茂祖.题库系统试卷自动生成算法研究[J].哈尔滨工业大学学报,2003.35(3):342-346.

[5] 惠晓实,王凯航.一种基于Web技术的网络数据库系统设计[J].计算机应用与研究,2000,17:84-97.

G647

A

1008-1151(2011)05-0052-02

2011-02-28

计算机应用与软件新技术

翁健高(1971-),男,广西贵港人,广西大学计算机与电子信息学院网络中心实验师,研究方向为Windows操作系统控制。

猜你喜欢
试题库小题文档
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
石油炼制技术课程试题库建设的探讨
职业院校旅游专业试题库建设的实践与反思
——以导游资格笔试科目为例
高校试题库建设新探讨
基于RI码计算的Word复制文档鉴别
项目反应理论在考试系统试题库中的应用
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat