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