Access作业自动批改系统开发研究
2018-05-09童映红
童映红,张 玲
(1.福建省南平职业中专学校,福建 南平 353000;2.武夷学院,福建 武夷山 354300)
随着我国计算机等级考试人数逐年增加,对于考生的培训工作要求也越来越重。传统的人工批改方式,需要投入大量的人力物力。随着教育机构对信息系统的建设力度提高,目前各大教育机构硬件越来越齐全,越来越先进,为试卷自动批改系统的建设提供了硬件基础。
为了能够减轻教师们批改作业时的负担,让教育机构能够提高效率。对于Access数据库复杂的批改过程让人耗时费力,设计一款能够半自动或者自动批改作业的系统显得意义重大。解决批改Access数据库作业的难题,此次设计目的是能够快速大批量地批改作业,省去教师枯燥乏味的重复动作。经过一次设置批改过程,能够多次重复批改相同的题目。
1 相关开发软件及技术介绍
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的一种高级程序设计语言。它继承了C和C++强大功能的同时,还去掉了一些它们原本存在的复杂特性(例如没有宏以及不允许多重继承)。
对象连接与嵌入(Object Linking and Embedding,OLE)不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为组件对象模型(Component Object Model,COM)。
Access中的OLE对象数据类型主要用于将某个对象链接嵌入到Access数据库中,OLE对象字段最大可为1 GB(受磁盘空间的限制)[1]。Access是一款数据库应用的开发工具软件,其开发对象主要是Microsoft JET数据库和Microsoft SQLServer数据库。通过对比Access数据库与SQL数据库可以发现,Access数据库是小型关系数据库,适合相对数据量小的应用,在处理少量数据和单机访问的数据库时,会比SQL数据库更好,效率更高。Access数据库的优点就是:操作灵活、转移方便、运行环境简单[2]。
2 总体设计
系统总体框架如图1所示。
图1 系统总体框架
本次设计的目的是编写一个通用型的Access数据库评分系统,能够使大部分人自由使用。基于这个目的,来构建一个语法,这个语法能够被计算机快速解析,并能让人容易看懂,缩短人与计算机之间的鸿沟。对于计算机语言来说,函数这个概念应该是计算机教师都能理解的,因此受到启发,采用函数这个概念来设计构造评分语法。
评分语法解析是为了让计算机和操作人员能够简单快速地分析评分语法的内容。这跟语法构造是息息相关的,正是因为在构造语法时能够考虑到人与计算机之间的差距,构造时采用简单并固定格式的评分语句,在解析过程中才能被轻易地理解其含有的内容。
功能层的意义就在于,针对语法构造中构造的每一个函数都能够在功能层中找到相应的模块来执行。每一个函数在功能层都有一个指定的接口,来对应评分语法的功能。功能层能够创造函数运行时的环境。
数据层的主要功能有两个:(1)将所有的批改相关对象以树型结构保存在数据库中。(2)把每个函数具体所要经历构造步骤保存在数据库中。本系统使用Access数据库来支撑数据层,调用DAO对非Access数据库的VB编程,在数据流庞大的时候可以更改数据层,选择更为合适的数据库来支撑,并且优化了数据层的读写速度。
OLE模型主要是来获取Access数据库(标准文件和被批改的文件)中的信息,配合数据层生成评分语句和判断被批改文件的正确与否。通过OLE读取Access数据库方法,根据对OLE对象的特点进行分析,使用OLE可以很好地对Access数据库进行操作[3]。使用DAO类作为数据库访问技术,在MFC类库中有相关的DAO类,通过定义类的对象并调用相应的成员就可以实现Access数据库和表的动态创建[4]。
3 Access作业自动批改系统程序实现
3.1 评分语法构造
对象:对应评分的类型,如表(Table)、查询(Query)、报表(Report)。
参数:传递给计算机的参数,包括要实现指定功能的对象的名称、对象的属性和其他构造值。参数的数量由具体的题目要求来定,最多五个参数。每个参数都有双引号,如果参数本身带有双引号则用“^”代替双引号。
值:根据评分语句与标准文件计算出的值。用作判断作答是否正确。
分数:评分语句所批改的分值。
评语:当该语句在批改时判错,则会附加评语内容。
评分语句范例:Table("tBranch","字段大小","部门编号")="16" #0.5# È字段大小设置错误È。
“Table”:表示这条语句在表对象中执行。
“tBranch”:表示表名。
“字段大小”:功能名,表示求字段大小这个功能。
“部门编号”:表中的“部门编号”这个字段。
以上就是功能描述,也就是“=”之前的部分,这些功能会在标准文件中执行,之后会抛出一个值,而这个值也就是在批改学生作业时是否得分的重要依据。“16”:在标准文件中执行当前语句的功能,将会获得一个值。如果在学生作业中执行以上语句所得到的值与在标准文件中执行所得结果不同,则判定错误。
#0.5#:表示这条语句批改的分值。
È字段大小设置错误È:表示评语内容,批改结果为错误时,显示“字段大小设置错误”。
这条语句所批改的内容就是,tBranch表中,“部门编号”的字段大小等于16,分值为0.5分,错误时给出评语“字段大小设置错误”。
3.2 批改的相关对象树
Access中有4个基本对象(表、查询、报表、窗体)。在这4个基本对象下,又有许许多多的评阅点。选择对应基础的对象,就能展开相应评分项。辅助生成评分代码。
树主要由Access数据库来保存,通过在Access建立表“StepTable”和表“TreeTable”来实现批改的相关对象树。
ParamCheck(参数校验位)本来的设想是在输入参数时能够自动修正。之后发现无法实现,该功能暂时搁置。
KeyID(功能编号)对应“TreeTable”表中“KeyID”来实现评阅点功能的抓取。
KeyName(外部功能名)就是在树上显示出来的评阅点名称。
FunctionName(内部对象名)是选择相应功能后,对应的对象名,在评分语句中体现。
在设计时,研究发现参数(这里的参数包括功能名)的个数最多会用到5个,但是一般的情况下3个参数就足以完成功能实现,而且超出3个参数以外的都是需要手动输入的,所以默认3个参数。
3.3 评分语句的自动生成
评分语句的自动生成是该系统的重要功能,一次编写终身受用,在全国计算机等级考试中,题库的改变不大,多次批改相同的题目可以使用同一组评分语句。同时为了本系统能够可持续使用,便利的编写评分语句也是必不可少的。下面就来介绍评分语句的自动生成的主要过程。在生成评分语句前,要先编写一份标准文件,也就是标准答案。再通过批改的相关对象树选取相应的批改点,将会自动读取标准文件中对应的数据,从而自动生成批改语句。
通过OLE模型来抓取Access数据库的信息,在生成评分语句时,OLE模型可抓取标准文件中的信息配合数据层来组成评分语句。
生成评分语句时,先要确定对象名,以及参数的个数和参数名。通过批改的相关对象树来点选相应的对象和功能名,然后通过弹出的对话框单选或者手工输入获取参数。
在主界面上点选“标准文件”,选择后开始编辑评分语句。然后通过展开批改的相关对象树的对象来选择相应的批改功能。
评分语句编写完成后需进行保存,批改相同作业时直接进行载入就可以批改。
3.4 评分
有了评分代码,就可以自动批改作业了,点击主界面的浏览,到作业所存放的文件夹。即可点击“搜索”自动检索出格式符合的作业。然后点击“评分标准”载入之前编写好的评分语句,也就是现在的评分标准。最后,点击“开始”即可自动开始批改(见图2)。批改完成后将会提示批改完成。
3.5 导出评分结果
当批改完成后,点击“导出结果”将批改的结果以Excel表格导出。导出的结果展示如图3所示。
4 结语
通过对教育机构目前的阅卷过程进行分析之后,发现对阅卷进行系统化、自动化,有利于提高教学质量和效率,同时也保证了阅卷的正确性和及时性。本设计可以在很大程度上提高作业批改效率,减轻教师的负担,避免了由于教师人为因素导致的批改不及时以及误改的现象,更为重要的是,该系统可以帮助教师摆脱繁杂的批改任务,可以将更多的精力放在提高教学质量上来。
图2 批改作业
图3 导出结果展示
[参考文献]
[1]廖金辉,李景福.Access数据库中OLE对象的巧妙插入[J].电脑开发与应用,2004(4):1.
[2]崔再惠.Access数据库与SQLServer数据库主要功能的比较[J].鞍山师范学院学报,2009(6):51-52.
[3]许俊.Access数据库中OLE对象的读写操作[J].通化师范学院学报,2005(4):37-38.
[4]刘仙桃,李道兵.基于C#.NET的Access数据库创建与访问[J].电脑编程技巧与维护,2011(6):52-53.