APP下载

分布式智能组卷系统的设计与实现

2012-06-09杜晓玉郭拯危

电子设计工程 2012年20期
关键词:试题库控件文档

李 辉,杜晓玉,郭拯危

(1.河南大学 民生学院,河南 开封 475004;2.河南大学 基础实验教学中心,河南 开封 475004;3.河南大学 计算机与信息工程学院,河南 开封 475004)

与传统的手工出卷方式相比,计算机自动组卷有着无可比拟的优越性。计算机可以以随机或手工指定的方式,根据试卷的各个参数(总分、题目类型、题目数量、每题分数等),从大量的试题库中挑选符合要求的试题并自动组成试卷,供打印或在线考试使用,不但能够节约大量的人力、物力与财力,还可以大幅度增加考试成绩的客观性和公正性,避免人为原因造成的疏忽和错误[1]。

高等院校的各种考试中,很多学科专业的试题和答案都包含有公式和图形,而当前已有的诸多试题库或组卷系统通常只支持纯文本的试题,这在很大程度上限制了理工科试题库与组卷系统的建设和发展。目前很多高校和科研机构开发了多种网络版的组卷系统,按照系统架构不同可以分为基于B/S架构[2-3]和C/S架构[4-6]。文中采用嵌入ActiveX控件来操作Word文档的方式,设计并实现了一个基于DataSnap的分布式三层架构的理工科试题库与组卷系统。系统功能强大,支持的试题类型多样,并可以按关键字查询Word试题内容。多个用户可以在不同的地点同时录入试题,组成的试卷直接以Word文档的形式下载到本地,用户可以直接打印成试卷(或手工调整个别题目)供考试使用,真正实现一键组卷。除此之外,系统还提供在线考试功能。

1 系统关键技术与整体结构

1.1 系统关键技术

本系统开发过程中,使用了以下关键技术:

1)dbExpress技术

dbExpress是Borland公司推出的一种轻量的数据库存取引擎,支持目前大多数的主流数据库,如MS SQL Server、DB2、Oracle、MySql等,且具备跨平台能力,可以在 Win32、Linux和.NET平台上使用[7]。由于它使用单向、只读的游标,且不在内存中缓存数据集,可以提高数据存取速度并使用最少的资源[2],所以速度极快,尤其适合在多层架构的系统中使用。

2)DataSnap 技术

DataSnap是Borland公司 (现已被Embarcadero公司收购)开发的快速开发套件Rad Studio中的一部分,它被设计专门用来开发分布式数据库应用软件[8]。从Delphi2009开始,DataSnap不再依赖于DCOM架构(但同时也支持DCOM),转而使用TCP/IP协议、HTTP协议来完成客户端和服务器的通讯,这使得开发和部署工作变得更加简单。

3)SQL Server数据库技术

由于本系统保存的数据量较大,桌面型的数据库软件(如ACCESS等)不能满足要求。Microsoft SQL Server是微软公司开发的一种大型关系数据库管理系统,由于其功能强大、易于使用,并且与Windows操作系统结合紧密,早已为许多软件开发者所使用。虽然SQL Server 2000是微软于2000年发布的版本,但由于其对硬件要求较低,经过仔细的配置以后安全性也完全可以满足要求,所以本系统仍以SQL Server 2000作为后台数据库。

4)ActiveX控件技术

ActiveX控件是一种与编程语言无关的可重用软件组件,这些组件实现了特定的功能,并提供了编程接口,应用程序可以直接拿来使用[9]。本系统使用了EdrawSoft公司出品的Office Viewer这个ActiveX控件,来完成Word试题及答案的录入和显示。Office Viewer提供了一套简化了的接口来实现对Word的编程,例如加载、编辑和保存Word文档等。程序发布给客户时,只需利用安装程序在客户机上注册这个ActiveX控件即可。

1.2 系统整体结构

理工科试题及答案中,公式和图形较多,这个特点决定了B/S方式不适合于理工科试题库的日常使用。同时,为了保证数据库的安全,不允许客户端直接连接数据库。因此,系统采用三层分布式结构,如图1所示。

图1 系统整体结构Fig.1 System architecture

其中:

1)客户端负责与用户交互,如显示用户界面、接受用户输入等;

2)应用服务器提供各个客户端的操作请求接口,如添加试题、取得某种题型的试题、查看某张试卷等,并将处理结果返回到客户端。除此之外,还包括维护数据库连接池、压缩数据流、记录日志等;

3)数据库服务器执行数据的存储、查询、更新与删除操作。

2 系统整体流程

系统整体流程如图2所示。

图2 系统流程Fig.2 System process flowchart

1)前期准备:录入试题前,需要进行前期准备工作,包括:建立用户及分配用户权限、录入课程章节和知识点、可用的题型等。

2)录入试题:用户录入Word试题和答案,并保存到数据库中,供组卷时使用。

3)组卷:分为随机组卷和人工组卷。系统从试题库中取出满足要求的试题,并排版到一个Word文档中,供导出或打印。

4)导出或打印试卷:用户可以选择组好的试卷,导出成Word文档,或直接打印出来。系统还附带了在线考试功能和学生自测功能。

下面详述这些流程的具体实现。

3 系统功能模块

3.1 用户管理模块及权限管理模块

用户按照使用的功能可以分为3类,学生,老师,和管理员。用户管理则包括这3类用户的数据录入,修改和删除。权限管理模块主要对包括学生、教师和管理员的权限维护。权限管理模块中管理员可以批量设置学生、教师或其他管理员的权限,例如,可以设置学生只能进行在线考试、查看以前的试卷;设置A用户只能录入试题、B用户只能组卷等。

图3 系统功能模块结构图Fig.3 Function modules of system

3.2 试题管理模块

试题管理模块包括章节维护、知识点维护、题型维护和题库维护4类。根据大学考试试卷的特点,试题包括章节,所属知识点,题型,难易度几个属性,并且要求试题的答案和试题一一对应。因此录入试题前,需要首先录入所用教材的章节信息、某章节中的知识点和可用的题型,这些信息在录入试题的过程中会使用到。可用的题型是指,当某些题型设置为可用时(如选择题、填空题等),才可以在录入此种类型的试题。

录入试题时,会要求用户输入此试题所在章节、所属知识点、题型、难易程度以及参考答案。由于试题和参考答案中可能包括有公式和图形,所以也以Word文档的方式录入也可直接上传图片。用户保存这道试题时,系统将完成以下操作步骤:

1)将试题和答案的Word文档分别以二进制的形式压缩后保存到数据库;

2)提取出Word文档中的所有文本作为题目内容单独保存,以便在用户界面上以文本方式显示当前试题内容,并方便以后按关键字查找;

3)将Word文档中有内容的区域保存为jpeg格式和图片,以二进制的形式保存到数据库,为在线考试时使用,并方便以后开发B/S结构的试题(或试卷)查看功能。

3.3 试卷管理模块

试卷管理模块包括试卷模板维护、随机组卷、人工组卷和已有试卷维护4个功能。

很多考试的模板相同,即包含的题型,各个题型的数量,总分,每道题的分值都是相同的。为了节省操作步骤,用户可以创建多个试卷模板,在每个试卷模板中指定试卷中包含哪几种题型、每个题型中每道题目的个数和分数、试卷难易程度、考试时间、总分等,这样在随机组卷时,系统就会按照这些预先设定的条件选择试题,而不需要每次都重复输入同样的条件。

随机组卷时,用户录入试卷相关信息(考试还是自测用卷、试卷总分、考试时间、难易程度有效期等),选择某个试卷模板或手工录入每种题型的道数、分数,系统即可从试题库中的各种题型中随机挑选满足要求的试题组成一份试卷。填空题比较特殊,因为一般来说填空题是按空给分的,一道填空题中可能包含不同个数的空格,所以填空题的挑选需要单独处理。随机组卷之后对某些不合适的题目可以进行手动更改。人工组卷时,用户手工选择各个题型中的试题,以及设定每题分数。

试卷使用前,可以添加、删除或替换试卷中的试题,或查看试卷中的题型分布情况(各题型中题目道数、分数),或修改试卷有效期等。试卷一旦使用就不可修改和用来在线考试,但是可以查看,打印。

系统提供5种试卷预览和导出功能,包括:试卷预览(无答案)、试卷预览(有答案)、Word试卷预览或导出(无答案)、Word试卷预览或导出 (答案在对应试题下方)、Word试卷预览或导出(答案在试题最后单独显示)等,以满足不同的需要。为提高速度和减小服务器资源占用,预览试卷时,系统从数据库依次读取JPEG格式的每道试题,动态创建图形控件显示到用户界面上;而当用户选择Word试卷预览或导出试卷时,则采用OLE的方式新建一个Word文档,并调用Word中的VBA函数,插入试卷标题等必要信息,将每道试题写入这个Word文档中,然后将Word文档显示到用户界面。导出为Word方档后的试卷与普通Word文档一样,可以手工任意编辑。

3.4 考试管理

考试管理包括在线考试、在线自测和查看以前的试卷。

由于理工科试题的特殊性,在线考试(或在线自测)只能选择有限的几种题型,如单选题、多选题、判断题,或者加上少量的填空题,而简答题、计算题等显然不适合在线考试。学生登录系统后,系统会显示在有效期内的试卷,学生选择开始考试后,系统从数据库中取出属于这个试卷的JPEG格式的试题,排版后形成试卷,学生即可作答。单击“交卷”按钮,或考试时间已到,则终止考试,学生可在“查看以前的试卷”菜单中立即看到自己的考试情况(答对的试题道数、答错的试题道数、成绩、正确率等),并可看到做错的试题的正确答案。学生也可以随时选择某个自测用卷作答,答完后会立即看到答对的试题道数、答错的试题道数、得分、正确率等,并可看到做错的试题的正确答案。自测用卷可反复使用多次。

4 结束语

文中针对理工科试题的特点,设计实现了一个分布式三层架构的试题库与组卷系统。系统使用Delphi2010开发,后台数据库为SQL Server2000,运行速度快,性能稳定。与其它试题库管理软件相比,本系统支持不同类型试题的答案选项个数可自定义,填空题可按空格给分,这更符合实际情况。

可扩展性方面,由于应用服务器的存在,当用户数量增加,或系统压力过大(如在线考试人数增加)时,可以通过增加应用服务器的方式来实现负载均衡。同时,由于使用的dbExpress技术支持多种主流数据库,只需稍微修改应用服务器上的代码就可以切换到其它数据库,而客户端不需做任何改变。另外,由于DataSnap技术支持HTTP协议和REST(Representational State Transfer),可以轻易增加一些附加功能(如通过B/S方式修改用户权限等)。系统已在某高校化学化工学院稳定运行一年时间,可以满足用户需求,使用效果明显。

[1]董欣,于泽源,赵杰.试题库管理系统平台的研究与建设[J].东北农业大学学报:社会科学版,2009,7(4):20-22.DONG Xin,YU Ze-yuan,ZHAO Jie.Research and construction on the management system of an examining question database[J].Journal of Northeast Agricultural University:Social Science Edition,2009,7(4):20-22.

[2]杜烨,吕太之.基于Ajax技术的自动组卷系统性能分析[J].电脑知识与技术,2010,6(9):2053-2054.DU Ye,LV Tai-zhi.Performance analysis in automatic group volume system with ajax[J].Computer Knowledge and Technology,2010,6(9):2053-2054.

[3]姚启迪,于重重,刘杰.基于XML的调查表自动组卷系统的设计与实现[J].计算机工程与设计,2009,30(10):2538-2540.YAO Qi-di,YU Chong-chong,LIU Jie.Design and implementation of automatically generating questionnaire based on XML[J].Computer Engineering and Design,2009,30 (10):2538-2540.

[4]王梅,滕晓婉,张明静.GridView控件在自动组卷系统中的应用[J].现代计算机,2009,9(315):121-123.WANG Mei,TENG Xiao-wan,ZHANG Ming-jing.Application of GridView control in auto generating examination paper system[J].Modern Computer,2009,9 (315):121-123.

[5]周莉莉,姜枫.含富文本格式的智能组卷系统的研究与实现[J].软件,2011,32(6):17-19.ZHOU Li-li,JIANG Feng.Research and implementation of intelligent test paper composition system with RTF[J].Software,2011,32(6):17-19.

[6]江捷,张翀.基于OLE技术的双语智能组卷系统的设计与实现[J].现代教育技术,2010,20(13):119-122.JIANG Jie,ZHANG Chong.Design and implement of intelligent test paper composition system based on OLE[J].Modern Educational Technology,2010,20(13):119-122.

[7]李维.Delphi 2006高效数据库程序设计——db Express篇[M].北京:电子工业出版社,2006.

[8]维基百科.DataSnap[EB/OL].[2010-11-29].http://en.wiki pedia.org/wiki/DataSnap.

[9]维基百科.ActiveX[EB/OL].[2011-01-27].http://en.wiki pedia.org/wiki/Activex.

猜你喜欢

试题库控件文档
有人一声不吭向你扔了个文档
关于.net控件数组的探讨
基于RI码计算的Word复制文档鉴别
项目反应理论在考试系统试题库中的应用
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
基于Quiz Creator的“机械图样的绘制与识读”随机组卷试题库的制作与研究
基于校园网的电磁学试题库建设
教考分离模式下课程试题库的建设研究——以高职院校数学课程为例
不让他人随意下载Google文档
就这样玩会VBA中常见的自定义控件