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