万钦++丁旭光
摘要:随着信息技术的不断普及,Office办公软件应用越来越广泛,Office办公软件的操作技能成为教学中的重难点。因此在教学过程中能根据教学需要自行出题,设置考查点与分值,对学生进行测试,是急需解决的问题。该文将对word操作题开放式出卷与阅卷系统的设计原理进行研究,并论述利用VB开发出一个能够由教师自行出题、并根据教学要求设置考查点与对应分值进行开放式出卷与阅卷系统的实现。
关键词:Office操作题;开放式阅卷;VB程序设计;Word
中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2015)25-0094-02
越来越多的用人单位开始注重毕业学生Office办公软件的操作能力。计算机等级考试成为高职院校所有学生能取得相关证书并获得相应操作能力。在等级考试中,操作题是自动阅卷的,由于等级考试系统是完全封闭的,教师不能根据教学过程中的需要自行设置考查点与参考分值。信息技术发展迅猛,教学内容也千变万化,如果对学生操作能力测试仍然采用手工批改方式的话,势必会造成教师的工作量增大。研究与实现符合自身教学的《Office操作题开放式出卷与阅卷系统》就成为了本文所要讨论的重要内容。
1 Word开放式阅卷程序的基本思想
开放式出卷与阅卷系统是教师能根据教学的需要,能自行将学生必须掌握的操作点作为考点题库进行测试与评分。首先可以将教师本人所做的标答文档与素材文档在考点范围内进行对比,从而得到学生测试文档的评分点与分值,紧接着再用评分点对学生的测试文档进行逐一比较,正确加分,否则不得分。
开放式阅卷程序的所使用的就是比较法。程序实现之前应先读入一个用操作要点所建立的考点题库数据表,并将标答与考生测试文档在这个数据表的考点范围内进行对比,随着教学需求的改变,只要在考点数据表中添加这个操作,学生就能进行测试,从而保证了系统的开放性。
2 Word开放式阅卷程序的基本数据流程
开始输入考试素材与标答文档(是依据考试内容要求事先做好的),标答文档中的考试要求也一定是在考点数据表内考点项目,之后对输入的两文档在考点范围内进行对比,与此同时必须读入考点数据表,否则将无法对比。这是第一次对比。通过对比,能将考试要求转化为评分点,对每一个评分点都提供了默认的分值,同样教师也能根据需要,调整该测试点的分值。此外系统还提供了删除评分点。得到评分点及分值后,就可以输入考生目录,对目录中的所有考生文件与评分点进行一一对比,最后得到每个学生文件的各小题得分及考试总分。其数据流程图如图1:
3 Word考点数据表
在常规教学中,Word操作分为五大类:页面布局、段落格式、文字样式、图像处理与形状操作。在实际工作中,可以使用预先做好的Excel表格代替Word的表格制作,然后复制过去就可。所以可以不用另行对表格操作进行测试。
为了更好地适应程序,考点数据表采用了Excel表格,由于考点数据表中的内容是动态的,因此在增加与删除考点的同时会比其他数据库操作来的简便。
考点数据表中按照Word五大类操作分别对应五张工作表,每张表的项目名称为:考点编号、测试项目、定位单元、分值、属性代码。
部分考点数据表如图2所示。
4 阅卷系统模块实现
首先输入考试素材与标准答案的文件路径,拟对这两个文件进行比较。为方便用户操作,除了可以直接输入文件路径外,还提供了对话框选择的方法与文件拖放的方法。
对话框选择的方法需要首先在窗口模块中添加一个通用对话框控件CommonDialog1,调用CommonDialog1的ShowOpen方法,弹出一个文件窗口,供用户选择文件,然后再将用户选择的文件路径赋值给文本框。其实现代码如下:
Private Sub Command3_Click() '得到考试素材
CommonDialog1.ShowOpen
txtExamMaterial = CommonDialog1.FileName
End Sub
得到标准答案和后面得到考试目录的实现方法类似。唯一不同,考试目录只要得到文件的目录,而不要其中的文件名,所以这里就要用VB的函数进行处理,基实现代码如下:
txtExamFolder = Mid(CommonDialog1.FileName, 1, InStrRev(CommonDialog1.FileName, "\") - 1)
输入了考试素材与标准答案的文件路径之后,就开始对这两个文件进行比较。这是程序的核心。
首先应判断是否输入了考试素材与标准答案的文件路径,以及文件类型是否是Word文档,如果没有输入,或文件类型不同,应返回进行重新输入。
建立Document对象,并激活。
Set ExamMaterial = GetObject(txtExamMaterial.Text)
ExamMaterial.Activate
第三,分类型设置初始对象,调用写入评分点信息。如“页面设置”,其代码如下所示:
页面设置"
Set StaOriObj=StandAnswer.PageSetup
Set ExamOriObj=ExamMaterial.PageSetup
WriteTestRecord 1, StaOriObj,ExamOriObj,1
由于页面设置只测试整篇文档,所以不必循环。而对于段落设置、文字设置、图形操作、形状操作一般都用多个元素,因此在这些考试类型中应进行循环,其中对于图像操作还应考虑是否要先插入图像或形状,所以要进行一个判断。
第四,WriteTestRecord是写入评分点信息的通用过程,包括四个参数,SheetIndex:对应考点数据表的索引号;StaOriObj:标准答案的初始对象;ExamOriObj:考试素材的初始对象;PostPoint:评分点的测试位置;对于页面设置只测试整篇文档,测试位置为1,对于考试类型则应进行循环检测。其代码如下:
StandAnswerValue=GetPropertyValue(StaOriObj,TestProperty)
ExamMaterialValue=GetPropertyValue(ExamOriObj,TestProperty)
第五,GetPropertyValue是根据评分点的对象及属性调用其对应的属性值,然后对标准答案与考试素材的对应对象的属性值进行比较,如果这两个值不相同,则说明这一个评分点,应写入评分点表中。
第六,显示评分点信息采用MSFlexGrid控件。本程序采用与文本框控件结合的方法。每次当用户想编辑某个单元格,就调整这个文本框与MSFlexGrid控件的单元格的大小和位置重合,然后读取单元格数据到文本框,文本框的数据编辑以后,再写入到这个单元格,从而达到了MSFlexGrid控件单元格的编辑功能。
第七,为了方便教师调整分值和后续学生考试文件得分进行比较,程序首先应统计评分点各小题分值与总分。其实现代码如图3所示:
第八,读入考生目录的所有Word文件,对每个文件进行循环评分,得到每类型的小题得分及总分,并显示出来。如“页面设置”,其程序代码如下:
Case "页面设置"
Set OriObj = DOC.PageSetup
StudValue = GetPropertyValue(OriObj, TestGrid.TextMatrix(i,7))
If StudValue= TestGrid.TextMatrix(i,5) Then
ScoreTypeStu(1) = ScoreTypeStu(1) + TestGrid.TextMatrix(i,6)
End If
第九,为方便教师录入成绩,最终应将学生的成绩导出为Excel格式文件。
第十,程序运行界面如图4所示:
5 结束语
由于Word对象库及应用操作十分复杂,在实际应用开发时涉及的问题也非常繁琐,本系统仅能对一些常用的、结构化的考点进行测试。但同时为了保证系统的开放性,即当教学要求发生变化时,系统维护人员只需要在考点数据表中增加其考点信息即可。
参考文献:
[1] 陈军民.浅析利用VB6.0将Access数据表转换为Word文档[J].电脑知识与技术,2010(6): 6407-6408.
[2] 陈军民.基于VB6.0将PowerPoint演示文稿转换为Word文档[J].电脑知识与技术, 2011(15): 3549-3550.
[3] 罗呈姣.开放式结构操作类自动阅卷系统的设计与实现[D].上海: 华东师范大学, 2007(5).