陳海波 陳 虎
(1.華南理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,廣東 廣州 510640;2.華南理工大學(xué)軟件學(xué)院,廣東 廣州 510640)
利用計(jì)算機(jī)來生成試卷,按照考試要求快速、隨機(jī)地選出試題,實(shí)現(xiàn)學(xué)生的自我測(cè)試,是現(xiàn)代教育技術(shù)的具體實(shí)現(xiàn),充分發(fā)揮計(jì)算機(jī)輔助教學(xué)的作用,具有非常重要的意義。
該系統(tǒng)面向的是教師和學(xué)生,主要用于教師組卷和學(xué)生自測(cè)。教師和學(xué)生進(jìn)入系統(tǒng)選定科目后,可隨機(jī)或者按照知識(shí)點(diǎn)的難度系數(shù),輸入題目數(shù)量隨機(jī)生成試卷。
(1)科目選擇:進(jìn)入系統(tǒng)后,選擇相應(yīng)科目。
(2)題型設(shè)置:通過對(duì)歷年的考核進(jìn)行歸納分析,將題目類型設(shè)定為填空題、判斷題、單項(xiàng)選擇題、多項(xiàng)選擇題、簡(jiǎn)答題、論述題、計(jì)算題、綜合分析題。
(3)考核時(shí)間設(shè)定:輸入考核時(shí)間,以分鐘計(jì)算,考核時(shí)間到后進(jìn)行提示并鎖定答題頁(yè)面,學(xué)生無法繼續(xù)答題。
(4)難度選擇:分為1-5種難度,可不選擇難度。不選擇難度時(shí)隨機(jī)選擇試題出卷,選擇難度時(shí)按照選定難度的試題隨機(jī)出卷。
(5)題型數(shù)量設(shè)置:顯示題庫(kù)中各題型的數(shù)量,按需要輸入題目數(shù)量。
(6)生成試卷:按照出題頁(yè)面選擇科目、輸入考試時(shí)間和題目數(shù)量后生成試卷,若出題數(shù)量超過題庫(kù)總數(shù)時(shí),系統(tǒng)會(huì)提示輸入適當(dāng)?shù)念}目數(shù)量。
(7)答題:生成試卷后,學(xué)生可直接在答題頁(yè)面進(jìn)行答題。
(8)計(jì)算正確率:計(jì)算客觀題的正確率,包括填空題、判斷題、單項(xiàng)選擇題和多項(xiàng)選擇題。
(9)顯示答案:顯示所生成試卷的答案。
(10)生成Word格式的試卷:實(shí)現(xiàn)試卷以Word格式輸出。
試題庫(kù)由教師用Excel軟件進(jìn)行編寫,各科目的試題參數(shù)包括科目名稱、序號(hào)、題型、題目、數(shù)量、答案、分值、難易度、分值權(quán)重、知識(shí)要點(diǎn)等,編寫完成后保存為.CSV文件(逗號(hào)分隔值文件)。各科目題庫(kù)保存在lib文件夾中,系統(tǒng)運(yùn)行時(shí)從該文件夾中讀取。
該系統(tǒng)利用Visual C++編寫程序。Visual C++開發(fā)的應(yīng)用程序具備與W indows操作系統(tǒng)緊密結(jié)合、可執(zhí)行代碼效率高等特點(diǎn)[1]。Visual C++6.0不僅是一個(gè)C++,而且是一個(gè)基于W indows的可視化。
(1)功能界面實(shí)現(xiàn)
界面是用戶與應(yīng)用程序交互的場(chǎng)所,界面是否良好,直接影響到該系統(tǒng)的使用。該系統(tǒng)利用VisualC++設(shè)計(jì)主控界面、題庫(kù)讀入模塊、試卷及試題表示模塊和試題顯示模塊,設(shè)置各控件的名稱以及相關(guān)屬性,滿足界面友好、操作簡(jiǎn)單的要求。
(2)試題讀入模塊的實(shí)現(xiàn)
該模塊實(shí)現(xiàn)系統(tǒng)從題庫(kù)中讀入試題,即從以Excel文檔形式保存的題庫(kù)中隨機(jī)讀取試題。該模塊有兩個(gè)類,分別為CLibrarySet,負(fù)責(zé)遍歷lib目錄下的文件,找到文件,將文件名交由類CLibrary加載試題;CLibrary,負(fù)責(zé)從一個(gè)CSV文件(逗號(hào)分隔值文件)讀入一個(gè)科目的所有題型的試題,以及生成試卷。
(3)試卷及試題表示模塊的實(shí)現(xiàn)
該模塊實(shí)現(xiàn)試卷及試題表示。該模塊有兩個(gè)類,分別為CPaper,表示試卷;CTestQuestion,表示題目。
(4)試題顯示模塊的實(shí)現(xiàn)
該模塊實(shí)現(xiàn)試卷生成時(shí)各種題型字體大小、選項(xiàng)以及輸入框的顯示。該模塊有七個(gè)類,分別為CQuestionDisplay,為各種題目的顯示提供一個(gè)一致的接口;CComplexDisplay,負(fù)責(zé)顯示綜合分析題、計(jì)算題、論述題;CSimpleDisplay,負(fù)責(zé)顯示簡(jiǎn)答題;CSelectDisplay,負(fù)責(zé)顯示選擇題;CJudgementDisplay,負(fù)責(zé)顯示判斷題;CFillDisplay,負(fù)責(zé)顯示填空題;CPaper DisplayDialog,是顯示試卷的窗口。通過CQuestionDisplay類提供的接口,分別調(diào)用CComplexDisplay類,CSimpleDisplay類,CSelectDisplay類,CJudgementDisplay類,CFillDisplay類在試卷顯示窗口上顯示本系統(tǒng)生成的各種類型的題目。
(5)隨機(jī)選題的實(shí)現(xiàn)
該系統(tǒng)實(shí)現(xiàn)選題有兩種方式:不按難度隨機(jī)選題和按照指定難度隨機(jī)選題。
從一個(gè)CSV文件中加載題庫(kù),系統(tǒng)根據(jù)用戶選擇的題目類型type,難度level(level可以不指定)生成指定數(shù)量num的題目。系統(tǒng)隨機(jī)抽題功能的實(shí)現(xiàn),首先從題庫(kù)中讀取類型為type,難度為level的題目總數(shù)(total),然后用randomize函數(shù)產(chǎn)生num(num<total)個(gè)隨機(jī)數(shù),每個(gè)隨機(jī)數(shù)是所選考試科目的題庫(kù)總量范圍中的一個(gè)數(shù)。如果選擇的題到達(dá)試題庫(kù)的末尾,系統(tǒng)會(huì)自動(dòng)返回試題庫(kù)的開頭。讀取題目序號(hào)檢查是否重復(fù),決定采用或者重新生成題目,防止出現(xiàn)相同的試題。
(6)實(shí)現(xiàn)Word格式的輸出
利用VisualC++實(shí)現(xiàn)所生成試卷以Word文檔的形式輸出,在項(xiàng)目中添加Word類型庫(kù)(即OFFICE中的MSWORD. OLB文件),將它們變成Visual C++的類文件,在程序中直接調(diào)用類實(shí)現(xiàn)對(duì)Word的操縱,生成msword.h、msword.cpp文件。生成Word文檔時(shí)獲取題目的字符串形式。
(7)時(shí)間控制模塊的實(shí)現(xiàn)
系統(tǒng)時(shí)間控制實(shí)現(xiàn)當(dāng)學(xué)生進(jìn)入系統(tǒng)后,自行設(shè)定測(cè)試時(shí)間。確定開始測(cè)試后,系統(tǒng)開始計(jì)時(shí),在系統(tǒng)上顯示倒記時(shí),如果測(cè)試時(shí)間到了,系統(tǒng)會(huì)自動(dòng)提示并鎖定答題,該模塊用CsetTimer類實(shí)現(xiàn),使用SetTimer計(jì)時(shí)器,設(shè)置每秒鐘自動(dòng)運(yùn)行一次,測(cè)試時(shí)間結(jié)束時(shí),觸發(fā)lockPaper函數(shù)鎖定試卷。
利用計(jì)算機(jī)技術(shù)實(shí)現(xiàn)了試卷生成和自測(cè)系統(tǒng),提高了出題效率,學(xué)生通過自測(cè)可以加深對(duì)所學(xué)課程知識(shí)點(diǎn)的理解,充分認(rèn)識(shí)自己對(duì)所學(xué)課程的掌握程度。
[1]詹紅霞,侯思穎,陶永紅.Visual C++程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2007.
[2]鄭凱東.計(jì)算機(jī)基礎(chǔ)課程試題庫(kù)及成卷系統(tǒng)設(shè)計(jì)[J].電子科技,2010,23(5):117-118.