馮丁武
(湖南文理學(xué)院 計算機科學(xué)與技術(shù)學(xué)院, 湖南 常德, 415000 )
考試系統(tǒng)中Word題設(shè)計難點與解決方案
馮丁武
(湖南文理學(xué)院 計算機科學(xué)與技術(shù)學(xué)院, 湖南 常德, 415000 )
分析Office軟件考試中的一些設(shè)計難點及問題, 在整體上提出解決方法. 重點討論了Word段落定位, 利用VBA對Word等對象的控制及容錯處理等問題.
VB6.0; 操作題; 沖突檢測; 自動評分
在不同人群的各類計算機應(yīng)用基礎(chǔ)上機考試中, 基本上都有 Word數(shù)據(jù)錄入與排版的考試內(nèi)容. 這些考試系統(tǒng)由于考試環(huán)境和采用的軟件不同, 對Word的考試方式及考完后的判卷方式也不盡相同[1]. 筆者在最新版的考試系統(tǒng)中實現(xiàn)了Word文檔輔助出題及自動判卷的功能.
1.1 自動出題的設(shè)計難點
1.1.1 對象定位
對象定位問題在Word中比較突出. 以段落對象為例, 在Word的VBA中對段落的定位方法與一般人們在實際操作中對段落的定位方法是有很大差別的, 解決這個問題是對考生試卷評判正確性的保證.
1.1.2 同大類的兩個知識點存在互斥的關(guān)系
字體格式設(shè)置中的刪除線和雙刪除線、上標(biāo)和下標(biāo)就屬于這種情況. 由于它們在同一個大類即出現(xiàn)在“向?qū)А钡耐粋€窗體中, 比較容易處理, 只要在程序設(shè)計中, 使它們的復(fù)選框不能同時被選擇就可以了.
1.1.3 不同大類的知識點有著相互關(guān)聯(lián)的關(guān)系
為觀察關(guān)聯(lián)導(dǎo)致的結(jié)果, 需要在出題時對題目文件進(jìn)行預(yù)操作. 例如“查找與替換”知識點與“字體格式設(shè)置”知識點之間就存在著關(guān)聯(lián)關(guān)系: “查找與替換”知識點要求考生將指定內(nèi)容的文字或指定格式的文字替換為其他內(nèi)容或格式的文字, 為了保證題目的合理性和有效性, 該小題完成時, “向?qū)А睍︻}目文件的當(dāng)前狀態(tài)進(jìn)行檢查, 如果題目文件中沒有符合查找要求的文字, “向?qū)А睍崾境鲱}人另選參數(shù). 但也可能出現(xiàn)這種情況: 出題人在“字體”類知識點中選擇了“將第一段的字體顏色設(shè)置為紅色”, 隨后又在“查找和替換”知識點中選擇“將文中所有藍(lán)色的字體加上波浪線”[2]. 而題目文件只有第一段有若干處藍(lán)色字體, 符合出題要求, 但考生實際操作時已完成了前面字體顏色格式設(shè)置的要求, 文檔的狀態(tài)發(fā)生了變化, 后面的題目要求的藍(lán)色已經(jīng)沒有, 無法完成該題. 如調(diào)換這兩個知識點的出題順序, 則可能導(dǎo)致兩種結(jié)果: 一是考生不同的操作順序會導(dǎo)致不同的操作結(jié)果; 二是自動評卷程序無法對“查找與替換”知識點做出正確的判別[3].
1.2 Word模塊設(shè)計相關(guān)問題的解決方案
針對Word中知識點互斥與關(guān)聯(lián)等問題, 在設(shè)計出題“向?qū)А睍r采用如下方法:
a. 無論出題人何時選擇了“查找與替換”知識點, 在最后生成題目要求和標(biāo)準(zhǔn)答案時, 都將這道小題放到整個大題的最后, 以避免因操作順序不同而導(dǎo)致的歧義.
b. 若出題人先選擇“字體設(shè)置”知識點, 后選擇“查找和替換”知識點, 則在進(jìn)行字體設(shè)置時, 系統(tǒng)對題目文件進(jìn)行預(yù)操作, 完成“查找和替換”要求時對預(yù)操作后的題目文件進(jìn)行檢測. 為保留題目文件的原貌, 也采用“另存為”方法, 將題目文件另存為一個新的文檔, 所有的預(yù)操作都針對這個新文檔對象進(jìn)行.
c. 如果出題人先選擇“查找和替換”知識點, 后選擇“字體設(shè)置”知識點, 則在進(jìn)行字體設(shè)置時, 系統(tǒng)對題目文件進(jìn)行預(yù)操作, 并對預(yù)操作后的題目文件重新進(jìn)行“查找和替換”知識點的狀態(tài)檢測, 如果此時題目文件的環(huán)境己不符合要求, 提示用戶重新選擇.
1.3 Word模塊自動出題向?qū)У脑O(shè)計與實現(xiàn)
為保證題目的有效性, 用戶每選擇一個知識點, 系統(tǒng)就檢查題目文件中該知識點的狀態(tài)或參數(shù), 得到當(dāng)前參數(shù)值后, 才能使相應(yīng)的參數(shù)列表組合框中不出現(xiàn)檢測到的值, 從而避免出題人因疏忽而造成的錯誤的參數(shù)選擇.
為保證題目的合法性, 在打開題目文件時, 就對題目文件中的段落總數(shù)進(jìn)行統(tǒng)計, 用戶再選擇段落位置時, 必須在題目文件所有的段落范圍內(nèi), 否則“向?qū)А睍崾居脩舭褏?shù)改動到合理范圍內(nèi), 系統(tǒng)才允許用戶進(jìn)行其它操作.
計算機考試系統(tǒng)只有能自動評分才有可能用到考試的實踐中去, 為此設(shè)計了Word自動評卷模塊.
2.1 后臺啟動和控制Word
要想在VB中引用VBA評判考生試卷, 必須首先啟動VBA主應(yīng)用程序Word. 希望能用程序來啟動控制Word, 甚至希望Word只在后臺運行, 以增強系統(tǒng)運行的效率和封裝性, 同時也可以避免用戶的誤操作,在評卷系統(tǒng)仍在運行時就關(guān)閉了VBA的主應(yīng)用程序.
2.2 Word模塊的容錯處理
由于Word的對象集合多, 對象的層次也多, 系統(tǒng)既要保證出題向?qū)c自動評卷系統(tǒng)的運行效率, 也要能夠考核考生實際的操作水平. 為達(dá)到二者的有機統(tǒng)一, 在閱卷時要進(jìn)行一定的容錯處理. 例如考生可能在操作中為文檔增加回車換行符, 會使文檔的第2段變成了第3段, 該操作從道理上應(yīng)該不影響考生的考試結(jié)果, 若是人工評卷是會給分的. 但實際上, 在利用 VBA對象進(jìn)行自動閱卷時, 這種操作會影響段落的定位, 因為Word的對象庫中, 一個回車換行符即為一段, 如果段落定位不對, 無法正確評判考生試卷.
為了提高程序的容錯能力, 保證試卷評判工作不間斷的進(jìn)行, 系統(tǒng)設(shè)計了許多對錯誤情況的捕捉和處理功能, 打開考生答案文件后就要進(jìn)行容錯性處理, 例如去除考生答案文件中的空段 (只有空格和回車換行符的段落).
2.3 Word模塊的自動評卷難點及解決方案
Word的對象庫認(rèn)為一個回車換行符即為一個段落, 在進(jìn)行段落統(tǒng)計和定位時, 將表格的單元格中的段落、圖形中的段落等等全部納入計算范圍. 而考生在實際操作時, 通常只考慮文字部分的段落, 對單元格一般按行和列的單位進(jìn)行定位. 同時, 對于只有空格和回車換行符的空段在計數(shù)時是否也算一個段落, 恐怕一般的考生面對這樣的問題都會發(fā)生疑問, 這樣就容易造成對題目要求理解的歧義. 因此, 如何解決段落定位的問題既是重點, 也是難點.
為了解決這個問題, 系統(tǒng)采用了如下方法和策略:
a. 對表格和圖形中段落的處理
由于 Word的對象庫中并沒有對某一段落是否在表格或圖形中的屬性設(shè)置, 因此我們不能直接判斷段落是在表格中、圖形中還是文字部分中. 系統(tǒng)設(shè)計中采取了一個間接的辦法: 將題目文件或考生答案另存為一個新的Word文檔, 再在其中刪除所有的圖形和表格, 凡是對文字段落部分的操作和判斷, 都針對這個新的文檔對象進(jìn)行. 這樣做既保證了不改變題目文件和考生答案文件的原貌, 又方便、快捷、準(zhǔn)確地解決了段落定位的問題.
b. 去除空段
Word文檔中是應(yīng)該允許空段的存在的, 但這會影響出題向?qū)Ш妥詣釉u卷系統(tǒng)對段落的定位, 因此要對它進(jìn)行去除空段的處理.
程序設(shè)計時, 初步解決方案是利用Word的查找與替換功能, 查找文檔中是否存在連續(xù)兩個回車換行符,若存在, 則將其替換為一個回車換行符. 對于連續(xù)的 3個以上的回車換行符, 只要將上面的程序設(shè)置一個循環(huán)就可以了. 但是這樣做遇到一個問題: 即在Word中, 一個表格前若有兩個連續(xù)的回車換行符, 是不能夠替換為一個回車換行符的, 這樣就使程序形成了死循環(huán). 經(jīng)過測試, 發(fā)現(xiàn)表格前的這個空段可以用Delete方法刪除, 因此程序設(shè)計思路改為查找空段并刪除它, 這樣做還可以刪除那些只有空格的段落, 而根據(jù)原來的思路是不能刪除這樣的段落的.
c. 分析題目文件和考生答案文件中是否有首字下沉和分欄的設(shè)置
之所以要分析文檔對象中是否含有首字下沉和分欄的設(shè)置, 是因為在 Word的對象庫中, 下沉的首字和具有分欄設(shè)置的段落第1個字符的ASCII碼為“12”時, 也都被認(rèn)為是一個段落. 而操作者一般認(rèn)為段落的首字不管做何種設(shè)置, 仍是段落的一部分; 而ASCII碼“12”是一個不可見的字符, 考生更不可能知道這也是一個段落. 所以這兩種格式設(shè)置也都會影響到段落的定位, 必須進(jìn)行檢查并進(jìn)行處理, 以便按照操作者的習(xí)慣對段落進(jìn)行準(zhǔn)確定位[4].
我們設(shè)計的Word考試系統(tǒng), 為提高學(xué)習(xí)Word的效率提供了方便. 對于Word中知識點互斥與關(guān)聯(lián)問題和 FSO對象的運用等問題, 進(jìn)行了分析和解決. 而只有解決了這一系列的問題, 才能提高考試系統(tǒng)評分的精確性, 考試也才更公平、客觀[4].
[1] 李貴陽, 王世倫, 俞曉. Word文檔自動判卷的實現(xiàn)[J]. 中國測試技術(shù), 2004, 30(7): 79-81.
[2] 馬慧彬. Windows上機操作題庫系統(tǒng)的設(shè)計[J]. 佳木斯大學(xué)學(xué)報: 自然科學(xué)版, 2003, 21(1): 108-110.
[3] 鄧慧琴. 《計算機應(yīng)用基礎(chǔ)》Web考試系統(tǒng)的自動化測試方案[J]. 齊齊哈爾大學(xué)學(xué)報: 自然科學(xué)版, 2012(1): 10-13.
[4] 黃裕. 在線考試系統(tǒng)的設(shè)計與實現(xiàn)[J]. 數(shù)字技術(shù)與應(yīng)用, 2011(11): 158-159.
(責(zé)任編校: 譚長貴)
The design difficulties and solutions of word questions in test systems
FENG Ding-wu
(College of Computer Science and Technology, Hunan University of Arts and Science, Changde 415000, China)
Some design difficulties was analyzed in Office software tests. This paper also focused on problems as paragraphs positioning in Word, the control of Word using VBA and fault-tolerant processing.
VB 6.0; operation questions; conflicts detection; automatic grading
TP 316.7
1672-6146(2012)02-0092-03
10.3969/j.issn.1672-6146.2012.02.022
2012-05-24
湖南文理學(xué)院教改重點課題(JGZD0907).
馮丁武(1957-), 男, 副教授, 研究方向為計算機應(yīng)用. E-mail: 313186535@qq.com