基于颗粒度分析的Word测评工具设计
2020-08-26肖英韦家正
肖英 韦家正
摘要:信息技术在教育领域的应用激活了很多新的教学技术手段。Word文字处理软件也需要一种有效的手段协助教学过程中的质量测评工作。该文的Word测评工具是一款面向高职院校计算机应用基础Word部分的教学辅助测评工具,利用VBA读取Word对象和属性,并使用条件判断得到评定结果,通过C#将批量Word文档渎取后将VBA测评算法工程代码写入至Word文档中,最终由C#将VBA评定的成绩发送至系统服务器中。
关键词:Word;VBA;测评工具;计算机应用
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)20-0032-03
1背景
Microsoft Office办公软件的普及程度仍然伴随着信息技术的发展继续着它的辉煌,即使在软件行业蓬勃发展的今天,也没有任何一款办公软件可以完全替代它的江湖地位。时至今日,众多的高校仍将其纳入计算机应用基础的课程标准中,成为课程体系中一门面向全校学生的公共必修课程,是学生们必须掌握的一项基本技能。
Word作为办公软件的组件之一,一直是课程教学过程中的授课重点,其优秀的文字处理功能,成为计算机应用的入门级基础。这门课程的教学质量测评如果只是实施理论考核意义并不大,所以实际中多以学生的操作能力作为主要的考核依据,平时的练习和作业也是围绕着实际应用展开。与此同时,在深化职业教育改革的过程中,课程体系的调整将该门课程的学时进行缩减,但课程教学的目标却进一步提升。高质量的要求,意味着任课教师要加大学生的实操训练;缩减的课时,要求教师必须及时快速地完成练习和作业的批改,才能总结教学效果。尤其是新冠疫情的爆发加速了高校信息化教学方式的改革及实施后,大量课程转战线上教学,或者是开展混合式教学模式,减少了与学生面对面的时间,却为了帮助同学们巩固所学知识将操作练习量进一步增加。只练不改,就不能帮助学生发现自己的问题,也不能让任课教师及时总结调整授课计划。可在学生人数众多的前提下,练习量也增加的情况下怎么及时批改练习,这些问题难倒了想在教学改革上更进一步的老师们。
2设计原理
Microsoft Office办公软件系列是一个相对开放的平台,除了自身强大的办公处理能力之外,微软还专门针对其推出了开发的工具,即通用自动化语言VBA(Visual Basic Application)。VBA是基于VB(Visual Basic的应用技术,利用VBA可以针对特定的应用需求进行OFFICE新的工具开发,一些简单的编码就可以实现烦琐的处理功能,实现文档数据的自动化处理。VBA是一种面向对象的编程语言,语法与VB相同,容易理解和掌握,有一定编程基础的人员都可以较快上手。
C#同样是一款由微软公司发布的面向对象的编程语言,较VBA的工程软件来说,具有更佳的安全性和可靠性,同时它也综合了VB可视化操作的优点,并且有着更好的运行效率。本文的Word软件测评工具将利用VBA读取Word对象和属性进行结果评定,并由C#控制批量Word文档读取及VBA工程写入,最终由C#将成绩发送至网页端。
3测评工具的设计与实现
3.1设计思想
本测评工具是一款面向高职院校Word文字处理软件教学开发的一款测评工具,所以工具的设计开发都是以高职院校现行的课程体系和课程标准进行对接,以达到解决教学改革中的实际问题。
1)Word测评知识框架
Word测评工具的设计前提是测评,测评的内容是需要在软件开发前就先设计好的。针对初学者的考核设计还是以知识点为主,所以测试工具将知识点逐级分割,形成颗粒化的考核点(如图1:Word知识框架)。将知识点颗粒化的好处其实也是便于初学者查找相关内容的,如果是一味强调使用Word完成一个实际完整的案例,比如说“完成一个电子海报”,有可能导致学生所学内容不扎实、不全面。
2)知识点颗粒化
知识点颗粒化的过程是题目设计和相应分数没置的过程,采集到的分数可以更好地为教学质量提供数据依据,这些数据依据也可以为课程标准中的重难点设计提供参考。
本节将以一个Word测评工具中的综合应用案例来说明如何完成知识点颗粒化处理。Word按各大知识点进行了分割后,各个题目中的操作设置参数还要进一步细化。本案例中的题目设置除了考虑到知识点的划分,也同时结合了Word实际操作过程中参数设置的思路(表1:Word综合应用案例没计)。
3.2 VBA测评
对Word知识点的测评主要由VBA工程进行,实施原理也非常简单。下面以“综合应用”案例中的第七大题:表格设置来说明测试方法。图2展示经过题目要求后设置完成的表格样张,后续将说明如何通过VBA来读取相关参数。
步骤一:查找Word文档中是否存在表格,如果不存在,则需要将程序跳转至gg(另行定义),避免程序找不到对象而运行失败。
If ActiveDocument.Tables.Count=0 Then GoTo gg判别是否有表格
步驟二:选定表格,判别表格外边框是否线型为双实线,线宽度为0.5磅,颜色为红色,并根据条件判断向分数赋值。
With Doctab.Borders
If.OutsideLineStyle= wdLineStyleDouble Then scoreArr(7)=2
‘双实线“外框线”
If. OutsideLineWidth=wdLineWidth050pt Then scoreArr(7)=scoreArr(7)+1宽度“1.5磅”
If.OutsideColorlndex=wdRed Then scoreArr(7)=scoreArr(7)+1'颜色为“红色”
End With
步骤三:选定表格,判别表格内边框是否为单实线,线宽度为3磅,颜色为绿色。因为我们提供的表格是非规则表格,所以判别线型等参数需要分别讀取垂直和水平线段的参数设置情况。
With Doctab.Borders(wdBorderVertical)
If .LineStyle= wdLineStyleSingle Then scoreArr(7)=score-Arr(7)+1垂直线型为单实线
If. LineWidth=WdLineWidth300pt Then scoreArr(7)=sCoreArr(7)+1垂直线宽为3磅
If .Color=WdGreen Then scoreArr(7)=sCoreArr(7)+1垂直线颜色为绿色
End With
With Doctab.Borders (wdBorderHorizontal)
……(代码与垂直线段完全一致)
End With
从测评的代码来看,VBA是根据Word设置结果来评定分数的,其判别的属性有些与我们设置的功能一致,有些又需要另行设计。但总体而言,VBA编写的测评代码适应性还是非常良好的,基本可以兼容不同版本的Office。
3.3 0ffice tool文档控件
Word可以通过编写VBA代码实现设置参数的判别功能,但如果测评工具只是嵌入到OffiCe平台中则有很大的风险,虽然VBA提供了工程保护,但极易被破解。如果将测评工具放置在这样不安全的环境中,篡改分数就会变得极其容易。所以为了提高系统运行的安全性,使用C#开发编写的OffiCe tool控件实现批量调用Word文档,并将VBA测评算法程序写入Word文档中,实现批改文档的功能(图3:C#控件工作流程)。
1)类VbaWord实现的核心方法WnteCode代码
面向高校开发的测评工具要满足的一大要求就是批量处理文档,所以首先要设计如何能够将待批改的文档逐一打开——测评——关闭。
2)分数上传系统服务器
class VbaWord
{
public static void WriteCode(Form owner, object strFile,string strCode)
{
Microsoft.Office.Interop.Word.Application app= new Micro-soft.Office.lnterop.Word.Application();
//定义Applicatiom
var document=app. Documents. Open(ref strFile); //打开文档
app.Visible =f'alse;
//隐藏文档
try
{
var thisDocument=document. VBProject. VBComponents.Item(1);//获取VBA工程的ThisDwument对象
this Document. CodeModule.AddFromString(strCode);//把VBA代码写入ThisDocument对象
app. Run(" CommandButtonI_Clit:k");//运行CommandBut-tonl_Click方法
}
catch (Exception e)
{
MessageBox.Show(owner, e.ToString0);,//显示异常错误
return;
}
document.Close (ref missing);//关闭文档
app.QuitO;//释放Application
document= null;
app= null;
GC.Collect();//垃圾回收
}
}
将测评中的各项得分和总分,通过调用网络地址接口,将数据上传到系统服务器,在系统服务器中渎取最终结果。
private void btnWord_Click(object sender. EventArgs e)
{
if(txtDocPath.Text.Length<1)
{
MessageBox. Show("请输入要批改文档所在路径");
return;
}
var strHostName= txtHost.Text;
var strDocPath= txtDocPath.Text;
if(string.IsNullOrEmpty(strDocPath))retum;
var arrFile= Directory.GetFiles(strDocPath, "*.docx".SearchOption.TopDirectoryOnly);
if(arrFile.Length<1)return;
string strVBAScript=txtVBAScript. Text+"\r\n"+VbaParaWord. GetCommonVbaScript(strHostName);
progressBarX1.Visible= true;
foreach(var file in arrFile)
{
if(file.lndexOf'('~')>-1) continue;
var fileName= Path.GetFileNameWithoutExtension(file);
//提取學号
string strStuNo= SYstem.Text.RegularExpressions.Regex.ReplaCe(fileName.@”[^0-9]+”,"");
VbaWord.WriteCode(this.f'ile,strVBAScript);
txtLog.AppendText(">["+DateTime.Now.ToString("yyyy—MM-dd HH: mm: ss")+”]成功批改文档:"+Path.GetFileName(file)+”\r\n");
txtLog.ScrollToCaret();
}
progressBarX1.Visible= false;
}
4测评工具的运行与调试
测评工具的开发过程是可以相对独立的,即VBA测评部分和C#编程部分。为了保证Word测评工具运行的稳定性,调试环节VBA要解决的是Word测评对象中属性和方法的正误,VBA测试就可以利用Microsoft Office办公软件白带的开发工具进行测试。
4.1利用MsgBox工具显示测评结果
Msgbox(Message Box)是VBA中的一个函数,功能是弹出一个信息对话框,待用户单击“确定”按钮后,继续或结束程序运行。VBA测评部分将利用Msgbox返回测评信息(图4:Msg-box显示测评结果),帮助测试人员查找测评对象属性的准确性。
4.2 0ffice tool工具
使用C#编写开发的OffiCe tool工具(如图5:OffiCe tool工具界面)是本测评工具的一个重要组成部分,完成Word文档的批量读取,将VBA测评算法写入Word文档中,并将VBA测评所得分值上传至系统服务器中。
为了便于测试而开发的Office tool工具可以进行适应性更好的训练,在后期针对EXCEL、PPT等MiCrosoft Office系统软件也会有同样的功能。
5结束语
Word测评工具是一款服务于高职院校计算机应用基础课程的教学辅助工具,它的设计紧贴实际教学、服务教学,也为教学质量测评提供了客观的数据依据。测评工具还具有很强的拓展性,可以将ExCel和PPT纳入本工具中,共同构成Office软件测评系统。
参考文献:
[1]李圆.基于VBA对Office二次开发的可移植性研究[J].电子世界,2014(12):67-68.
[2]桑银邦,王成良.XML数据交换在Office二次开发中的应用[J].计算机工程,2010,22(36):78-80.
[3]汪璟.Office操作题的自动阅卷分析[J.长春教育学院学报,2013,29(18):76-77.
[4]刘冰.基于VBA的Word自动阅卷系统设计与实现[J].软件导刊,2017(9): 134-137.
[5]尹云霞.教学质量测评与数据分析系统的设计与实现[J].新技术新工艺,2017(3): 14-16.
【通联编辑:谢媛媛】
收稿日期:2020-05-08
基金项目:2019年度广西高校中青年教师科研基础能力提升项目:计算机基础技能交互练习测评系统的设计与实现(项目编号:2019KY1348);2019年度广西高校中青年教师科研基础能力提升项目(项目编号:2019KY1346)
作者简介:肖英(1982-),女,湖南湘乡人,讲师,工程师,硕士,研究方向为控制科学与技术、计算机应用;韦家正(1985-),男,广西南宁人,讲师,工程师,硕士,研究方向为嵌入式技术、应用电子技术。