梅紅偉
(云南大學(xué)旅游文化學(xué)院 云南 麗江 674100)
基于WORD上機(jī)考試自動評分算法的研究
梅紅偉
(云南大學(xué)旅游文化學(xué)院 云南 麗江 674100)
本文主要通過對WORD的VBA對象結(jié)構(gòu)的研究分析,并按WORD操作分類實現(xiàn)了相應(yīng)的自動評分算法。在算法設(shè)計過程中著重分析了不同環(huán)境、不同操作的評分正確性,并根據(jù)該算法,提出了WORD考試系統(tǒng)中評分系統(tǒng)、試題數(shù)據(jù)庫、出題系統(tǒng)的設(shè)計思想和要求。
評分算法;VBA對象;設(shè)計思想
隨著計算機(jī)技術(shù)的發(fā)展和應(yīng)用的普及,計算機(jī)基礎(chǔ)教育越來越重要,在小學(xué)、中學(xué)以及大學(xué)里大都設(shè)有計算機(jī)基礎(chǔ)課程。同時,Microsoft office是一款在社會各界應(yīng)用極為廣泛的辦公系列軟件,其中的WORD、EXCEL、POWERPOINT等軟件深受人們喜愛。故這三款軟件的教學(xué)大多是計算機(jī)基礎(chǔ)課程的主要教學(xué)環(huán)節(jié)。
軟件教學(xué)注重實踐操作,如何對軟件操作進(jìn)行上機(jī)考核是教學(xué)的一個重要研究內(nèi)容。而上機(jī)考核研究中如何對相應(yīng)操作做出快速、準(zhǔn)確、客觀、公正的評分是研究的一個必須解決的難題。在我校,為適應(yīng)計算機(jī)基礎(chǔ)課程的教學(xué)改革,提出了教考系統(tǒng)開發(fā)項目,筆者參與了該項目的研發(fā),主要負(fù)責(zé)WORD操作自動評分算法的研究。
在研究過程中,筆者根據(jù)我校計算機(jī)基礎(chǔ)課程的教學(xué)要求、WORD考試系統(tǒng)中出題、組題的特性以及學(xué)生操作中存在的各種可能的情況和問題,通過對WORD的內(nèi)部機(jī)制、VBA技術(shù)的研究,將WORD的常規(guī)操作分為了不同類別,并就各個操作類別研制了相應(yīng)的自動評分算法,本算法力求精準(zhǔn)、客觀、公正,適用于三本學(xué)校WORD教學(xué)考試要求。
我校屬三本院校,對于計算機(jī)基礎(chǔ)課程的教育主要基于計算機(jī)操作常識的普及。WORD是基礎(chǔ)課程的一個重要環(huán)節(jié),其教學(xué)要求學(xué)生能夠掌握文字編輯、排版、簡單的表格應(yīng)用以及特殊元素的插入、設(shè)置操作等。相應(yīng)的考試系統(tǒng)對WORD的考查也應(yīng)符合教學(xué)大綱的要求,并能對以后變動作出相應(yīng)的調(diào)整。故而,我先對WORD考查的操作試題根據(jù)其操作特性進(jìn)行了分類分析,以便評分算法的設(shè)計具有針對性、規(guī)范性,并與系統(tǒng)出題有效的聯(lián)系匹配。具體分類如下:
①編輯操作:主要包括文檔文字錄入、復(fù)制、張貼、剪切、替換操作;
②格式設(shè)置:主要包括字體格式設(shè)置、段落格式設(shè)置、項目符號和編號、邊框和底紋、分欄、首字下沉、更改大小寫、背景等;
③頁面視圖:頁面大小、頁邊距、打印紙張設(shè)置、頁眉頁腳設(shè)置等;
④插入操作:頁碼、時間和日期、符號、批注、腳注和尾注、題注、圖片(包括藝術(shù)字)、書簽、超鏈接等;
⑤表格:插入表格、行、列、單元格的增刪改、表格文字錄入等;
⑥繪圖:指定圖形的繪制(主要掌握文本框、自選圖形、箭頭、三維效果、陰影、圖形組合等設(shè)置)。
以上操作是對WORD文檔進(jìn)行編輯、排版和美化時常用操作,屬計算機(jī)基礎(chǔ)教學(xué)大綱范疇。其后的自動評分算法主要依據(jù)以上操作進(jìn)行分析,在算法設(shè)計過程中除實現(xiàn)對各種操作結(jié)果的評判外,還應(yīng)注意操作之間的效果影響。同時對于試題的設(shè)計同樣需要考慮各個操作的先后順序?qū)υu分的影響,具體分析見下文。
VBA(Visual Basic for Applications)是一種標(biāo)準(zhǔn)宏語言。它具有跨越多種OFFICE應(yīng)用軟件并且控制應(yīng)用軟件對象的能力,該宏語言被EXCEL、WORD、ACCESS等OFFICE應(yīng)用軟件所共享并提供給用戶開放使用。故而,在對WORD自動評分分析設(shè)計過程中,VBA將作為我們主要工具來研究使用。下面我們將了解認(rèn)識下VBA的一些主要內(nèi)容。
1.2.1 WORD對象
對象是代碼和數(shù)據(jù)的組合,可以作為一個獨(dú)立單位來處理。在WORD應(yīng)用程序中一個WORD對象可以是WORD的一部分(如:文檔、表格、段落等都可以用WORD對象表示),也可以是整個WORD應(yīng)用程序 (如:Application對象即代表WORD應(yīng)用程序本身)。因此,在WORD應(yīng)用程序中所有的操作都將與WORD對象有關(guān)。
在前面,我們提到過VBA能夠控制對象,所以在我們的算法研究中我們將使用VBA來對WORD的各種操作所涉及的對象進(jìn)行研究分析。要想掌握VBA在WORD中的應(yīng)用,了解WORD的對象是必不可少的。在圖1中給出WORD對象模型圖,希望通過圖示大家能對WORD對象之間的組織結(jié)構(gòu)有一個清楚地認(rèn)識,該結(jié)構(gòu)決定了對象間的相互關(guān)系以及它們的訪問方法。對各個對象的具體使用我們將在后面的設(shè)計中進(jìn)行詳細(xì)說明。
圖1 WORD對象模型圖
1.2.2 宏與Visual Basic編輯器
前面我們說過VBA是一種宏語言,可以編輯相應(yīng)的宏程序以控制WORD的工作。WORD的宏程序是一系列組合在一起的WORD命令和指令,它們能代替人工實現(xiàn)任務(wù)的自動化執(zhí)行,我們的算法設(shè)計就是使用宏來完成分析和評分實現(xiàn)的。
在WORD應(yīng)用程序中宏的創(chuàng)建有兩種方法:一是使用宏錄制器(工具菜單中)錄制一個宏;二是在Visual Basic編輯器中編輯一個宏。在我們的設(shè)計中前者主要用于對手工操作的分析,后者主要用于評分程序的編寫。下面我們將通過兩個實例來介紹這兩種方法的運(yùn)用:
實例宏的錄制:通過錄制宏來分析將文檔word1.doc的第三段文字設(shè)為紅色是怎樣實現(xiàn)的。
操作:找到并打開word1.doc,選中第三段。通過【工具】→【宏】→【錄制新宏】來啟動宏錄制器。將宏名命名為,“實例1”。然后按要求完成字體顏色的設(shè)置,停止宏錄制。最后通過【工具】→【宏】→【宏】選擇編輯宏“實例 1”,打開 Visual Basic編輯器進(jìn)行分析即可,如圖2錄制的宏代碼所示:
圖2 錄制的宏代碼
從宏程序中不難看出,文字字體(Font)的設(shè)置涉及到多方面的屬性操作。但本例只與顏色屬性(Color)相關(guān),其值被設(shè)為 “wdColorRed”(即紅色,亦可設(shè)為255。具體轉(zhuǎn)換查看Visual Basic編輯器的快速信息。)而其他屬性的設(shè)置不變,在程序中可以忽略。
實例評分算法的實現(xiàn):編寫宏程序?qū)崿F(xiàn)對文檔word1.doc的第三段文字設(shè)為紅色的操作是否正確。
編程設(shè)計:通過實圖2的分析,我們知道判斷文字字體顏色即判斷選定內(nèi)容的Font對象的Color屬性值是否正確即可。如圖3評分算法示例所示:
圖3 評分算法示例
打開Visual Basic編輯器,并在代碼窗口編寫以上宏程序即可。值得注意的是,VBA宏代碼是事件驅(qū)動的,且不能單獨(dú)被執(zhí)行,只能被OFFICE程序所調(diào)用。為運(yùn)行方便可以將宏程序定義在專門的WORD文檔中,并指定到工具欄、菜單或為其設(shè)定快捷鍵。當(dāng)然根據(jù)考試系統(tǒng)設(shè)計的需要,也可以用其他高級程序語言來直接編寫訪問VBA對象的程序。
在其后的算法設(shè)計中,我們主要依靠以上的方法對word考點(diǎn)的各個操作進(jìn)行分析研究,最后再形成可行的評分子程序。需要進(jìn)行評分時,評分主程序根據(jù)試題操作類型調(diào)用相應(yīng)得子程序即可。
WORD操作類型繁多,操作方法各異,不同的操作按照不同的順序進(jìn)行時,操作的結(jié)果也會不同,我們研究設(shè)計工作將是一個非常煩瑣的過程,因此為了保證評分算法設(shè)計的正確性、合理性、嚴(yán)謹(jǐn)性,我們必須在開始研究設(shè)計前先對整個評分程序做一個合理的規(guī)劃。
1.3.1 算法程序的結(jié)構(gòu)
根據(jù)VBA宏程序的特性,并保證算法程序的通用性和可移植性。我們的算法程序?qū)⒁宰映绦蚪Y(jié)構(gòu)來設(shè)計。即整個試題的評分程序為主程序,單一屬性值改變的小操作的評分程序為子程序。主程序調(diào)用各個子程序,并為子程序傳遞相應(yīng)的參數(shù)。
1.3.2 主程序的設(shè)計
主程序調(diào)用各個子程序,并為子程序傳遞相應(yīng)的參數(shù)。本文主程序主要由3個部分組成:
①對WORD應(yīng)用程序、文檔進(jìn)行檢測、打開、關(guān)閉等操作,提供評分環(huán)境,保證評分順利進(jìn)行;
②對各種操作設(shè)置評判對象,為子程序調(diào)用提供參數(shù);
③使用循環(huán)結(jié)構(gòu)給出各步操作的得分及操作提示。
1.3.3 子程序的設(shè)計
子程序主要是通過一個分支結(jié)構(gòu)完成單一屬性值與指定的比較值之間的判定并賦予相應(yīng)的分值,記錄判定信息。子程序的實現(xiàn)主要有兩個問題:
第一個問題是比較值的設(shè)置。這里有三種設(shè)置方法:
①固定值,即根據(jù)具體的操作結(jié)果設(shè)定具體值。該方法簡單但通用性差,操作值唯一固定,評分算法與試題唯一匹配;
②參數(shù),由出題者直接給出,并記錄在數(shù)據(jù)庫中,評分子程序通過訪問數(shù)據(jù)庫獲得比較值。由于不同屬性值表示方式不同,出題者需要一一辨別,工作負(fù)擔(dān)較重難度大且出題系統(tǒng)需要專門設(shè)計屬性值的數(shù)據(jù)庫表,系統(tǒng)結(jié)構(gòu)復(fù)雜;
③標(biāo)準(zhǔn)文檔提取。出題者不需要干涉具體的屬性取值,只需要出題時制作一份標(biāo)準(zhǔn)文檔,在比較時,同時提取待評文檔和標(biāo)準(zhǔn)文檔的同一選定對象的相同屬性即可。相對來說第3種方法通用性強(qiáng)、靈活方便,能較好的適應(yīng)試題的演變。故而為本文主要采用的方法。
第二個問題是參數(shù)的設(shè)置。為了使子程序結(jié)構(gòu)統(tǒng)一,調(diào)用簡單、方便管理,我們對子程序的參數(shù)也作了限制,各個子程序一般情況下統(tǒng)一有三個參數(shù):
①待評文檔的待評對象;
②標(biāo)準(zhǔn)文檔的比較對象;
③得分。
根據(jù)上文所述研究方法和程序設(shè)計思想,筆者就WORD操作基本考點(diǎn)編制了相應(yīng)的自動評分程序?,F(xiàn)列舉如下:
評分主程序是評分程序的整體框架,主程序要根據(jù)出題信息為評分活動提供評分環(huán)境,并根據(jù)出題要求調(diào)用相應(yīng)的子程序,為子程序提供必要參數(shù)信息,最后還要將評分結(jié)果輸出顯示。具體設(shè)計如下:
2.1.1 設(shè)定評分環(huán)境
即打開WORD應(yīng)用程序,查找并打開待評文檔和試題對應(yīng)的標(biāo)準(zhǔn)文檔。在評分結(jié)束時應(yīng)及時關(guān)閉相應(yīng)文檔和程序。
①WORD應(yīng)用程序的打開和關(guān)閉:
在VBA中我們有專門的打開、關(guān)閉WORD應(yīng)用程序的方法過程可以直接調(diào)用。例如圖4打開WORD應(yīng)用程序所示:
圖4 打開WORD應(yīng)用程序
注意,本文所有程序測試均在word2003中的Visual Basic編輯器進(jìn)行,此時word應(yīng)用程序已經(jīng)打開,因此直接使用application對象(即當(dāng)前word應(yīng)用程序)。若需要在其他應(yīng)用程序中嵌入使用該算法則如上例先打開word應(yīng)用程序并定義為對象wd,再用wd代替所有application對象,評分結(jié)束時應(yīng)關(guān)閉word應(yīng)用程序并釋放對象wd。
②待評文檔的查找:
待評文檔即考生文檔是評分的主體對象,在實際考試結(jié)果中可能出現(xiàn)考生將文檔刪除或?qū)ξ臋n命名出錯,此時應(yīng)終止評分,只有在指定位置查找到待評文檔才能進(jìn)一步對各個操作進(jìn)行評分。文檔的查找可以使用VBA所提供的FileSearch對象,筆者根據(jù)FileSearch對象編輯了一個文件查找子過程Searchfile(wname,wlujin),如下例圖5 Searchfile(wname,wlujin)所示:
圖5 Searchfile(wname,wlujin)
Searchfile(wname,wlujin)子過程調(diào)用示例:
圖6 Searchfile(wname,wlujin)的調(diào)用
注意:
·Searchfile(wname,wlujin)子過程中使用了模塊級變量wjcx,該變量要在調(diào)用程序(主程序前進(jìn)行聲明);
·為了測試方便,本文程序中使用Debug.Print方法在在Visual Basic編輯器的立即窗口中顯示判定信息。讀者可根據(jù)實際需要定義一個字符串?dāng)?shù)組存放各種判定信息,在專門的界面中顯示;
·由于FileSearch對象的Execute()方法自身的原因,導(dǎo)致該過程存在一個非常嚴(yán)重的問題:當(dāng)指定文件名為“aa.doc”,而待評文件名為“*aa.doc”(* 為任意字符)時不能正確判斷!
③待評文檔及標(biāo)準(zhǔn)文檔的打開和關(guān)閉:
在評分過程中,需要從待評文檔和標(biāo)準(zhǔn)文檔中讀取相應(yīng)對象的屬性值從而比較判定得分,因此,在評分前我們必須要先打開著兩個文檔,在評分結(jié)束后關(guān)閉文檔。Word文檔的打開和關(guān)閉可以直接使用VBA提供的open()和close()這兩個方法。如圖7文檔的打開和關(guān)閉:
圖7 文檔的打開和關(guān)閉
2.1.2 設(shè)置判定對象
任何操作都有指定的操作對象,評分時也應(yīng)先確定判定對象再對其屬性進(jìn)行評判。在評分程序中,我們需要在主程序里根據(jù)試題設(shè)定好判定對象,并將該對象作為參數(shù)傳遞給調(diào)用的評分子程序。操作不同,其對象也不同,對象的設(shè)定方法就有所差異。下面,我們將按操作對象分類舉例說明。
①以文字為操作對象:
即試題要求對文檔中指定的部分文字進(jìn)行編輯或格式設(shè)置等操作,其操作對象為指定的文字。該類操作對象需要通文字匹配查詢來設(shè)定,下面的程序段為筆者編寫的文字匹配查找子程序:
圖8 文字匹配查找子程序sel(sr.str)
為說明sel(sr,str)子程序的功能應(yīng)用,我們通過示例試題2-1來分析講解:
圖9 示例試題2-1
示例試題2-1:將e盤根目錄下的“st1,doc”正文最后一段“旅游業(yè)發(fā)達(dá),……威尼斯。”文字添加陽文效果。
該宏代碼同過調(diào)用sel子程序在分別在標(biāo)準(zhǔn)文檔和待評文檔上查找“旅游業(yè)發(fā)達(dá),……威尼斯。”所在的位置,并將找到的位置區(qū)域作為參數(shù)傳遞給陽文評分子程序,這樣若兩文檔選定操作區(qū)域不一致,但文字內(nèi)容一致,依然能夠正確評分。這就避免了使用段、行、句為判定對象時出現(xiàn)因操作失誤,誤刪誤增段、行、句而導(dǎo)致所有操作全部評定錯誤的情況。但該方法也存在一個缺陷:但區(qū)域中存在一些特殊元素如批注時,查找會失敗。出題時應(yīng)注意回避。
②以整篇文檔為操作對象:
如頁面設(shè)置中頁邊距、紙張大小、頁眉頁腳等的設(shè)置都是以整篇文檔為操作對象的。因此,在調(diào)用相應(yīng)的評分子程序時直接將待評文檔和標(biāo)準(zhǔn)文檔作為對象參數(shù)傳遞給子程序即可。如下示例:
示例試題2-2:將整篇文檔頁面設(shè)為上邊距2厘米、下邊距2厘米、左邊距3厘米、右邊距3厘米;頁面垂直對齊方式為居中。
圖10 示例試題2-2
③以插入的圖片等外來元素為操作對象:
在word2003中,插入是一個非常重要,使用非常頻繁的一種修飾美化操作。對插入的元素進(jìn)行評分從原理上來講非常簡單,只要選中待評元素對象,比對相應(yīng)的屬性即可,但word對各種插入元素的標(biāo)記是采用默認(rèn)的索引號,該索引號可能因為操作的不同(順序、修改、增減等)導(dǎo)致每個人的操作結(jié)果相同,但索引號不同,使評分程序無法準(zhǔn)確選定待評元素對象。筆者通過研究,提出兩種方法解決該問題:第一種方法是事先將所有元素插入到文檔中并統(tǒng)一命名,考生只完成對各種元素進(jìn)行設(shè)置和組合,禁止增刪。這個方法雖然簡單,但失去了考察插入操作的意義。第二種方法是在考試系統(tǒng)中制作一個對選定對象命名的命令按鈕,其主要語句為:Selection.ShapeRange.Name=“對象名稱”。要求考生對所有元素按題目要求命名。該方法也比較簡單,但其操作超出了大綱要求,且元素較多時容易出錯。如下示例:
示例試題2-3:在文檔中插入圖片p1并將圖片p1的環(huán)繞方式設(shè)為上下型環(huán)繞,設(shè)置圖片位置:水平對齊為相對于欄居中;垂直對齊的絕對位置為正文第一段下0.5厘米。(圖片設(shè)置完成后使用命令對圖片命名為p1)
圖11 示例試題2-3
該示例,先以整篇文檔為選定對象,調(diào)用txcz()子程序查找文檔中是否存在命名為“p1”的圖片元素,找到后再以該圖片為選定對象,調(diào)用txsz()子程序?qū)D片設(shè)置進(jìn)行評分。
④以表格為操作對象:
表格也是word中的一個重要考查內(nèi)容。表格的評分與上文插入操作的評分類似,不過表格有更加嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu),在VBA 中 可 以 使 用 table(index)、Rows(index)、Columns(index)、Cell(row,column)或 Cells(index)來訪問表格、行、列及單元格,雖然index索引號同樣是默認(rèn)生成,但其生成規(guī)則是按位置(從上到下,從左到右)形成,當(dāng)發(fā)生增、刪、改它能自動重新編碼。因此在對表格進(jìn)行評分時可直接使用上述對象作為對象參數(shù)傳遞給評分子程序。
評分子程序主要針對某一屬性值的正確與否進(jìn)行判斷,筆者根據(jù)前文劃分的WORD操作類型,分別編制部分子程序以供讀者參考。
2.2.1 編輯操作自動評分
主要包括文檔文字錄入、復(fù)制粘貼、剪切、替換操作,其中錄入、復(fù)制粘貼及剪切操作只需調(diào)sel(sr,str)子程序選定操作區(qū)域比較其文字內(nèi)容即可,而替換操作涉及的區(qū)域為整篇文檔,可采用循環(huán)比較的方式來判定。請看下列示例:
①示例修改操作的評分:在正文第二段“隨著計算機(jī)技術(shù)在中國……統(tǒng)一、客觀、公正的標(biāo)準(zhǔn)?!敝械摹皼Q定舉辦等級考試”修改為“決定舉辦全國計算機(jī)等級考試”。
評分子程序如下:
圖12 示例修改操作的評分子程序
wz(dr,br,f)調(diào)用如下:
圖13 wz(dr,br,f)的調(diào)用
以上評分示例首先打開待評文檔和標(biāo)準(zhǔn)文檔,并通過調(diào)用sel()子程序查詢選定操作區(qū)域(第二段),再調(diào)用wz()子程序進(jìn)行文字匹配,從而完成評分。需注意的是wz()的文字匹配時對整個選定區(qū)域的匹配,所以試題中不應(yīng)出現(xiàn)在同一區(qū)域的其他編輯操作,以免不同操作的相互影響。
②示例替換操作的評分:將文檔中所有“的”字,修改為“地”,并設(shè)字體為仿宋。
評分子程序如下:
圖14 示例替換操作的評分子程序
th(dr,br,n,zf,f)調(diào)用如下:
圖15 th(dr,br,n,zf,f)的調(diào)用
該示例中,替換后的字符為“地”,總計替換了71次,故使用循環(huán)結(jié)構(gòu)查詢“地”71次,每次查詢都將評判.found的值是否為真,若為真則71次替換文字都正確,反之則不正確。另外,替換操作還可以進(jìn)行格式替換,如本例要求字體為“仿宋”,故在程序中引入.Font.NameFarEast的判定。其他格式亦可類似添加。添加了格式替換的子程序不會影響不需要格式替換操作的評分(判定原則為與標(biāo)準(zhǔn)文檔比對)。
2.2.2 格式設(shè)置自動評分
主要包括字體格式設(shè)置、段落格式設(shè)置、項目符號和編號、邊框和底紋、分欄、首字下沉、更改大小寫、背景等;這些操作同編輯操作的評分方法基本一致,但大多數(shù)設(shè)置都會涉及多項屬性的改變,如字體格式可能同時涉及字體大小、字體名稱、字形等,邊框可能涉及邊框樣式、線條顏色、大小、類型等。在評分時應(yīng)對所有涉及的屬性進(jìn)行評比。故我們可以用兩種方法來實現(xiàn),一者是對所有屬性都編寫評分子程序,根據(jù)試題選擇調(diào)用;該方法子程序數(shù)量過多,系統(tǒng)結(jié)構(gòu)比較繁瑣和復(fù)雜,短期內(nèi)難以實現(xiàn);另外一種方法是按操作,將多個屬性的評比編寫在一個子程序中,由于評比過程是與標(biāo)準(zhǔn)文檔對比,對于試題未作要求的屬性,只要考生不擅自修改,則不影響評分。該方法比較簡潔直觀,但子程序參數(shù)較多(不同的屬性對應(yīng)不同的分值),對考生操作的要求也相對較高。示例如下:
示例字體格式設(shè)置評分:將標(biāo)題“計算機(jī)二級考試”設(shè)為居中、仿宋字體、二號字號、加粗。
圖16 示例字體格式設(shè)置的評分
圖17 gsh(dr,br,f1,f2,f3,f4,f5)的調(diào)用
在本示例中,西方字體的設(shè)置未作要求,故調(diào)用評分子程序時其對應(yīng)的分值為0。
2.2.3 視圖頁面設(shè)置自動評分
頁面大小、頁邊距、打印紙張設(shè)置、頁眉頁腳設(shè)置等。對于頁面設(shè)置評分時選擇的對象為整個文檔,其他按上述方式對相應(yīng)屬性進(jìn)行比對即可。特別是頁眉頁腳有特定的對象屬性,設(shè)計分析時注意區(qū)分。如下示例:
示例頁眉設(shè)置的評分:為文檔設(shè)置頁眉,奇數(shù)頁頁眉為“地理知識”,偶數(shù)頁頁眉為“意大利”。
圖18 示例頁眉設(shè)置的評分
圖19 ymyj(dr,br,f1,f2,f3)的調(diào)用
在以上示例中,頁眉頁腳的判定需要按節(jié)進(jìn)行,Sections(1)即為文檔第一節(jié),Headers(1)表示奇數(shù)頁眉,Headers(3)表示偶數(shù)頁眉,若是頁腳可用屬性footers。
2.2.4 插入操作、表格操作及繪圖操作的自動評分
這類操作較為復(fù)雜,涉及大量外來元素對象,對對像的選定尤為關(guān)鍵,可參看2.1.2設(shè)置判定對象來操作。具體的評分細(xì)節(jié)與其他操作類似。如下示例:
示例插入圖片并設(shè)置的評分:在文檔中插入圖片tp1并將圖片tp1的環(huán)繞方式設(shè)為上下型環(huán)繞,設(shè)置圖片位置:水平對齊為相對于欄居中;垂直對齊的絕對位置為正文第一段下0.5厘米。(圖片設(shè)置完成后使用命令對圖片命名為p1)
圖20 圖形查找
txcz(dr,na,f)子程序主要完成查找指定名稱的圖形存不存在。其判定過程為首先統(tǒng)計該文擋的圖形個數(shù),若個數(shù)為0則不存在圖形,接下來在使用循環(huán)查看是否存在指定名稱(na)的的圖形。
圖21 圖形設(shè)置評分
在確定了待評圖形后即可直接調(diào)用其相關(guān)屬性進(jìn)行比對評分。
圖 22 txcz(dr,na,f)及 txsz(dr,br,f1,f2,f3)的調(diào)用
在對圖形進(jìn)行評分時應(yīng)先調(diào)用txcz()子程序確定待評圖形,再調(diào)用txsz()子程序?qū)Ω鱾€屬性進(jìn)行對比評分。這種評分算法基本能滿足圖形的評分,其正確性在于要求考生能準(zhǔn)確對圖形命名。其他插入元素對象(批注、題注、表格、繪圖)等都可使用類似方式進(jìn)行評分
通過上文的描述,我們已經(jīng)可以對WORD的大部分常規(guī)操作進(jìn)行評分。但就一個考試系統(tǒng)而言,其應(yīng)包含多套試題,各套試題又含有或相同或不同的操作,且系統(tǒng)在使用過程中亦可通過添加試題對試題庫進(jìn)行累積完善。若每一套題目都唯一對應(yīng)一套評分算法,那系統(tǒng)的使用就顯得不靈活,對出題老師的要求太高。所以筆者考慮系統(tǒng)開發(fā)者可根據(jù)評分算法的要求設(shè)計出題系統(tǒng),使用者通過出題系統(tǒng)提供相關(guān)數(shù)據(jù),評分系統(tǒng)又根據(jù)提供的數(shù)據(jù)自動選擇調(diào)用子程序,生成配套的評分程序。
通過累積,我們將完成所有操作評分子程序的設(shè)計,而所有子程序都通過一個主程序進(jìn)行調(diào)用。對每個子程序都設(shè)定一個調(diào)用標(biāo)志,主程序使用分支結(jié)構(gòu)根據(jù)標(biāo)志信息選擇是否對相應(yīng)操作進(jìn)行評分。子程序所需要的數(shù)據(jù),由主程序訪問數(shù)據(jù)庫獲取。
試題信息應(yīng)統(tǒng)一存放在數(shù)據(jù)庫中,試題數(shù)據(jù)庫可以有兩種設(shè)計方法,一種是將評分算法中所需要的所有數(shù)據(jù)全部做完數(shù)據(jù)表屬性構(gòu)成一張數(shù)據(jù)表,數(shù)據(jù)表的一行代表一個小操作。這樣的組織方式使出題系統(tǒng)能夠以最小操作為單位出題,再根據(jù)已有的題目,自動組題。但筆者不建議這樣做。就word文檔而言,不同的題目可能需要不同的試題文檔,不同的操作在同一文檔上也可能產(chǎn)生評分的沖突。且不同操作所需要的數(shù)據(jù)項目也不盡相同,數(shù)據(jù)表結(jié)構(gòu)復(fù)雜,容易產(chǎn)生數(shù)據(jù)冗余。第二種方式是,按前文所述將操作歸類,不同類別的操作對應(yīng)不同的數(shù)據(jù)表,出題系統(tǒng)按套題出題。在數(shù)據(jù)表中除了操作所需數(shù)據(jù)外,還應(yīng)包含試題ID,套題ID,調(diào)用標(biāo)志等信息,便于評分系統(tǒng)的訪問。
出題系統(tǒng)都主要的功能是向出題者提供相應(yīng)的出題界面,根據(jù)試題數(shù)據(jù)庫和評分系統(tǒng)的設(shè)計,出題系統(tǒng)可以根據(jù)操作分類形成多個出題界面。每個界面應(yīng)能提供對應(yīng)數(shù)據(jù)表所需數(shù)據(jù)。同時,根據(jù)評分系統(tǒng),出題系統(tǒng)對一套試題的出題盡可能作一些必要的限制,主要是避免對同一區(qū)域做不同的操作。例如:在一套試題中存在一個操作是對部分文字進(jìn)行編輯修改,而另一個操作也會對該部分文字進(jìn)行編輯修改或格式設(shè)置。那若前一個操作未完成正確,后一個操作即便是作對了評分系統(tǒng)也會因找不到準(zhǔn)確的操作對象而導(dǎo)致評分出錯!
總上所述,筆者通過對WORD操作進(jìn)行分類,使用VBA對各類操作所涉及的對象及其屬性進(jìn)行研究,提出對WORD操作進(jìn)行自動評分算法設(shè)計的主要思想和具體規(guī)劃,并對一些典型的操作的特點(diǎn)進(jìn)行分析,實現(xiàn)正確評分。最后,筆者根據(jù)評分算法的特點(diǎn)要求,對考試系統(tǒng)的評分系統(tǒng)、試題數(shù)據(jù)庫、出題系統(tǒng)提出了具體的設(shè)計思想。由于WORD應(yīng)用程序本身的復(fù)雜性、論文篇幅及時間關(guān)系,本論文未能將所有操作的評分實現(xiàn),對已實現(xiàn)的評分程序也不可能進(jìn)行所有情況的下的正確性測試,故在實際應(yīng)用過程中可能存在部分出入,還請廣大讀者給予指正。
[1]WORD2002 VBA 一冊通[OL].博庫網(wǎng).
[2]OFFICE編程手冊合集[OL].大家學(xué)習(xí)網(wǎng).
The Automatic Scoring Algorithm Research Based on WORD Computer Examination
In this paper,through research and analysis on the WORD VBA object structure,press the word operational taxonomic achieve the automatic scoring algorithm.Analyzed the ratings of different environments and operating the correctness of the algorithm design process,and according to the algorithm,the word examination system in the scoring system,the item database,the topic and design ideas and requirements.
Scoring algorithm;VBA object;Design ideas
云南省教育廳科學(xué)研究項目——基于獨(dú)立學(xué)院計算機(jī)應(yīng)用水平的教考系統(tǒng)的設(shè)計與實現(xiàn)。
梅紅偉(1982—),男,助教,從事信息管理與信息系統(tǒng)專業(yè)教學(xué)。
王洪澤]