李 輝,杜曉玉,郭拯危
(1.河南大學(xué) 民生學(xué)院,河南 開(kāi)封 475004;2.河南大學(xué) 基礎(chǔ)實(shí)驗(yàn)教學(xué)中心,河南 開(kāi)封 475004;3.河南大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,河南 開(kāi)封 475004)
與傳統(tǒng)的手工出卷方式相比,計(jì)算機(jī)自動(dòng)組卷有著無(wú)可比擬的優(yōu)越性。計(jì)算機(jī)可以以隨機(jī)或手工指定的方式,根據(jù)試卷的各個(gè)參數(shù)(總分、題目類型、題目數(shù)量、每題分?jǐn)?shù)等),從大量的試題庫(kù)中挑選符合要求的試題并自動(dòng)組成試卷,供打印或在線考試使用,不但能夠節(jié)約大量的人力、物力與財(cái)力,還可以大幅度增加考試成績(jī)的客觀性和公正性,避免人為原因造成的疏忽和錯(cuò)誤[1]。
高等院校的各種考試中,很多學(xué)科專業(yè)的試題和答案都包含有公式和圖形,而當(dāng)前已有的諸多試題庫(kù)或組卷系統(tǒng)通常只支持純文本的試題,這在很大程度上限制了理工科試題庫(kù)與組卷系統(tǒng)的建設(shè)和發(fā)展。目前很多高校和科研機(jī)構(gòu)開(kāi)發(fā)了多種網(wǎng)絡(luò)版的組卷系統(tǒng),按照系統(tǒng)架構(gòu)不同可以分為基于B/S架構(gòu)[2-3]和C/S架構(gòu)[4-6]。文中采用嵌入ActiveX控件來(lái)操作Word文檔的方式,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于DataSnap的分布式三層架構(gòu)的理工科試題庫(kù)與組卷系統(tǒng)。系統(tǒng)功能強(qiáng)大,支持的試題類型多樣,并可以按關(guān)鍵字查詢Word試題內(nèi)容。多個(gè)用戶可以在不同的地點(diǎn)同時(shí)錄入試題,組成的試卷直接以Word文檔的形式下載到本地,用戶可以直接打印成試卷(或手工調(diào)整個(gè)別題目)供考試使用,真正實(shí)現(xiàn)一鍵組卷。除此之外,系統(tǒng)還提供在線考試功能。
本系統(tǒng)開(kāi)發(fā)過(guò)程中,使用了以下關(guān)鍵技術(shù):
1)dbExpress技術(shù)
dbExpress是Borland公司推出的一種輕量的數(shù)據(jù)庫(kù)存取引擎,支持目前大多數(shù)的主流數(shù)據(jù)庫(kù),如MS SQL Server、DB2、Oracle、MySql等,且具備跨平臺(tái)能力,可以在 Win32、Linux和.NET平臺(tái)上使用[7]。由于它使用單向、只讀的游標(biāo),且不在內(nèi)存中緩存數(shù)據(jù)集,可以提高數(shù)據(jù)存取速度并使用最少的資源[2],所以速度極快,尤其適合在多層架構(gòu)的系統(tǒng)中使用。
2)DataSnap 技術(shù)
DataSnap是Borland公司 (現(xiàn)已被Embarcadero公司收購(gòu))開(kāi)發(fā)的快速開(kāi)發(fā)套件Rad Studio中的一部分,它被設(shè)計(jì)專門用來(lái)開(kāi)發(fā)分布式數(shù)據(jù)庫(kù)應(yīng)用軟件[8]。從Delphi2009開(kāi)始,DataSnap不再依賴于DCOM架構(gòu)(但同時(shí)也支持DCOM),轉(zhuǎn)而使用TCP/IP協(xié)議、HTTP協(xié)議來(lái)完成客戶端和服務(wù)器的通訊,這使得開(kāi)發(fā)和部署工作變得更加簡(jiǎn)單。
3)SQL Server數(shù)據(jù)庫(kù)技術(shù)
由于本系統(tǒng)保存的數(shù)據(jù)量較大,桌面型的數(shù)據(jù)庫(kù)軟件(如ACCESS等)不能滿足要求。Microsoft SQL Server是微軟公司開(kāi)發(fā)的一種大型關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),由于其功能強(qiáng)大、易于使用,并且與Windows操作系統(tǒng)結(jié)合緊密,早已為許多軟件開(kāi)發(fā)者所使用。雖然SQL Server 2000是微軟于2000年發(fā)布的版本,但由于其對(duì)硬件要求較低,經(jīng)過(guò)仔細(xì)的配置以后安全性也完全可以滿足要求,所以本系統(tǒng)仍以SQL Server 2000作為后臺(tái)數(shù)據(jù)庫(kù)。
4)ActiveX控件技術(shù)
ActiveX控件是一種與編程語(yǔ)言無(wú)關(guān)的可重用軟件組件,這些組件實(shí)現(xiàn)了特定的功能,并提供了編程接口,應(yīng)用程序可以直接拿來(lái)使用[9]。本系統(tǒng)使用了EdrawSoft公司出品的Office Viewer這個(gè)ActiveX控件,來(lái)完成Word試題及答案的錄入和顯示。Office Viewer提供了一套簡(jiǎn)化了的接口來(lái)實(shí)現(xiàn)對(duì)Word的編程,例如加載、編輯和保存Word文檔等。程序發(fā)布給客戶時(shí),只需利用安裝程序在客戶機(jī)上注冊(cè)這個(gè)ActiveX控件即可。
理工科試題及答案中,公式和圖形較多,這個(gè)特點(diǎn)決定了B/S方式不適合于理工科試題庫(kù)的日常使用。同時(shí),為了保證數(shù)據(jù)庫(kù)的安全,不允許客戶端直接連接數(shù)據(jù)庫(kù)。因此,系統(tǒng)采用三層分布式結(jié)構(gòu),如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)Fig.1 System architecture
其中:
1)客戶端負(fù)責(zé)與用戶交互,如顯示用戶界面、接受用戶輸入等;
2)應(yīng)用服務(wù)器提供各個(gè)客戶端的操作請(qǐng)求接口,如添加試題、取得某種題型的試題、查看某張?jiān)嚲淼?,并將處理結(jié)果返回到客戶端。除此之外,還包括維護(hù)數(shù)據(jù)庫(kù)連接池、壓縮數(shù)據(jù)流、記錄日志等;
3)數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行數(shù)據(jù)的存儲(chǔ)、查詢、更新與刪除操作。
系統(tǒng)整體流程如圖2所示。
圖2 系統(tǒng)流程Fig.2 System process flowchart
1)前期準(zhǔn)備:錄入試題前,需要進(jìn)行前期準(zhǔn)備工作,包括:建立用戶及分配用戶權(quán)限、錄入課程章節(jié)和知識(shí)點(diǎn)、可用的題型等。
2)錄入試題:用戶錄入Word試題和答案,并保存到數(shù)據(jù)庫(kù)中,供組卷時(shí)使用。
3)組卷:分為隨機(jī)組卷和人工組卷。系統(tǒng)從試題庫(kù)中取出滿足要求的試題,并排版到一個(gè)Word文檔中,供導(dǎo)出或打印。
4)導(dǎo)出或打印試卷:用戶可以選擇組好的試卷,導(dǎo)出成Word文檔,或直接打印出來(lái)。系統(tǒng)還附帶了在線考試功能和學(xué)生自測(cè)功能。
下面詳述這些流程的具體實(shí)現(xiàn)。
用戶按照使用的功能可以分為3類,學(xué)生,老師,和管理員。用戶管理則包括這3類用戶的數(shù)據(jù)錄入,修改和刪除。權(quán)限管理模塊主要對(duì)包括學(xué)生、教師和管理員的權(quán)限維護(hù)。權(quán)限管理模塊中管理員可以批量設(shè)置學(xué)生、教師或其他管理員的權(quán)限,例如,可以設(shè)置學(xué)生只能進(jìn)行在線考試、查看以前的試卷;設(shè)置A用戶只能錄入試題、B用戶只能組卷等。
圖3 系統(tǒng)功能模塊結(jié)構(gòu)圖Fig.3 Function modules of system
試題管理模塊包括章節(jié)維護(hù)、知識(shí)點(diǎn)維護(hù)、題型維護(hù)和題庫(kù)維護(hù)4類。根據(jù)大學(xué)考試試卷的特點(diǎn),試題包括章節(jié),所屬知識(shí)點(diǎn),題型,難易度幾個(gè)屬性,并且要求試題的答案和試題一一對(duì)應(yīng)。因此錄入試題前,需要首先錄入所用教材的章節(jié)信息、某章節(jié)中的知識(shí)點(diǎn)和可用的題型,這些信息在錄入試題的過(guò)程中會(huì)使用到??捎玫念}型是指,當(dāng)某些題型設(shè)置為可用時(shí)(如選擇題、填空題等),才可以在錄入此種類型的試題。
錄入試題時(shí),會(huì)要求用戶輸入此試題所在章節(jié)、所屬知識(shí)點(diǎn)、題型、難易程度以及參考答案。由于試題和參考答案中可能包括有公式和圖形,所以也以Word文檔的方式錄入也可直接上傳圖片。用戶保存這道試題時(shí),系統(tǒng)將完成以下操作步驟:
1)將試題和答案的Word文檔分別以二進(jìn)制的形式壓縮后保存到數(shù)據(jù)庫(kù);
2)提取出Word文檔中的所有文本作為題目?jī)?nèi)容單獨(dú)保存,以便在用戶界面上以文本方式顯示當(dāng)前試題內(nèi)容,并方便以后按關(guān)鍵字查找;
3)將Word文檔中有內(nèi)容的區(qū)域保存為jpeg格式和圖片,以二進(jìn)制的形式保存到數(shù)據(jù)庫(kù),為在線考試時(shí)使用,并方便以后開(kāi)發(fā)B/S結(jié)構(gòu)的試題(或試卷)查看功能。
試卷管理模塊包括試卷模板維護(hù)、隨機(jī)組卷、人工組卷和已有試卷維護(hù)4個(gè)功能。
很多考試的模板相同,即包含的題型,各個(gè)題型的數(shù)量,總分,每道題的分值都是相同的。為了節(jié)省操作步驟,用戶可以創(chuàng)建多個(gè)試卷模板,在每個(gè)試卷模板中指定試卷中包含哪幾種題型、每個(gè)題型中每道題目的個(gè)數(shù)和分?jǐn)?shù)、試卷難易程度、考試時(shí)間、總分等,這樣在隨機(jī)組卷時(shí),系統(tǒng)就會(huì)按照這些預(yù)先設(shè)定的條件選擇試題,而不需要每次都重復(fù)輸入同樣的條件。
隨機(jī)組卷時(shí),用戶錄入試卷相關(guān)信息(考試還是自測(cè)用卷、試卷總分、考試時(shí)間、難易程度有效期等),選擇某個(gè)試卷模板或手工錄入每種題型的道數(shù)、分?jǐn)?shù),系統(tǒng)即可從試題庫(kù)中的各種題型中隨機(jī)挑選滿足要求的試題組成一份試卷。填空題比較特殊,因?yàn)橐话銇?lái)說(shuō)填空題是按空給分的,一道填空題中可能包含不同個(gè)數(shù)的空格,所以填空題的挑選需要單獨(dú)處理。隨機(jī)組卷之后對(duì)某些不合適的題目可以進(jìn)行手動(dòng)更改。人工組卷時(shí),用戶手工選擇各個(gè)題型中的試題,以及設(shè)定每題分?jǐn)?shù)。
試卷使用前,可以添加、刪除或替換試卷中的試題,或查看試卷中的題型分布情況(各題型中題目道數(shù)、分?jǐn)?shù)),或修改試卷有效期等。試卷一旦使用就不可修改和用來(lái)在線考試,但是可以查看,打印。
系統(tǒng)提供5種試卷預(yù)覽和導(dǎo)出功能,包括:試卷預(yù)覽(無(wú)答案)、試卷預(yù)覽(有答案)、Word試卷預(yù)覽或?qū)С觯o(wú)答案)、Word試卷預(yù)覽或?qū)С?(答案在對(duì)應(yīng)試題下方)、Word試卷預(yù)覽或?qū)С觯ù鸢冈谠囶}最后單獨(dú)顯示)等,以滿足不同的需要。為提高速度和減小服務(wù)器資源占用,預(yù)覽試卷時(shí),系統(tǒng)從數(shù)據(jù)庫(kù)依次讀取JPEG格式的每道試題,動(dòng)態(tài)創(chuàng)建圖形控件顯示到用戶界面上;而當(dāng)用戶選擇Word試卷預(yù)覽或?qū)С鲈嚲頃r(shí),則采用OLE的方式新建一個(gè)Word文檔,并調(diào)用Word中的VBA函數(shù),插入試卷標(biāo)題等必要信息,將每道試題寫(xiě)入這個(gè)Word文檔中,然后將Word文檔顯示到用戶界面。導(dǎo)出為Word方檔后的試卷與普通Word文檔一樣,可以手工任意編輯。
考試管理包括在線考試、在線自測(cè)和查看以前的試卷。
由于理工科試題的特殊性,在線考試(或在線自測(cè))只能選擇有限的幾種題型,如單選題、多選題、判斷題,或者加上少量的填空題,而簡(jiǎn)答題、計(jì)算題等顯然不適合在線考試。學(xué)生登錄系統(tǒng)后,系統(tǒng)會(huì)顯示在有效期內(nèi)的試卷,學(xué)生選擇開(kāi)始考試后,系統(tǒng)從數(shù)據(jù)庫(kù)中取出屬于這個(gè)試卷的JPEG格式的試題,排版后形成試卷,學(xué)生即可作答。單擊“交卷”按鈕,或考試時(shí)間已到,則終止考試,學(xué)生可在“查看以前的試卷”菜單中立即看到自己的考試情況(答對(duì)的試題道數(shù)、答錯(cuò)的試題道數(shù)、成績(jī)、正確率等),并可看到做錯(cuò)的試題的正確答案。學(xué)生也可以隨時(shí)選擇某個(gè)自測(cè)用卷作答,答完后會(huì)立即看到答對(duì)的試題道數(shù)、答錯(cuò)的試題道數(shù)、得分、正確率等,并可看到做錯(cuò)的試題的正確答案。自測(cè)用卷可反復(fù)使用多次。
文中針對(duì)理工科試題的特點(diǎn),設(shè)計(jì)實(shí)現(xiàn)了一個(gè)分布式三層架構(gòu)的試題庫(kù)與組卷系統(tǒng)。系統(tǒng)使用Delphi2010開(kāi)發(fā),后臺(tái)數(shù)據(jù)庫(kù)為SQL Server2000,運(yùn)行速度快,性能穩(wěn)定。與其它試題庫(kù)管理軟件相比,本系統(tǒng)支持不同類型試題的答案選項(xiàng)個(gè)數(shù)可自定義,填空題可按空格給分,這更符合實(shí)際情況。
可擴(kuò)展性方面,由于應(yīng)用服務(wù)器的存在,當(dāng)用戶數(shù)量增加,或系統(tǒng)壓力過(guò)大(如在線考試人數(shù)增加)時(shí),可以通過(guò)增加應(yīng)用服務(wù)器的方式來(lái)實(shí)現(xiàn)負(fù)載均衡。同時(shí),由于使用的dbExpress技術(shù)支持多種主流數(shù)據(jù)庫(kù),只需稍微修改應(yīng)用服務(wù)器上的代碼就可以切換到其它數(shù)據(jù)庫(kù),而客戶端不需做任何改變。另外,由于DataSnap技術(shù)支持HTTP協(xié)議和REST(Representational State Transfer),可以輕易增加一些附加功能(如通過(guò)B/S方式修改用戶權(quán)限等)。系統(tǒng)已在某高?;瘜W(xué)化工學(xué)院穩(wěn)定運(yùn)行一年時(shí)間,可以滿足用戶需求,使用效果明顯。
[1]董欣,于澤源,趙杰.試題庫(kù)管理系統(tǒng)平臺(tái)的研究與建設(shè)[J].東北農(nóng)業(yè)大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2009,7(4):20-22.DONG Xin,YU Ze-yuan,ZHAO Jie.Research and construction on the management system of an examining question database[J].Journal of Northeast Agricultural University:Social Science Edition,2009,7(4):20-22.
[2]杜燁,呂太之.基于Ajax技術(shù)的自動(dòng)組卷系統(tǒng)性能分析[J].電腦知識(shí)與技術(shù),2010,6(9):2053-2054.DU Ye,LV Tai-zhi.Performance analysis in automatic group volume system with ajax[J].Computer Knowledge and Technology,2010,6(9):2053-2054.
[3]姚啟迪,于重重,劉杰.基于XML的調(diào)查表自動(dòng)組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(10):2538-2540.YAO Qi-di,YU Chong-chong,LIU Jie.Design and implementation of automatically generating questionnaire based on XML[J].Computer Engineering and Design,2009,30 (10):2538-2540.
[4]王梅,滕曉婉,張明靜.GridView控件在自動(dòng)組卷系統(tǒng)中的應(yīng)用[J].現(xiàn)代計(jì)算機(jī),2009,9(315):121-123.WANG Mei,TENG Xiao-wan,ZHANG Ming-jing.Application of GridView control in auto generating examination paper system[J].Modern Computer,2009,9 (315):121-123.
[5]周莉莉,姜楓.含富文本格式的智能組卷系統(tǒng)的研究與實(shí)現(xiàn)[J].軟件,2011,32(6):17-19.ZHOU Li-li,JIANG Feng.Research and implementation of intelligent test paper composition system with RTF[J].Software,2011,32(6):17-19.
[6]江捷,張翀.基于OLE技術(shù)的雙語(yǔ)智能組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代教育技術(shù),2010,20(13):119-122.JIANG Jie,ZHANG Chong.Design and implement of intelligent test paper composition system based on OLE[J].Modern Educational Technology,2010,20(13):119-122.
[7]李維.Delphi 2006高效數(shù)據(jù)庫(kù)程序設(shè)計(jì)——db Express篇[M].北京:電子工業(yè)出版社,2006.
[8]維基百科.DataSnap[EB/OL].[2010-11-29].http://en.wiki pedia.org/wiki/DataSnap.
[9]維基百科.ActiveX[EB/OL].[2011-01-27].http://en.wiki pedia.org/wiki/Activex.