计算机文化基础考试系统中的Office操作题自动阅卷技术的研究

2009-06-17 08:59崔丽娟
中国校外教育(下旬) 2009年4期

崔丽娟

【摘要】自动阅卷技术是大规模计算机考试的必然选择,本文针对《计算机文化基础》课程中的Office操作题中的Word部分进行了剖析,并研究了VBA技术实现在Office操作题自动阅卷中的功能。

【关键词】计算机文化基础考试系统 Office操作题 自动阅卷技术

《计算机文化基础》是山东省高校开设的一门公共基础课程,其内容主要是计算机基础知识和Office办公软件的使用。根据教学实际的需要,为帮助学生备考和适应考试环境并协助教师教学,我们自主开发了一个计算机文化基础考试系统,以达到强化训练、提高考试通过率的目的。

该系统中的Office操作题包括了Word、Excel和PowerPoint操作题。一直以来,Office操作题的自动阅卷就是一项技术难点。本文以Word2003为例,针对考试中的一些实际操作进行研究,利用VBA编程,实现对按要求制作的文档进行检测评分,从而全面解决了Office操作题自动阅卷问题。

一、技术分析

VBA(Visual Basic for Applications)是新一代宏语言,在大多数办公软件中都嵌有这种宏语言。与传统宏语言的不同是,VBA是基于Visual Basic For Windows发展而来的,它提供了面向对象的程序设计方法,并引入了事件驱动机制。VBA具有直接运用相关软件(如Word,Excel,PowerPoint,Au2toCAD等)的强大功能,支持程序的开发应用。

VBA宏语言的应用主要有两个方面:一是可以使用宏记录器记录用户的各种操作并将其转换为VBA程序代码,使工作自动化;二是在其他程序开发中,通过对象引用调用宏模块,增加程序的功能。VBA提供了访问Office文档的接口,包含有大量针对该类文档的函数和对象,使用VBA编程可以对文档中各对象的属性和状态进行识别和读取,并与试题标准。利用VBA实现自动阅卷,关键是获取文档的结构特性,通过录制宏来获取文档中相应对象的属性,然后在VBA中编程对当前文档进行阅卷评分。由于VBA无法脱离Word应用程序环境,加之与VB有很好的兼容性,故可以采用VB作为设计工具,将VBA阅卷程序平滑地移植到VB中。

二、Word操作题的自动阅卷技术的实现

图1 Word对象模型抽象图

1.Word对象模型概述

一个Word文档包含一个主数据流、摘要信息、表数据流、非文本数据流、0或多个包含用于OL E对象嵌入的对象存储,除摘要外其他信息均以嵌入的方式存储。Word对象模型,如图1所示,其中Application对象表示Word应用程序,Document对象表示引用的文档,Range对象表示引用文档中的某一连续区域,Selection对象表示当前选择的区域,Bookmark对象表示文档中同时具有起始位置和结束位置的连续区域,Paragraph对象表示某一段落等。

2.Word文档对象及属性

(1)字体格式设置。字体设置由Font对象获得,Font对象的Name、Size、Color属性分别表示段落中文字的字体、字号和颜色,Bold、Italic、Underline属性分别表示段落中文字是否为粗体、斜体和有下划线。

(2)段落格式设置。段落设置由Paragraph对象获得。Paragraph对象的LeftIndent、RightIndent属性分别表示段落的左、右缩进,SpaceBefore、SpaceAfter属性分别表示段落的段前间距和段后间距,FirstLineIndent属性表示段落首行缩进或悬挂缩进,LineSpacingRule属性表示段落的行距。

(3)图片、艺术字、文本框格式设置。图片格式由Shape对象获得,每个Shape对象对应一个图形。Shape对象的Type属性可以区分不同的图形对象,Height属性和Width属性分别表示图形对象的高和宽。艺术字对象的PresetTextEffect属性指定艺术字的样式,PresetShape属性指定艺术字的图形样式,FontName、FontSize属性分别表示艺术字的字体和字号。

(4)表格设置。表格设置由Table对象获得,Table对象的Columns、Rows属性分别表示表格的列集合和行集合。Spacing属性表示表格的单元格之间的间距,Borders属性表示表格的边框集合。

(5)页面设置。页面设置由Pagesetup对象获得。LeftMargin、RightMargin、TopMargin、BottomMargin属性分别表示页面的左、右、上、下边距,HeaderDistance、FooterDistance属性分别表示页面的页眉与页面顶边之间的距离、页脚与页底边之间的距离,PaperSize属性表示页面的纸型,TextColumns属性指定分栏属性。

(6)其他格式设置。首字下沉设置由Paragraph对象和DropCap对象获得,FontName属性表示首字下沉字母的字体,LinesToDrop表示首字下沉的字母的高度,以行为单位,DistanceFromText表示首字下沉的字母和段落正文之间的距离。边框设置是由Paragraph或Table和Borders等多种对象获得,LineStyle属性表示边框的线型,LineWidth属性表示边框的线宽。底纹设置是由Paragraph或Table和Shading等多种对象获得,Texture属性表示底纹的样式,ForegroundPatternColorIndex、BackgroundPatternColorIndex属性分别表示底纹的前景和背景色。

3.自动阅卷技术的实现

Word操作题主要有文档的字体、段落格式排版、表格制作、图片设置、页面设置等一系列操作,考生操作的结果以Word文档(.doc)的形式存在。我们知道,任何一个Word文档都是由许多对象组成的,这些对象及其属性的值决定了文档的结构和格式,因此对Word操作的自动阅卷采用结果型评分,即不考虑学生的操作过程,仅通过答题文档中试题涉及的相应对象的属性值与标准答案进行比较而实现。其中最关键的技术是打开相应考生试题文档、对试题相关的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)自动阅卷的代码

自动阅卷模块是通过选择性语句来实现对考生文档中的相关对象的属性与试题要求逐一进行比较,如果比较结果一致就可得分,评分结束后得出考生最后的分数。下面是自动阅卷的部分代码:

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

三、结论

自动阅卷是大规模计算考试的必然选择,在具体的开发过程中,应针对不同题型的答题特点,设计并选取最适合的评分策略,以实现快速、准确的自动评分,最大限度地减少人为因素的不利影响,同时对促进考试的规范化和科学化、促进计算机在我国的普及都有着积极的意义。

参考文献:

[1]郭仁春,樊立萍等.用VB开发交互式教师出题考试系统[J].微型电脑应用,2002,(10).

[2]邵小兵,廖慧芬.Office实践操作自动评分的实现[J].计算机与现代化,2005,(12).

[3]李剑波,李小华.考试系统中操作题自动阅卷技术研究与实现[J].信息技术,2005,(10).