APP下载

基于比较法的Office操作题开放式阅卷系统的研究与实现

2015-11-17陈军民

电脑知识与技术 2015年24期
关键词:VB程序设计比较法

摘要:开放式阅卷系统在实践教学中很有必要。教师经常要对课堂讲解的内容自己出题对学生进行测试,而对于Office操作题的阅卷将是一件繁琐的工作。该文将介绍基于比较法Office操作题开放式阅卷系统的设计原理与数据流程,并以PowerPoint为例论述如何利用VB6.0开发。文章详细介绍了考点数据表、第一次比较如何得到评分信息表、第二次比较如何得到考生分数及如何将成绩转化为Excel文件保存。

关键词:Office操作题;比较法;阅卷系统;VB程序设计

中图分类号:TP317 文献标识码:A文章编号:1009-3044(2015)24-0045-02

The Research and Implementation of the Open Marking System Based on the Comparison Method of the Office Operation

CHEN Jun-min

(Jiangxi College of Foreign Studies Nanchang, Nanchang 330099,China)

Abstract: The open marking system is very necessary in practice teaching. Teachers often have to classroom instruction content themselves. The students are tested, and for marking of office operations will be a tedious work. This paper will introduce the design principle and data flow of the open system based on the comparison method of Office operation, and take PowerPoint as an example to discuss how to use VB6.0 to develop. This paper introduces in detail the test data tables, the first is how to get the information score, the second is how to get the examinee scores and achievements transformation saved as Excel files.

Key words: Office operation; comparison method; scoring system; VB programming

开放式阅卷系统在实践教学中很有必要。教师经常要对课堂讲解的内容自己出题对学生进行测试,而对于Office操作题的阅卷将是一件繁琐的工作。它要求教师打开每个学生的考试文件,逐一去核对评分点的学生操作是否正确,最后累加评分点分值得出学生的考分。尽管有电脑自动阅卷系统,但它的题库是封闭的,题目的考点往往与教师讲解的内容不相吻合,对学生的检测没有针对性。

所谓比较法阅卷系统,首先要求老师按照测试要求在考试素材的基础上做一份标准答案,然后由阅卷系统对标准答案与考试素材在教学大纲要求的考点范围内进行比较,比较每一考点的设置值是否相同。如不同,说明这是要对学生进行测试的评分点。通过这种方法,将测试要求转化为评分信息,每一条评分信息都有它的操作说明、定位位置、标准值、默认分值及编程属性代码。如考试要求:设置第三张幻灯片的主题为“波形”(0.5分),通过比较法可转化为一条评分信息为:设置幻灯片主题、3、波形、0.5,Slider(i).Design.Name。其中Slider(i).Design.Name是幻灯片主题的VB编程对象及属性,i是幻灯片的索引号。

得到评分信息之后,教师还可以根据评分点的权重修改评分点的分值,调整每种测试类型的小计分及考试总分,或删除一些阅卷系统可能增加的评分信息。如设置幻灯片的主题,就可能产生两条评分信息,一条是幻灯片的主题,另一条是母版的主题,原因是当我们在操作PowerPoint幻灯片的主题时,相应的母版主题也会改变,所以就会增加一条评分信息。这时就有必要将第二条评分信息删除,否则一个测试点就会出现重复扣分或重复加分。

在确定了评分信息之后,阅卷系统要进行第二次比较。首先读取考生文件在对应评分点位置的属性值,这个属性值就是学生的操作结果,比较这个属性值与评分信息的标准值是否相同。如果相同,该评分点得分,否则不得分。如上述评分信息,读取考生文件Slider(3).Design.Name的值,如这个值是“波形”,则操作正确则得分,否则不得分。

如图1阅卷程序的数据流程图,首先输入考试素材文档与标准答案文档,然后对这两个文档在考点范围中进行比较,通过比较将考试要求转化为评分点,系统提供了每一个评分点的默认分值,当然老师也可以根据需要进行调整。得到评分点及分值后,再对考生目录中的每一考生文件与评分点进行逐一比较,最后得到每个考生文件的各小题得分及考试总分。

下面以PowerPoint操作题为例,介绍阅卷系统的具体实现。

1)根据教学大纲,设置一个PowerPoint考点的Excel数据表。选择Excel而没有选择专业数据库,这主要是考虑Excel程序的通用性与便捷性,方便日后根据教学要求动态地增删考点。在阅卷程序运行时,首先将PowerPoint考点数据表读入系统,以便后续标准答案与考试素材在考点范围内进行比较。

Dim TestTable As New Excel.Workbook '考点表

Dim SheetNumAs Integer

Set TestTable = GetObject(App.Path&"\考点表\PPT考点表.xlsx")

SheetNum = TestTable.Sheets.Count

2)读取考试素材与标准答案文件后,对其在考点范围内进行比较,将测试要求转化为评分信息。图3是检测插入一个动画和设置幻灯片放映属性的代码实现。其中Slides(i).TimeLine.MainSequence.Item(j)是第i张幻灯片的第j张动画的初始对象,SlideShowSettings是幻灯片放映设置的初始对象,AddTestRecord是当插入一个动画对象时,将动画属性写入评分点信息表中的自定义过程,WriteTestRecord是将在某一个考点标准答案与考试素材的属性值不相同的写入评分信息表。

如在第三张幻灯片中插入一个动画,并设置动画相应属性和幻灯片放映的属性,通过比较得到如图4的评分信息表。

3)读取所有考生目录的PowerPoint文件拟准备进行批处理阅卷。要读取一个目录下的所有文件,需要用得文件系统对象FileSystemObject,通过CreateObject函数建立,GetFolder函数建立文件目录对象,其代码如下:

Set fs = CreateObject("Scripting.FileSystemObject")

Set F = fs.GetFolder(txtExamFolder)

Set fc = F.Files

For Each f1 In fc

Set PPT = GetObject(f1)

Next

4)接着对每一个考生文件对照评分点信息进行逐一比对,检测评分点定位的对象属性值与考生在该点的操作设置值是否相同,如果相同则得分,否则不能得分。由于不同类型的考点,其初始对象不一样,定位信息也不一样,如幻灯片设计只要一个定位信息,即第几张幻灯片,而动画则要两个定位信息,另外还要计算每种类型的不同得分,因此对不同的考试类型要分类处理,如比对幻灯片设计和比对幻灯片动画的代码如下:

Case "设计"

Set OriObj = PPT.Slides(P(0))

StudValue = GetPropertyValue(OriObj, TestGrid.TextMatrix(i, 7)) If StudValue = TestGrid.TextMatrix(i, 5) Then

ScoreTypeStu(4) = ScoreTypeStu(4) + TestGrid.TextMatrix(i, 6)

End If

Case "动画"

Set OriObj = PPT.Slides(P(0)).TimeLine.MainSequence.Item(P(1))

StudValue = GetPropertyValue(OriObj, TestGrid.TextMatrix(i, 7)) If StudValue = TestGrid.TextMatrix(i, 5) Then

ScoreTypeStu(6) = ScoreTypeStu(5) + TestGrid.TextMatrix(i, 6)

End If

阅卷后得到考生成绩表:

5)其中GetPropertyValue是一个自定义的函数,功能是给定一个对象的定位信息与属性代码,通过调用函数获得它的属性值,这是阅卷程序的难点。如第3张幻灯片的第一个动画的样式,其属性代码为:Slides(3).TimeLine.MainSequence.Item(1).EffectType。为什么说要获得它的属性值是程序的难点呢?首先不同的操作项目,属性的层数不同,因此不能用固定循环得到它的值;其次,属性代码中,前面都是对象与子对象,只有最后一个是属性,而对于对象与属性的判断是一样的,所以程序要进行判断哪个是对象与子对象,哪个是属性,如前面的Slides(3)、TimeLine、MainSequence、Item(1),这四个是对象,只有最后一个EffectType才是属性;第三,将写成一个字符串的”对象.子对象.….子象.属性”,要求出它的值,应先将它转化为一个数组,再利用VB中的CallByName函数不断递进,最终求出它的值。其实现代码如图6:

6)为方便教师录入成绩,最后将学生考试的成绩导出为Excel格式文件。其实现代码如下:

Set xlApp = CreateObject("Excel.Application")

Set xlBook = xlApp.Workbooks.Add

Set xlSheet = xlBook.Worksheets(1)

For i = 0 ToScorceGrid.Rows - 1

For j = 0 ToScorceGrid.Cols - 1

xlSheet.Cells(i + 1, j + 1) = ScorceGrid.TextMatrix(i, j)

Next

Next

fPath = txtExamFolder.Text&"\成绩"& Format(Now(), "yyyymmddhhmm") &".xlsx"

xlBook.SaveAsfPath

MsgBox "成绩保存成功!请查看:"&fPath

其中xlApp是Excel程序对象,xlBook是EXCEL工件簿对象,xlSheet是Excel工作表对象,通过一个双重循环将成绩表的数据逐一写入到Excel数据表中,最好将它保存到考生文件夹中。为了更好的识别且保存成绩时不覆盖以前保存的成绩,在成绩表文件名中加入时间信息。

7 结束语

Office中的操作点很多,其对应的属性也是非常的繁杂,要编程解决所有的属性操作,这是不太现实的。在实际操作中,教学组可以根据教学的需要,选择一些常见的、要求学生必须掌握的操作点,然后将这些操作要点输入考点题库建立一个数据表。当然随着教学要求的变化,如需要对学生的某个操作进行测试,只要在考点数据表添加即加,程序本身不需要做什么变动或做很少的变动,这样保证了阅卷系统的开放性。

参考文献:

[1] 陈军民.Office操作题开放式出卷与阅卷系统的研究与实现[J].电脑知识与技术,2015(6).

[2] 陈军民.基于VB6.0将PowerPoint演示文稿转换为Word文档[J].电脑知识与技术, 2011(15).

[3] 罗呈姣.开放式结构操作类自动阅卷系统的设计与实现[D].上海: 华东师范大学, 2007.

[4] 符钰. Office操作题开放式自动阅卷的探索与实践[J].常州信息职业技术学院学报,2012(8).

猜你喜欢

VB程序设计比较法
比较法:立法的视角
浅析VB程序设计教学方法的改革
VB程序设计的教学改革思考
食品专业的《VB程序设计》教学方法探究
基于滞环比较法的光伏最大功率点跟踪控制研究
管窥“浮沉比较法”在脉诊中的应用
比较法在教学中的运用
宪法上的禁止酷刑——比较法角度的考察