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