崔麗娟
【摘要】自動(dòng)閱卷技術(shù)是大規(guī)模計(jì)算機(jī)考試的必然選擇,本文針對(duì)《計(jì)算機(jī)文化基礎(chǔ)》課程中的Office操作題中的Word部分進(jìn)行了剖析,并研究了VBA技術(shù)實(shí)現(xiàn)在Office操作題自動(dòng)閱卷中的功能。
【關(guān)鍵詞】計(jì)算機(jī)文化基礎(chǔ)考試系統(tǒng) Office操作題 自動(dòng)閱卷技術(shù)
《計(jì)算機(jī)文化基礎(chǔ)》是山東省高校開(kāi)設(shè)的一門(mén)公共基礎(chǔ)課程,其內(nèi)容主要是計(jì)算機(jī)基礎(chǔ)知識(shí)和Office辦公軟件的使用。根據(jù)教學(xué)實(shí)際的需要,為幫助學(xué)生備考和適應(yīng)考試環(huán)境并協(xié)助教師教學(xué),我們自主開(kāi)發(fā)了一個(gè)計(jì)算機(jī)文化基礎(chǔ)考試系統(tǒng),以達(dá)到強(qiáng)化訓(xùn)練、提高考試通過(guò)率的目的。
該系統(tǒng)中的Office操作題包括了Word、Excel和PowerPoint操作題。一直以來(lái),Office操作題的自動(dòng)閱卷就是一項(xiàng)技術(shù)難點(diǎn)。本文以Word2003為例,針對(duì)考試中的一些實(shí)際操作進(jìn)行研究,利用VBA編程,實(shí)現(xiàn)對(duì)按要求制作的文檔進(jìn)行檢測(cè)評(píng)分,從而全面解決了Office操作題自動(dòng)閱卷問(wèn)題。
一、技術(shù)分析
VBA(Visual Basic for Applications)是新一代宏語(yǔ)言,在大多數(shù)辦公軟件中都嵌有這種宏語(yǔ)言。與傳統(tǒng)宏語(yǔ)言的不同是,VBA是基于Visual Basic For Windows發(fā)展而來(lái)的,它提供了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,并引入了事件驅(qū)動(dòng)機(jī)制。VBA具有直接運(yùn)用相關(guān)軟件(如Word,Excel,PowerPoint,Au2toCAD等)的強(qiáng)大功能,支持程序的開(kāi)發(fā)應(yīng)用。
VBA宏語(yǔ)言的應(yīng)用主要有兩個(gè)方面:一是可以使用宏記錄器記錄用戶(hù)的各種操作并將其轉(zhuǎn)換為VBA程序代碼,使工作自動(dòng)化;二是在其他程序開(kāi)發(fā)中,通過(guò)對(duì)象引用調(diào)用宏模塊,增加程序的功能。VBA提供了訪(fǎng)問(wèn)Office文檔的接口,包含有大量針對(duì)該類(lèi)文檔的函數(shù)和對(duì)象,使用VBA編程可以對(duì)文檔中各對(duì)象的屬性和狀態(tài)進(jìn)行識(shí)別和讀取,并與試題標(biāo)準(zhǔn)。利用VBA實(shí)現(xiàn)自動(dòng)閱卷,關(guān)鍵是獲取文檔的結(jié)構(gòu)特性,通過(guò)錄制宏來(lái)獲取文檔中相應(yīng)對(duì)象的屬性,然后在VBA中編程對(duì)當(dāng)前文檔進(jìn)行閱卷評(píng)分。由于VBA無(wú)法脫離Word應(yīng)用程序環(huán)境,加之與VB有很好的兼容性,故可以采用VB作為設(shè)計(jì)工具,將VBA閱卷程序平滑地移植到VB中。
二、Word操作題的自動(dòng)閱卷技術(shù)的實(shí)現(xiàn)
圖1 Word對(duì)象模型抽象圖
1.Word對(duì)象模型概述
一個(gè)Word文檔包含一個(gè)主數(shù)據(jù)流、摘要信息、表數(shù)據(jù)流、非文本數(shù)據(jù)流、0或多個(gè)包含用于OL E對(duì)象嵌入的對(duì)象存儲(chǔ),除摘要外其他信息均以嵌入的方式存儲(chǔ)。Word對(duì)象模型,如圖1所示,其中Application對(duì)象表示W(wǎng)ord應(yīng)用程序,Document對(duì)象表示引用的文檔,Range對(duì)象表示引用文檔中的某一連續(xù)區(qū)域,Selection對(duì)象表示當(dāng)前選擇的區(qū)域,Bookmark對(duì)象表示文檔中同時(shí)具有起始位置和結(jié)束位置的連續(xù)區(qū)域,Paragraph對(duì)象表示某一段落等。
2.Word文檔對(duì)象及屬性
(1)字體格式設(shè)置。字體設(shè)置由Font對(duì)象獲得,F(xiàn)ont對(duì)象的Name、Size、Color屬性分別表示段落中文字的字體、字號(hào)和顏色,Bold、Italic、Underline屬性分別表示段落中文字是否為粗體、斜體和有下劃線(xiàn)。
(2)段落格式設(shè)置。段落設(shè)置由Paragraph對(duì)象獲得。Paragraph對(duì)象的LeftIndent、RightIndent屬性分別表示段落的左、右縮進(jìn),SpaceBefore、SpaceAfter屬性分別表示段落的段前間距和段后間距,F(xiàn)irstLineIndent屬性表示段落首行縮進(jìn)或懸掛縮進(jìn),LineSpacingRule屬性表示段落的行距。
(3)圖片、藝術(shù)字、文本框格式設(shè)置。圖片格式由Shape對(duì)象獲得,每個(gè)Shape對(duì)象對(duì)應(yīng)一個(gè)圖形。Shape對(duì)象的Type屬性可以區(qū)分不同的圖形對(duì)象,Height屬性和Width屬性分別表示圖形對(duì)象的高和寬。藝術(shù)字對(duì)象的PresetTextEffect屬性指定藝術(shù)字的樣式,PresetShape屬性指定藝術(shù)字的圖形樣式,F(xiàn)ontName、FontSize屬性分別表示藝術(shù)字的字體和字號(hào)。
(4)表格設(shè)置。表格設(shè)置由Table對(duì)象獲得,Table對(duì)象的Columns、Rows屬性分別表示表格的列集合和行集合。Spacing屬性表示表格的單元格之間的間距,Borders屬性表示表格的邊框集合。
(5)頁(yè)面設(shè)置。頁(yè)面設(shè)置由Pagesetup對(duì)象獲得。LeftMargin、RightMargin、TopMargin、BottomMargin屬性分別表示頁(yè)面的左、右、上、下邊距,HeaderDistance、FooterDistance屬性分別表示頁(yè)面的頁(yè)眉與頁(yè)面頂邊之間的距離、頁(yè)腳與頁(yè)底邊之間的距離,PaperSize屬性表示頁(yè)面的紙型,TextColumns屬性指定分欄屬性。
(6)其他格式設(shè)置。首字下沉設(shè)置由Paragraph對(duì)象和DropCap對(duì)象獲得,F(xiàn)ontName屬性表示首字下沉字母的字體,LinesToDrop表示首字下沉的字母的高度,以行為單位,DistanceFromText表示首字下沉的字母和段落正文之間的距離。邊框設(shè)置是由Paragraph或Table和Borders等多種對(duì)象獲得,LineStyle屬性表示邊框的線(xiàn)型,LineWidth屬性表示邊框的線(xiàn)寬。底紋設(shè)置是由Paragraph或Table和Shading等多種對(duì)象獲得,Texture屬性表示底紋的樣式,F(xiàn)oregroundPatternColorIndex、BackgroundPatternColorIndex屬性分別表示底紋的前景和背景色。
3.自動(dòng)閱卷技術(shù)的實(shí)現(xiàn)
Word操作題主要有文檔的字體、段落格式排版、表格制作、圖片設(shè)置、頁(yè)面設(shè)置等一系列操作,考生操作的結(jié)果以Word文檔(.doc)的形式存在。我們知道,任何一個(gè)Word文檔都是由許多對(duì)象組成的,這些對(duì)象及其屬性的值決定了文檔的結(jié)構(gòu)和格式,因此對(duì)Word操作的自動(dòng)閱卷采用結(jié)果型評(píng)分,即不考慮學(xué)生的操作過(guò)程,僅通過(guò)答題文檔中試題涉及的相應(yīng)對(duì)象的屬性值與標(biāo)準(zhǔn)答案進(jìn)行比較而實(shí)現(xiàn)。其中最關(guān)鍵的技術(shù)是打開(kāi)相應(yīng)考生試題文檔、對(duì)試題相關(guān)的Word對(duì)象屬性和方法進(jìn)行提取和轉(zhuǎn)換。
(1)打開(kāi)考生試題文檔
定義并設(shè)置Word對(duì)象和Word文檔:
Dim oWord As word. Application
Dim pWordAs word. Document
Set oWord = CreatObject (“Word. Application”)
Path =“D:\User_1\”
File = Path &“Word01.doc”
Set pWord= oWord.Document.Open (File,True)
(2)自動(dòng)閱卷的代碼
自動(dòng)閱卷模塊是通過(guò)選擇性語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)考生文檔中的相關(guān)對(duì)象的屬性與試題要求逐一進(jìn)行比較,如果比較結(jié)果一致就可得分,評(píng)分結(jié)束后得出考生最后的分?jǐn)?shù)。下面是自動(dòng)閱卷的部分代碼:
Public strWordResult As String'存儲(chǔ)當(dāng)前套題中的所有Word題評(píng)分結(jié)果字符串
Public iWord As Integer' Word題得分
Dim iLower As Integer
Dim s() As String
Dim i As Integer
oWord.Visible = False
With oWord.ActiveDocument.Paragraphs(1)'標(biāo)題段落格式判斷
If.Alignment = wdAlignParagraphCenter Then'判斷居中
iWord = iWord + 1
Else
ReDim Preserve s(iLower)
s(iLower) = “標(biāo)題段落居中錯(cuò)誤(-1)” & vbCrLf
End If
With .Range.Font
If .Name = “楷體_GB2312” Then'判斷字體
iWord = iWord + 1
Else
iLower = iLower + 1
ReDim Preserve s(iLower)
s(iLower) = “標(biāo)題文字字體設(shè)置錯(cuò)誤(-1)” & vbCrLf
End If
With oWord.ActiveDocument.Paragraphs(2).Range.ParagraphFormat'定義段落格式
If .LineSpacingRule = wdLineSpace1pt5 Then'定義行距為1.5倍
iWord = iWord + 2
Else
iLower = iLower + 1
ReDim Preserve s(iLower)
s(iLower) = “正文第一段行距設(shè)置錯(cuò)誤(-2)” & vbCrLf
If Int(.FirstLineIndent) = Int(CentimetersToPoints(0.75)) Then'定義首行縮進(jìn)為0.75厘米
iWord = iWord + 2
Else
iLower = iLower + 1
ReDim Preserve s(iLower)
s(iLower) = “正文第一段首行縮進(jìn)設(shè)置錯(cuò)誤(-2)” & vbCrLf
End If
End With
With ActiveDocument.Tables(1)
If .Rows.Count = 5 And .Columns.Count = 4 Then'判斷第一個(gè)表格是5行4列嗎
iWord = iWord + 2
Else
iLower = iLower + 1
ReDim Preserve s(iLower)
s(iLower) = “表格中行數(shù)或列數(shù)設(shè)置錯(cuò)誤(-2)” & vbCrLf
End If
Call oWord.ActiveDocument.Close'關(guān)閉WORD文檔
oWord.Quit
strWordResult = strWordResult & “【字處理題】” & vbCrLf & vbCrLf
strWordResult = strWordResult & “得分:” & iWord & “分” & vbCrLf & vbCrLf
strWordResult = strWordResult & “錯(cuò)誤提示如下:” & vbCrLf & vbCrLf
三、結(jié)論
自動(dòng)閱卷是大規(guī)模計(jì)算考試的必然選擇,在具體的開(kāi)發(fā)過(guò)程中,應(yīng)針對(duì)不同題型的答題特點(diǎn),設(shè)計(jì)并選取最適合的評(píng)分策略,以實(shí)現(xiàn)快速、準(zhǔn)確的自動(dòng)評(píng)分,最大限度地減少人為因素的不利影響,同時(shí)對(duì)促進(jìn)考試的規(guī)范化和科學(xué)化、促進(jìn)計(jì)算機(jī)在我國(guó)的普及都有著積極的意義。
參考文獻(xiàn):
[1]郭仁春,樊立萍等.用VB開(kāi)發(fā)交互式教師出題考試系統(tǒng)[J].微型電腦應(yīng)用,2002,(10).
[2]邵小兵,廖慧芬.Office實(shí)踐操作自動(dòng)評(píng)分的實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2005,(12).
[3]李劍波,李小華.考試系統(tǒng)中操作題自動(dòng)閱卷技術(shù)研究與實(shí)現(xiàn)[J].信息技術(shù),2005,(10).