摘 要: 本文介紹的隨機出卷系統(tǒng)是基于辦公應(yīng)用軟件Excel 2003和Word 2003設(shè)計的,主要是幫助不同學科的教師根據(jù)自身課程的特點,能自己輕松地制作出符合需要的隨機出卷系統(tǒng)。
關(guān)鍵詞: 隨機出卷系統(tǒng) 試題庫 設(shè)計 操作流程
一、引言
現(xiàn)代科學技術(shù)的迅猛發(fā)展,計算機應(yīng)用的普及,為高校的試卷管理工作提供了一個廣泛而且便利的新途徑。很多從事軟件開發(fā)的人員在試卷自動生成方面進行了研究,目前已有的出卷系統(tǒng)功能已經(jīng)相當完善,這不但減輕了教師的工作負擔,而且使教學更加科學化,有利于教育事業(yè)的發(fā)展。出卷系統(tǒng)的研究盡管已相當成熟,但這類軟件的應(yīng)用規(guī)模目前還比較有限,很多學校還是繼續(xù)沿用手工出卷方式。產(chǎn)生這一現(xiàn)象的原因主要在于:購買這樣的軟件費用比較大,且系統(tǒng)并不是很適合使用者使用,而使用者想自己開發(fā)又有一定的技術(shù)難題。
基于上述情況,筆者在此介紹一種能輕松打造隨機出卷系統(tǒng)的方法,即使用Microsoft Office 2003中的Word 2003和Excel 2003開發(fā)一個適合自身課程需要的隨機出卷系統(tǒng)。與其他技術(shù)設(shè)計的出卷系統(tǒng)相比,使用該方法設(shè)計的系統(tǒng)生成試卷也是非常方便的,只需短短幾分鐘就可以生成一份試卷和與試卷相配套的答案,試卷和答案都保存為*.doc格式,且生成試卷的排版格式基本上無需再使用手工去調(diào)整。最重要的是此種方法易學,只要接觸過Excel、稍懂一點編程概念的人都能輕松地設(shè)計出一個按自身課程需要出題的出卷系統(tǒng)。
二、系統(tǒng)設(shè)計思想與設(shè)計步驟
1.系統(tǒng)設(shè)計思想
首先使用Excel實現(xiàn)隨機抽題,然后將隨機抽取的試題自動顯示在Word定制的試卷格式模板中。
2.系統(tǒng)主要設(shè)計步驟
(1)根據(jù)課程考核的需要,建立合適的題庫。
如,課程的考核以單選題、填空題和問答題題型進行,那就需為這三種題型分別建立題庫。本文就在Excel中建立3個工作表,用于存放各題型的試題,作為系統(tǒng)的題庫。
(2)建立系統(tǒng)主界面,實現(xiàn)按要求隨機抽題功能。
筆者建立了“出卷”工作表來實現(xiàn)隨機抽題功能。在該界面輸入試卷的相關(guān)信息,如各題型的題數(shù)(例如,需要抽取10道選擇題,則在B2單元格輸入10),其中I列中的題庫信息系統(tǒng)自動獲取。相關(guān)信息填寫完畢后,單擊[抽取試卷]按鈕,系統(tǒng)會將隨機抽取出的試題將顯示在“出卷”工作表特定的位置(本文顯示在以A9單元格為起始位置的單元格區(qū)域中)。
圖1 系統(tǒng)主界面
(3)保存抽取的試題。
顯示在“出卷”工作表中的試題還需保存在一定的工作表中,以便Word調(diào)用。筆者將隨機抽取出的試題保存在“記錄”工作表中。
(4)生成可打印的*.doc格式的試卷。
使用Word中的“郵件合并”功能將Excel中的試卷信息引用到Word定制的試卷格式模板中(如圖2),然后單擊“郵件合并”工具欄的“查看合并數(shù)據(jù)”按鈕,Excel中隨機抽取的試題就會顯示在該模板的相應(yīng)域的位置,最終生成可打印的*.doc格式試卷(如圖3)。
圖2 試卷格式模板
圖3 生成的*.doc格式試卷
(5)試題庫管理。
對于題庫的管理,特別是向題庫中添加新題,可以直接在Excel工作表中一題一題地添加。但考慮到很多教師手頭上都有一些現(xiàn)成的題目,大多是以*.doc格式保存在電腦中,因此筆者設(shè)計了批量導入功能,可以將多個*.doc格式文檔中的題目一次性導入到Excel中。
三、操作流程
1.隨機抽題
使用randomize和rand函數(shù)對題庫中的題目隨機排序,把前面n題復(fù)制出來就可以實現(xiàn)隨機抽題。關(guān)鍵代碼如下:
For p = tkMaxnum To 2 Step -1
Randomize
q = Int(Rnd * p + 1)
Rows(q).Cut
Rows(p + 1).Select
Selection.Insert Shift:=xlDown
Next
其主要思想是:題庫中共有n道題目,將第i題剪切下來,在該題目所在工作表中選中j行(j<=n+1),在j行插入一空白行,將剪切下來的第i題粘貼到該空白行。循環(huán)上面的操作,每次出卷時,題庫中的題目在表中的次序都會改變。隨機排序后,復(fù)制前m題到“出卷”工作表中,從而實現(xiàn)隨機抽題。
除此方法外,我們也可以在題目后增加一列,并用rand()函數(shù)填寫隨機數(shù),以此列為關(guān)鍵字對題庫中的題目排序,此種方法需借助手工操作給每一題生成一個隨機數(shù),或者需借助一定的代碼判斷后進行隨機數(shù)的填充。該方法雖可達到目的,但較之前面一種方法費時費力。
2.題庫維護
在批量導入新題時,選擇題因為一般都有四個選項,在導入的過程需將題目和四個選項放入同一個單元格,所以需要進行特殊的處理。筆者借助手工和程序代碼來完成。
其主要思想是:首先將Word格式的試題庫中的空行刪除,并且將題目和四個選項各成一段,即每題處理成5個段落。然后將處理后的*.doc格式的文檔另存為web類型,之后再用Excel打開該web類型的文件,保存成*.xls格式的文件。此時Excel中每題的題目和4個選項各占一個單元格,最后在系統(tǒng)的“試題庫管理”工作表中創(chuàng)建宏,在宏中使用GetOpenFilename方法打開要導入的Execl格式的文件,復(fù)制其中的題目到工作表中進行處理。使用如下代碼將題目和四個選項存放到一個單元格中。
For j = 1 To n
Range(\"h\" j).Value = Range(\"a\" (1 + (j - 1) * 5)).Value Chr(10) Range(\"a\" (2 + (j - 1) * 5)).Value Chr(10) Range(\"a\" (3 + (j - 1) * 5)).Value Chr(10) Range(\"a\" (4 + (j - 1) * 5)).Value Chr(10) Range(\"a\" (5 + (j - 1) * 5)).Value
Next
其中,n為處理的次數(shù),即最后要導入的題目的題數(shù)(=導入文件中記錄的行數(shù)/5)。處理完之后將數(shù)據(jù)轉(zhuǎn)移到相應(yīng)題型的題庫中。
3.題號的生成
因為是隨機抽題,所以題目在導入到題庫時是不能夠帶題號,題號只能在隨機抽題結(jié)束后再添加上去。
其主要思想是:在將抽取到的題目保存到“記錄”工作表的過程中添加題號。
For i1 = 1 To x
m1 = Sheets(\"出卷\").Range(\"b\" (9 + i1 - 1)).Value
Sheets(\"記錄\").Select
Cells(2, 6 + i1 - 1).Value = Str(i1) \".\" m1
Next
其中,x為抽取的題數(shù)。在這筆者沒有使用range對象來指定單元格,而是使用cell屬性來指定,原因是cell屬性可以動態(tài)的指定單元格的列和行。
四、結(jié)語
傳統(tǒng)考試存在諸多弊病:試卷往往知識點分布太集中、難易程度不當、分值分布不均等,這樣既增加了教師的負擔,又不能很好地考查學生學習的真實水平。而隨機出卷系統(tǒng)使教師從費時費力的出卷工作中解脫出來,同時還能夠提高考試命題的科學性,實現(xiàn)考試過程的高效性,對于教學質(zhì)量的控制起到了較好的作用。筆者的設(shè)計思想不是設(shè)計高水平的出卷系統(tǒng),而是幫助教師能自己輕松地開發(fā)出一個符合自身課程特點的隨機出卷系統(tǒng)。使用筆者的設(shè)計思想開發(fā)的“隨機出卷系統(tǒng)”出卷的質(zhì)量總體上應(yīng)該不錯,但最大的不足在于:題庫中的題目在每一次隨機抽題的過程中,在表中的位置都會重新排一次,當題庫中題目的數(shù)量較大時會對試卷的生成速度產(chǎn)生一定的影響。因此希望能在不改變題目的實際位置的基礎(chǔ)上實現(xiàn)隨機抽題目,從而提高出卷速度。
參考文獻:
[1]陳桂鑫.Excel+Word打造隨機出卷系統(tǒng)[N].中國電腦教育報,2004.