CN104050610A - 一种Office阅卷组件 - Google Patents
一种Office阅卷组件 Download PDFInfo
- Publication number
- CN104050610A CN104050610A CN201410255070.1A CN201410255070A CN104050610A CN 104050610 A CN104050610 A CN 104050610A CN 201410255070 A CN201410255070 A CN 201410255070A CN 104050610 A CN104050610 A CN 104050610A
- Authority
- CN
- China
- Prior art keywords
- data
- serializing
- examination papers
- over examination
- entity object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了Office阅卷组件设计方案,首先生成系列化数据或检测点数据;将系列化数据或检测点数据转换为实体对象数据;打开文档,读取转换后的实体对象数据;根据实体对象数据信息,读取文档改卷点数据;如果提供的是检测点数据,则进行步骤6的生成标准答案操作,如果提供的是系列化数据,则进行步骤7的改卷操作;根据文档改卷点信息修改实体对象数据,再将实体对象数据转换为序列化数据作为标准答案返回,系统结束。将实体对象数据和文档改卷点数据进行比较,如果相同则认为操作正确,得分。本发明的有益效果是自动阅卷的操作封装为组件、同时实现根据样文自动生成阅卷数据。
Description
技术领域
本发明涉及Office应用技术领域,特别涉及一种Office阅卷组件。
背景技术
Office阅卷系统主流的研究方案是通过引用Office相关组件,利用VBA技术提取Office文档信息和标准答案比较实现自动阅卷。但现有的阅卷方案普遍只针对单一系统开发,如果使用传统的阅卷方案,则多个系统的开发不可避免的出现重复编码,而且现有方案在录入答案信息时费时费力、容易出错。本方案将自动阅卷的操作封装为组件,通过中立性接口,灵活地结合应用程序,组成新软件实现不同需要的自动阅卷。组件内部不含任何界面和数据库操作,不同的阅卷系统可以使用不同风格的操作界面,也可以使用任何的一种数据库,在录入答案方面,可通过自动生成阅卷数据,并保存在数据库中,提高答案录入效率。
Office阅卷现有技术方案存在两个比较大的缺点,一是没有将阅卷功能进行封装,使之能够被不同的应用程序调用,或者采用紧耦合方式,在封装阅卷功能的同时将界面和数据库操作也进行了封装。二是不能够根据样文(即教师完成的具有标准答案性质的Office文档)自动生成阅卷数据,而是通过界面手工输入标准答案,界面设计复杂、手工录入费时费力、容易出错。
发明内容
本发明的目的在于提供Office阅卷组件设计方案,解决了现有没有将阅卷组件进行封装、不能够根据样文自动生成阅卷数据的问题。
本发明所采用的技术方案是按照以下步骤进行:
步骤1:生成系列化数据或检测点数据;
步骤2:将系列化数据或检测点数据转换为实体对象数据;
步骤3:打开文档,读取转换后的实体对象数据;
步骤4:根据实体对象数据信息,读取文档改卷点数据;
步骤5:如果提供的是检测点数据,则进行步骤6的生成标准答案操作,如果提供的是系列化数据,则进行步骤7的改卷操作;
步骤6:根据文档改卷点信息修改实体对象数据,再将实体对象数据转换为序列化数据作为标准答案返回,系统结束。
步骤7:将实体对象数据(即标准答案)和文档改卷点数据进行比较,如果相同则认为操作正确,得分。
进一步,检测点数据、系列化数据的生成过程为:
步骤1:检验是否已存在系列化数据;
步骤2:存在序列化数据时,系列化数据转换为Item属性,根据Item属性和阅卷信息表数据动态生成界面,然后进行步骤5及之后的操作;
步骤3:不存在序列化数据时,如果不添加评分记录则系统结束,如果添加记录则进行步骤4及之后的操作;
步骤4:根据阅卷信息表数据动态生成界面;
步骤5;根据界面选择类型、输入信息点得分和相关参数;
步骤6:如果继续添加评分记录,则重复执行步骤4和步骤5,如果信息输入完成则进行步骤7及之后的操作;
步骤7:根据用户输入信息生成Item属性;
步骤8:将Item属性转换为检测点数据;
步骤9:调用组件打开样文生成带答案信息的系列化数据;
步骤10:对步骤9中的系列化数据,不测试得分时直接保存至数据库中作为标准答案;测试得分时,调用组件打开样文和空白文件分别返回得分,当评分结果不正确时,跳转至步骤5,当评分结果正确时,将数据保存至数据库中作为标准答案。
本发明的有益效果是自动阅卷的操作封装为组件、同时实现根据样文自动生成阅卷数据。
附图说明
图1是本发明一种Office阅卷组件的阅卷组件、应用程序、Office文档关系图示意图;
图2是本发明阅卷组件实体类图;
图3是本发明打分操作活动图;
图4是本发明考试系统阅卷数据库关系图;
图5是本发明自动生成阅卷信息程序截图;
图6是本发明标准答案生成流程图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
如图3所示,本发明所采用的技术方案是按照以下步骤进行:
步骤1:生成系列化数据或检测点数据;
步骤2:将系列化数据或检测点数据转换为实体对象数据;
步骤3:打开文档,读取转换后的实体对象数据;
步骤4:根据实体对象数据信息,读取文档改卷点数据;
步骤5:如果提供的是检测点数据,则进行步骤6的生成标准答案操作,如果提供的是系列化数据,则进行步骤7的改卷操作;
步骤6:根据文档改卷点信息修改实体对象数据,再将实体对象数据转换为序列化数据作为标准答案返回,系统结束。
步骤7:将实体对象数据(即标准答案)和文档改卷点数据进行比较,如果相同则认为操作正确,得分。
进一步,如图6所示,检测点数据、系列化数据的生成过程为:
步骤1:检验是否已存在系列化数据;
步骤2:存在序列化数据时,系列化数据转换为Item属性,根据Item属性和阅卷信息表数据动态生成界面,然后进行步骤5及之后的操作;
步骤3:不存在序列化数据时,如果不添加评分记录则系统结束,如果添加记录则进行步骤4及之后的操作;
步骤4:根据阅卷信息表数据动态生成界面;
步骤5;根据界面选择类型、输入信息点得分和相关参数;
步骤6:如果继续添加评分记录,则重复执行步骤4和步骤5,如果信息输入完成则进行步骤7及之后的操作;
步骤7:根据用户输入信息生成Item属性;
步骤8:将Item属性转换为检测点数据;
步骤9:调用组件打开样文生成带答案信息的系列化数据;
步骤10:对步骤9中的系列化数据,不测试得分时直接保存至数据库中作为标准答案;测试得分时,调用组件打开样文和空白文件分别返回得分,当评分结果不正确时,跳转至步骤5,当评分结果正确时,将数据保存至数据库中作为标准答案。
阅卷组件实现的主要功能有两个。一是Office文档评分,即将考生完成的Office文档(以下简称考生文档)和标准答案进行比较,实现对Office文档的评分;二是标准答案生成,即从教师完成的具有标准答案性质的Office文档(以下简称样文)提取信息作为标准答案。
阅卷组件的总体设计目标是在不同的应用程序和Office文档之间,开发出一个提供自动阅卷服务的组件。它适用于不同的开发模式、不同的程序设计语言和不同的数据库管理系统。阅卷组件和应用程序、Office文档的关系,如图1所示。
阅卷组件实现Office文档评分和标准答案生成两大功能。本系统通过.NET“类库”功能开发阅卷组件,最终生成动态链接库(DLL)文件,并通过COM接口,生成COM文件实现其他程序语言对.NET的DLL的调用。
阅卷组件的主要工作流程是通过VBA技术调用Word、Excel、PowerPoint的COM组件的不同对象和属性,达到自动阅卷和答案录入的目的。
阅卷组件采取内外有别的一种设计方案。在内部设计方面,将每种文档的所有对象定义为一个实体类,通过类型(ClassNo)属性,识别不同的对象。系统内部采用实体类封装操作数据,操作类操作实体类的模式实现阅卷服务。在对外接口方面,将实体类数据进行自定义序列化,生成阅卷字符串序列,采用中立的方式定义对外接口,使之独立于编程语言和数据库管理系统,为不同的应用程序提供阅卷服务。这种方案避免了安全性、界面封装、重复定位等问题,同时多答案、多定位的处理都比较容易。
为了保证在后期设计中对外接口始终保持不变。本系统设计了三个实体类:Word类、Excel类、PowerPoint类,通过classNo属性区分不同的操作对象,不同对象的操作点属性名使用统一名称,如第m个操作点属性用x[m]。由于三个实体类有不少属性是相同的,因此设计一个classData类为父类,然后通过继承生成Word类、Excel类、PowerPoint类。在classData类的基础上构造Office文档阅卷数据实体类OfficeMarkDate,OfficeMarkDate类由文件名相关属性和若干个classData实例组成。每个OfficeMarkDate类实例对应于一个Office文档的全部阅卷信息。不同实体类关系图如图2所示。
实体类图属性说明:score:操作实例总得分;err:错误信息;arg0、arg1:特殊参数、特殊参数用于特殊阅卷信息的输入;location:阅卷点地点(位置);Sheetn:工作表序号;Address:单元格地址或范围;SlideNo:幻灯片序号;Position:对象序号;n[m]:第m个操作点分值;Path:Office文档路径;FileName:Office文档文件名;OfficeType:Office文档类型;Item[m]:第m个classData类实例,Count:classData类实例个数。
classData类实例每个对象的每个属性都对应于一种特殊的含义,利用classData类实例的数据进行阅卷评分并不需要了解各个属性的含义,然而要完成标准答案信息的生成,必须了解每个属性的含义。在本系统中,各个属性的含义以表格的形式进行存储,其中Excel阅卷信息表的部分内容如表1所示。根据阅卷组件开发具有自动生成标准答案功能的系统,需要先将阅卷数据表导入到DBMS中。
表1
每个classData类实例根据ClassNo属性,分别在组件中编写不同的方法实现该实例的阅卷处理。例如Excel要实现数据有效性的自动阅卷,可以编写DataValidity方法,该方法有两个输入参数:一个是利用VBA打开Excel文档后的对象名、另一个是classExcel实例。当系统检验classExcel实例的ClassNo属性为2时,则调用该方法实现阅卷处理,在DataValidity方法中首先根据classExcel实例的Sheetn和Address属性进行阅卷对象的定位,如果定位成功则返回单元格区域对象(Range对象),然后检验x[0](有效性类型)是否有空,如果不为空则将Range对象的相应属性(Range对象.Validation.Type)和x[0]的值进行比较,如果相同则认为正确,则Score属性在原来基础上加上n[0](评分),然后不管是否相同都将x[0]赋值为Range对象的相应属性(生成答案),然后依次检验x[1]、x[2]……等。
为了统一对每个ClassNo分类的阅卷方法进行管理,系统设计了操作类,目的是对实体类进行操作。由Word操作类、Excel操作类、PowerPoint操作类组成,由于三者的设计方法相似,本文只以Word操作类为例进行介绍。
Word操作类用于对考生文档进行评分和标准答案的生成、检验。由于标准答案的生成只需在评分的基础上增加少数语句就可实现,而且这些语句的执行对性能几乎无影响,为了提高编写代码的效率,系统在设计时,评分和标准答案的生成、检验通过同一个操作来实现,该操作用活动图表示,如图3所示。
操作类操作对象为OfficeMarkDate类实例,首先根据实例的文件名属性利用VBA打开相应文档,然后遍历Item属性的每个元素(一个元素对应于一个classData类实例),根据每个Item元素的classNo属性值,调用不同的阅卷方法实现阅卷处理。操作类返回值为OfficeMarkDate类实例,其中该实例Item属性所有元素的Score属性之和为该题总得分,而Item属性每个元素的x[0]、x[1]……为返回的标准答案信息。
本系统内部采用面向对象方法构建自动阅卷服务,但为了使不同的应用程序都能利用服务,在对外接口上需要对实体类数据进行序列化,以实现外部应用程序和阅卷组件的联系松耦合。本系统中采取自定义序列的方法。
系列化是将OfficeMarkDate类实例的Item属性(由若干ClassDate类实例组成)转换为字符串。例如检验隶书20号新建样式,并将新建样式应用到文档第3段,每个操作点1分。实体类数据如表2所示阅卷点实体类数据(省略了非阅卷属性)。经过系列化结果为:ClassNo11||x0,新建||1||x1,隶书||1||x4,20||1||<split>Location3||ClassNo1||x29,新建||1||。
表2
本系统以系列化的数据作为接口,外部应用程序只需要传递系列化的数据,不需要了解阅卷组件的实现过程就可以实现阅卷。在组件内部,将数据反序系列化,形成实体类数据,利用内部功能实现阅卷。手工输入阅卷数据容易出错,系统通过对外接口,提供检测点生成阅卷数据功能。例如要生成上述样式的阅卷数据,检测点数据输入ClassNo11||arg0新建||x0||1||x1||1||x4||1||<split>Location3||ClassNo1||x29||1||,然后系统就可以自动从样文中获取隶书等信息,生成阅卷数据。
组件内部提供4个方法用于系列化数据、检测点数据和OfficeMarkDate类实例的Item属性的相互转换。其中SeriesToMarkDate将系列化数据转换为Item属性,MarkDateToSeries将Item属性转换为系列化数据、DetectSeriesToMarkDate将检测点数据转换为Item属性、MarkDateToDetectSeries将Item属性转换为检测点数据,外部程序需要时可以直接调用。
本系统利用.NET“类库”开发阅卷组件,最终生成动态链接库(DLL)文件,.NET平台生成的DLL是基于MSIL的二进制代码,通常情况下是无法被.NET平台外的语言和程序调用的,但通过.NET平台提供的一些工具,可以将DLL伪造一个COM接口并注册到系统中。此时,可以在.NET平台外的程序里,通过这个伪COM接口来实现此.NET的DLL的调用。
阅卷组件结果形式由DLL文件、COM文件和阅卷信息表组成,其中DLL文件适合.NET平台应用程序调用,而COM文件适用于其他平台应用程序调用。
阅卷组件的开发,目的是让开发人员利用该组件在不同的应用程序中快速实现Office文档的自动改卷。
.NET程序员只需引用本组件的DLL文件,然后声明阅卷类(类名为Mark)的一个实例,再调用该实例的Word、Excel、PowerPoint阅卷方法就可以实现阅卷处理。例如在C#中输入以下代码就可以实现Word文档的自动阅卷或返回阅卷答案信息,其中path为文件路径、filename为Word文件名、series为系列化数据或检测点数据、n为该题阅卷后总得分,如果用户输入的series参数是检测点数据(系统根据输入格式自动判断是系列化数据还是检测点数据)则series参数返回带有答案信息的系列化数据,如果输入的是系列化数据则返回包含每个知识点得分的系列化数据。
Mark mk=new Mark();
n=mk.WordMark(path,filename,ref series);
其他语言的程序员可通过本组件的COM文件(文件名为ComMark.Mark)调用本组件,例如使用JavaScript实现自动阅卷可以输入。
var mk=new ActiveXObject("ComMark.Mark");
n=mk.WordMark(path,filename,series);
阅卷组件内部没有进行任何数据库操作,但提倡外部应用程序通过数据库存储阅卷数据,即提供一个字段存储阅卷系列化数据,至于使用何种数据库、数据库的具体结构如何完全由外部程序员决定。图4为我院考试系统数据库关系图(省略了与阅卷无关的表及字段)。关系图中MarkSeries为阅卷系列化数据、Filename为文件名。
这种设计方法,由于阅卷数据保存在一个字段中,因此不必为每个试题编写阅卷程序段,也不需要将Office对象都定义成一张数据表,阅卷时也不需要打开样文。
在数据库中存储阅卷系列化数据之后,建立基于组件的自动阅卷程序,只需利用组件内部功能打开考生文档,返回评分信息并保存到数据库就可以完成。我院考试系统返回某道Office文档得分的代码如下所示(dr为Mark表的某条记录):
建立基于组件的自动生成阅卷数据程序基本设计流程如下:
根据阅卷信息表数据动态生成文本框等用户界面,用户选择考核点、输入考核点分数和相关参数,生成检测点数据,根据检测点数据调用组件,读取样文生成阅卷序列化数据并保存到数据库。图5为我院Office阅卷数据生成程序部分截图,界面中的阅卷信息通过读取数据库中的数据自动生成,每个评分记录对应OfficeMarkDate类实例的Item属性的一个元素,文本框输入的内容为知识点得分。该程序基本流程用活动图表示如图6所示。
和阅卷标准语言生成器通过手工输入标准答案的方法相比较,这种方法操作效率高、正确率高,所有类型操作都可以采用统一界面进行设计,简化了界面设计的过程。
本系统自动阅卷功能主要通过组件内部功能完成,外部应用程序只要编写少量代码就可以实现自动阅卷,外部应用程序和组件的关系为松耦合,当组件升级时,由于接口未变,外部应用程序不需要修改就可以实现阅卷功能的扩充。和紧耦合的阅卷方案相比较,通用性和可移植性都更高。
本方案目的是将自动阅卷的操作封装为组件,为多个需要实现自动阅卷功能的系统提供服务,不同的系统通过服务可以快速实现Office操作题的自动阅卷,同时实现根据样文自动生成阅卷数据,并保存在数据库中,提高答案录入效率。
Claims (2)
1.一种Office阅卷组件,其特征在于按照以下步骤进行:
步骤1:生成系列化数据或检测点数据;
步骤2:将系列化数据或检测点数据转换为实体对象数据;
步骤3:打开文档,读取转换后的实体对象数据;
步骤4:根据实体对象数据信息,读取文档改卷点数据;
步骤5:如果提供的是检测点数据,则进行步骤6的生成标准答案操作,如果提供的是系列化数据,则进行步骤7的改卷操作;
步骤6:根据文档改卷点信息修改实体对象数据,再将实体对象数据转换为序列化数据作为标准答案返回,系统结束;
步骤7:将实体对象数据和文档改卷点数据进行比较,如果相同则认为操作正确,得分。
2.按照权利要求1所述一种Office阅卷组件,其特征在于:所述步骤1检测点数据、系列化数据的生成过程为:
步骤1:检验是否已存在系列化数据;
步骤2:存在序列化数据时,系列化数据转换为Item属性,根据Item属性和阅卷信息表数据动态生成界面,然后进行步骤5及之后的操作;
步骤3:不存在序列化数据时,如果不添加评分记录则系统结束,如果添加记录则进行步骤4及之后的操作;
步骤4:根据阅卷信息表数据动态生成界面;
步骤5;根据界面选择类型、输入信息点得分和相关参数;
步骤6:如果继续添加评分记录,则重复执行步骤4和步骤5,如果信息输入完成则进行步骤7及之后的操作;
步骤7:根据用户输入信息生成Item属性;
步骤8:将Item属性转换为检测点数据;
步骤9:调用组件打开样文生成带答案信息的系列化数据;
步骤10:对步骤9中的系列化数据,不测试得分时直接保存至数据库中作为标准答案;测试得分时,调用组件打开样文和空白文件分别返回得分,当评分结果不正确时,跳转至步骤5,当评分结果正确时,将数据保存至数据库中作为标准答案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410255070.1A CN104050610A (zh) | 2014-06-10 | 2014-06-10 | 一种Office阅卷组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410255070.1A CN104050610A (zh) | 2014-06-10 | 2014-06-10 | 一种Office阅卷组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104050610A true CN104050610A (zh) | 2014-09-17 |
Family
ID=51503406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410255070.1A Pending CN104050610A (zh) | 2014-06-10 | 2014-06-10 | 一种Office阅卷组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104050610A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065325A (zh) * | 2021-02-26 | 2021-07-02 | 成都环宇知了科技有限公司 | 一种基于OpenXml的Excel文档分析方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136453A (zh) * | 2013-03-25 | 2013-06-05 | 华北电力大学(保定) | 文档操作题的自动组卷方法和自动阅卷方法 |
US20130304710A1 (en) * | 2010-07-26 | 2013-11-14 | Ucl Business Plc | Method and system for anomaly detection in data sets |
CN103778488A (zh) * | 2012-10-18 | 2014-05-07 | 广州城市职业学院 | 一种考核系统 |
-
2014
- 2014-06-10 CN CN201410255070.1A patent/CN104050610A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130304710A1 (en) * | 2010-07-26 | 2013-11-14 | Ucl Business Plc | Method and system for anomaly detection in data sets |
CN103778488A (zh) * | 2012-10-18 | 2014-05-07 | 广州城市职业学院 | 一种考核系统 |
CN103136453A (zh) * | 2013-03-25 | 2013-06-05 | 华北电力大学(保定) | 文档操作题的自动组卷方法和自动阅卷方法 |
Non-Patent Citations (1)
Title |
---|
陈永松: "Office操作题自动阅卷组件设计", 《实验室研究与探索》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065325A (zh) * | 2021-02-26 | 2021-07-02 | 成都环宇知了科技有限公司 | 一种基于OpenXml的Excel文档分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Halpin et al. | Data modeling in UML and ORM: a comparison | |
Pérez-Hurtado et al. | MeCoSim: A general purpose software tool for simulating biological phenomena by means of P Systems | |
Pauliuk et al. | Lifting industrial ecology modeling to a new level of quality and transparency: a call for more transparent publications and a collaborative open source software framework | |
Magnaguagno et al. | Web planner: A tool to develop classical planning domains and visualize heuristic state-space search | |
Troya et al. | Automated inference of likely metamorphic relations for model transformations | |
Erwig et al. | Automatic generation and maintenance of correct spreadsheets | |
Scheller et al. | Increasing the reliability of ecological models using modern software engineering techniques | |
CN104035873A (zh) | 测试代码生成方法及生成装置 | |
Shigarov et al. | TabbyXL: Software platform for rule-based spreadsheet data extraction and transformation | |
Ozik et al. | The ReLogo agent-based modeling language | |
Khwaja et al. | Syntax-directed editing environments: Issues and features | |
Borovits et al. | FindICI: Using machine learning to detect linguistic inconsistencies between code and natural language descriptions in infrastructure-as-code | |
Seifermann et al. | Survey on textual notations for the unified modeling language | |
Chakraborty et al. | A compiler‐based toolkit to teach and learn finite automata | |
US20120089546A1 (en) | Methods and systems for automated survey script authoring and programming | |
Miranda et al. | Domain‐specific language for automatic generation of UML models | |
Kniesel et al. | DPDX--Towards a Common Result Exchange Format for Design Pattern Detection Tools | |
CN104050610A (zh) | 一种Office阅卷组件 | |
CN105786787A (zh) | 基于Java的高效PDF报表测试方法 | |
Vörös et al. | PetriDotNet 1.5: Extensible Petri net editor and analyser for education and research | |
Rouane-Hacene et al. | Refactoring of ontologies: Improving the design of ontological models with concept analysis | |
Arcega et al. | Feature location through the combination of run-time architecture models and information retrieval | |
Liu | Integrating process mining with discrete-event simulation modeling | |
Garn et al. | Applying Pairwise Combinatorial Testing to Large Language Model Testing | |
CN103440399A (zh) | 一种调查数据电子化采集系统及其实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140917 |
|
RJ01 | Rejection of invention patent application after publication |