翁健高 李 文
(廣西大學計算機與電子信息學院,廣西 南寧 530004)
文本型試卷隨機組卷系統(tǒng)的設計與實現(xiàn)
翁健高 李 文
(廣西大學計算機與電子信息學院,廣西 南寧 530004)
隨著高校教學改革的深化,目前的高校的各門課程基本上都采用試卷庫的方式進行組卷考試,這樣能夠更全面地衡量學生對每門功課的掌握程度,也更體現(xiàn)了教考分離的核心本質。目前考試試卷的組卷方式普遍采用任課教師預先組好每一份試題,考試時再隨機抽取任一份試卷的方式或采用市面上的數(shù)據庫隨機組卷系統(tǒng)的方式進行組卷,而文本型試卷隨機組卷系統(tǒng)利用教師提交的WORD文檔組成的試題庫直接轉換為文本文檔,然后使用此文檔類型的試題庫直接隨機生成考試試卷,使試題庫隨機組卷實現(xiàn)簡單化、易用性和便利性。
試題庫;文本文檔;隨機組卷
隨著高校教學改革的深化,目前的高校的各門課程基本上都采用試卷庫的方式進行組卷考試,這樣對學生會更公平、更能全面衡量學生所掌握的知識。
目前試卷的組卷方式普遍采用任課教師預先組好每一份試卷,考試時再隨機抽取任一份試卷的方式或采用市面上的數(shù)據庫隨機組卷系統(tǒng)的方式進行組卷,前者隨機性不高,而數(shù)據庫類型的隨機組卷系統(tǒng)在建立試卷庫時錄入量大,給建立試卷庫帶來了很大的難度。
“文本型試卷庫隨機組卷系統(tǒng)” 能夠避免以上兩種組卷方式的缺點,只要將已上交的WORD文檔類型的試卷庫轉換為文本文檔,就能實現(xiàn)試卷庫的隨機組卷工作,不需要再做設置,也不需要錄入,從而大大地減輕了教務人員或教師的試題錄入工作量。該系統(tǒng)的缺點是只適用于能將WORD文檔并順利轉換為文本文檔的試卷庫,對于有數(shù)學公式的試卷庫不適用。
目前,高校任課教師上交的試卷庫一般都為WORD文檔,如果需要使用本系統(tǒng)來隨成生成考試試卷,必須按照下列規(guī)則來構建試卷庫,系統(tǒng)才能順利穩(wěn)定地運行。
1.試卷中每大類型題目的標號必須為“一、二、 三、四、… ”(如“一、填空題,二、選擇題.....”)設置,否則不能正確工作。試卷庫最多能設置十大類型的題目,如果超過十個類型的題目量,則十大類型題以后的題目系統(tǒng)不作組卷操作;如果試卷庫的題目類型確實超過十大類,則可將十大類型后面的題目放在另一個WORD文檔中,組卷時分別組卷,然后將組出的兩份試卷合并即可。
2.每大類型題目的每小題的標號必須如“1、2、……999.”設置,每大類型題目最多能設置999小題,否則不能正確工作。
3.如果小題內還有分標題,則分標題的標號可以設置為①、②、③、④…或Ⅰ、Ⅱ、Ⅲ、Ⅳ…或⑴、⑵、⑶、⑷…或 A、B、C、D…或 1)、2)、3)、4)…。
4.每小題的排列可以換行,也可以包含有空行,系統(tǒng)都能正確分辨。
考慮到系統(tǒng)的通用性,系統(tǒng)應包含試卷庫試題類型分析、試題抽取和試卷組卷三部分。界面設計應包括輸入將要生成試卷的試卷名稱,試卷庫路徑選擇、試卷文件輸出路徑選擇、試題抽取和試卷組卷五個部分。
1.抽題隨機性的實現(xiàn)
隨機性是該系統(tǒng)的靈魂,只有實現(xiàn)對每大題的所有小題抽取的隨機均等抽取的機會,才能真正體現(xiàn)系統(tǒng)的優(yōu)越性。目前在編程過程中產生隨機數(shù),最常用的方法是使用隨機函數(shù),但該函數(shù)是根據數(shù)學迭代的方式產生,雖然能隨機產生各不相同的隨機數(shù),但分布仍然太集中,所以本系統(tǒng)采用由系統(tǒng)時鐘的方法產生隨機數(shù),這樣每大題內所有小題都會最大限度地獲得均等隨機抽取的機會,保證了系統(tǒng)的隨機性。實現(xiàn)核心代碼為:
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循環(huán)的功能是過濾掉已經選取過的題目被重新選擇的情況。
2.試卷庫題型及題量分析
試卷庫中包含了題目類型和每類型的題目數(shù)量,組卷的目的就是能從每個類型的題目中抽取一定數(shù)量的題目。為此,系統(tǒng)必須先分析試卷庫,確定試卷庫中所包含的題目類型及每類型題的小題數(shù)量和每類型題目在文檔中的位置,為產生隨機題目和試題抽取提供依據。實現(xiàn)核心代碼為:
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.試題抽取
試卷庫的構成比較復雜。首先,試卷庫主要由題目類型和各小題組成,小題中又包含有小標題,每小題有可能包含多行文字,也可能包含有空行。如何區(qū)分每小題的讀取完整并過濾掉有可能出現(xiàn)的空行,是本系統(tǒng)的難點和關鍵點。為此,完整讀取選取的每小題并過濾掉空行的核心代碼為:
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文檔,從而生成完整的試卷,具體實現(xiàn)為:
Open txtdestination For Output As #1
Print #1, lines2
Close #1
Txtdestination為試卷的保存路徑。
文本型試卷隨機組卷系統(tǒng)的研究成功,解決了高校廣大教師試卷庫組卷的難題,簡便易用的操作,使每位教師都能方便利用該系統(tǒng)進行隨機組卷,從而能更全面、更客觀地含量學生所掌握的知識。
[1] 王雍均.試題庫系統(tǒng)智能組卷技術的研究[J].長江大學學報(自然版),2006,34(3):56~58.
[2] 尹柯,甘志華.隨機選題算法的設計與實現(xiàn)[J].河南大學學報,2004,34(1):91-93.
[3] 郭繼虎,李國宏,張金桐.利用VB6.0開發(fā)化學試卷生成器[J].計算機與應用化學,2003,3:374-376.
[4] 王宇穎,侯爽,郭茂祖.題庫系統(tǒng)試卷自動生成算法研究[J].哈爾濱工業(yè)大學學報,2003.35(3):342-346.
[5] 惠曉實,王凱航.一種基于Web技術的網絡數(shù)據庫系統(tǒng)設計[J].計算機應用與研究,2000,17:84-97.
G647
A
1008-1151(2011)05-0052-02
2011-02-28
計算機應用與軟件新技術
翁健高(1971-),男,廣西貴港人,廣西大學計算機與電子信息學院網絡中心實驗師,研究方向為Windows操作系統(tǒng)控制。