基于.NET平台下试卷自动生成系统研究

2017-11-11 21:38陈加粮黄贤顺
科技视界 2017年16期
关键词:试题库算法

陈加粮 黄贤顺

【摘 要】本文研究的主要内容是试卷自动生成系统的设计与实现。通过对试题的一组特征值进行研究,再根据用户提供的题型、题量、难易程度等多种条件,然后借助系统中的相关数据文件,最后采用自动生成试卷的算法动态地生成满足各项约束条件的试卷。本文还提出了生成试卷后如何用Word格式输出和如何具体实现等相关技术。解决了教师传统手动出卷的复杂性和试题内容、分值分布等概率问题。

【关键词】试题库;试卷生成;算法;Word格式

【Abstract】The main content of this thesis is the design and implementation of the test paper by automatic generation system. Through a set of test question characteristic values were studied, then based on the types, quantity, difficulty degree of topic, and with the help of related data files in the system, finally adopt the algorithm of automatic generating test paper dynamically generate test paper which satisfy the constraint conditions . This thesis also proposes how to use Word format output and how to implement the related technologies, so many problems of the complexity, contents and distribution in manual rollout are solved.

【Key words】Item bank; Test paper generation; Algorithm; Word format

傳统的教学模式中,试卷的组织管理方式不仅难以控制试卷的难易程度和题量大小,而且工作任务相当繁重。出卷老师很难把握试卷在各章节中分布情况以及和历年试卷试题的重复率等问题,因而给试卷命题和管理带来很多相关问题[1]。鉴于以上各类问题,如何利用计算机技术、网络技术和数据库维护三者相结合,研发出种能智能、自动生成试卷系统就应运而生。通过试卷自动生成系统的研究与开发,能让出卷工作和试卷管理变得高效而便捷[2]。

20 世纪 80 年代我国有部分大学开始向外国学习借鉴相关技术,陆续研制开发了一批计算机相关考试系统,比较著名的有浙江大学的 C 语言考试系统和ACM(计算机程序设计大赛)考试系统、21 世纪教育网上考试系统等[3]。前期的这些试题库和考试系统大多是在等级考试和认证考试中的应用,如计算机等级考试的上机考试系统、ADOBE 认证考试等,很少应用到教学考试中。因此,开发应用于高校课程教学考试的自动试卷生成系统,可以通过计算机完善试卷试题库的建立、修改及按要求随机抽取试题自动生成试卷的功能,是一项很有意义的工作。

1 系统开发环境

研发一个面向教师的试卷自动生成系统,它的开发工作包括数据库设计及系统管理等两部分程序设计。前台系统操作员为教师,因此开发的系统要求界面美观实用、出卷流程清晰、操作简单方便、系统可靠、通用性强等特点。介于以上各种情况,经过分析比较,本系统决定选择以下方案构建系统:采用B/S模式进行设计,用面向对象JAVA作为开发语言,同时使用.NET技术进行页面的设计与开发,选用SQL Server 2008数据库作为后台数据库设计和管理[4]。

2 系统详细设计

2.1 系统需求分析

通过长时间调查分析,得知要求系统需要实现以下功能:

1)教师可以批量录入试题并共享自己的试题;

2)教师可以有条件选择进行试卷自动生成;

3)学生支持在线答题,并可以对标准答案;

4)系统进行客观题评分,教师负责批改主观题。

在整个教学过程中,自动组卷、题库管理是十分重要的组成部分,对任课老师来说也至关重要。其中包括录入试题、修改试题、查询试题、删除试题、确定试题相关参数等。通过试卷自生成系统的开发,可以将试题按“学科”、“章节”、“题型”、“难易程度”等参数进行归类。可以快速生成一套Word文档试卷,并能生成配套的Word文档的参考答案[5]。同时还可以根据输入的查询条件对试题进行查询,编辑和保存。

2.2 试卷生成模块设计

试卷生成一般分为两种方式:手动生成和自动生成两种。

手动生成试卷是指老师自己根据需求在试题库中选择试题,当用户选择的试题重复时(比如:某一知识点在填空题中出现后,又在选择题或判断题中出现),系统必须能自动检测出冲突,用户必须重新选择相关试题。并能根据选择的试题进行统计各类题型的数目及分值,并能总计题量及总分。

自动生成试卷是整个系统的核心部分。本系统采用交互方式进行组卷,即系统根据用户输入各种约束条件,自动生成一份满足条件的试卷。因而试题库必须在前期就按用户需求设计好。通常情况下我们按照“知识点”和“”章节”来构建整个试题库,构建试题库的基本原则是:首先把教学内容细致分解为若干个小知识点,然后将知识点按层次进行分类,再根据题量、题型、难易度等有机结合起来,通过程序控制计算机自动生成每份试卷、在知识点的难易程度和分值分布上都具有较强的科学性。因此,参数的设置必须按各类题型的共性进行设置,这样整套试卷才合理。只有按基于知识点建构试卷的原则、这样才能提高所建构试卷的质量,提高自动生成试卷的效率。通常在组卷过程中系统将向用户询问以下相关信息:endprint

1)要生成满分为100分试卷;

2)考试试卷包含哪些章节内容,根据用户需求输入所考章的章节号;

3)列出该门课程在系统试题库表中所有的题型,方便供用户选择;

4)输入所考类型的具体代号,以及该类型题目的数目和所占分数;

5)按章节分配各种题型的题数和分值;

6)控制整套试卷的难度系数;

通过系统设置好上述参数有后,确保题库中题目数目能满足上述条件,这样就可按要求自动生成一份试卷。

2.3 试卷生成算法设计

计算机自动组卷实际上就是满足约束条件的过程。自动组卷过程:先设置好整个试卷的难易系数和每种题型的相关约束条件,再根据这些约束条件在试题库中搜索出满足条件的题目构成一套完整的试卷。而这些约束条件通常包含各种题目的题型、题量、难度程度、分值分布等。通过这些局部约束条件来控制整个试卷达到各項指标的均衡,从而形成全局的约束条件。这样就可以完成一套完成试卷约束条件的设置,自动生成一套完整、合理的试卷。

自动组卷一个重点难点之处即如何在庞大的试题库中选出符合用户需求的各类试题,并使整个组卷具有较高的效率和成功率。

目前流行的试题库系统组卷一般有两种方法:一是,利用随机函数根据每道试题的题型、难度、章节分布等各项约束条件随机进行选取。这种方法的确能按用户的要求选出的相应的试题,但繁琐工作量较大,并不实用;二是,采用回溯法找到满足整套试卷的全部约束条件解。但是这种方法往往约束条件较多,较为复杂,经常会出现无法找到满足整个约束条件,难以自动生成满足要求的试卷。为了解决这一问题,本文提出了自身的组卷算法。首先将整套试卷进行量化,构建试卷的量化模型:根据用户需求确定各种题型的分值分配矩阵和各章中难易度分配矩阵,再采用随机抽取和近似匹配的策略进行抽题组卷。这种近似匹配的方法不仅能够生成满足约束条件的试卷,而且可以让用户工作量大大减轻,并在一定程度上提高了整个组卷的效率。本文阐述的近似匹配组卷策略对用户命题要求主要包括以下几个方面的内容:

1)随机抽取的试卷具有随机性;

2)整个试卷中不能出现知识点相同的试题;

3)分配好整套试卷所涉及的题型、章节、分值;

4)控制试卷的整体的难易度和每种题型难易度设置;

为了生成一套规范、合理的试卷必须避免题库系统盲目地选题。首先用户必须将整个试卷的命题要求全局进行规划,分解成各项局部指标。(各类题型的难易程度和分值)其次通过人机交互的方式给系统设置整体难度系数和各章节分布以及各类实体的比例;然后根据用户的要求让系统自动在试题库中有的放矢,筛选出符合或者基本符合要求的试题。这样就能大幅度提高组卷的效率和成功率。

如果生成的试卷只需要满足满足条件1这一点,我们的算法实现是比较简单的,但是要同时满足条件以上四点要求,组卷算法就相对比较复杂了。组卷和出卷算法必须需要满足:1)在试题库中能随机选出试题;2)生成的试卷题型要求、试卷整体难度要求、各类试题难度要求、总分为100分等要求;3)试卷中各类试题的的知识点不能重复;4)试题库结构的合理。

本文主要介绍了以章节知识点为基础的试题库模型,采用随机算法进行抽取试卷,必须将每种题型生成不同的表单,这样才能使生成的试卷满足基本教学和考试要求。以下以四种题型为例:

1)填空题表单,用来存放全部填空题的数据;

2)选择题表单,用来存放全部选择题的数据;

3)判断题表单,用来存放全部判断题的数据;

4)简答题表单,用来存放全部简答题的数据;

根据这四组表单,设置表单查询的相应关键字段。查询条件中主要包括:章节、难易度、分值等。

人工组卷时,只要匹配以上查询条件。就可以根据查询条件在试题库中查找满足条件的试题。

自动组卷时,试卷模型的设计质量和产生合适的随机数直接影响到生成试卷的好坏。在设计试卷模型时,应综合考虑试题的章节、难易程度及试题总量和分值等因素,再通过随机数产生一个0-1之间的随机数,然后通过取整函数将此数变成一个合适的整数。在编程过程中,通过程序先得到所有满足条件的记录,再通过随机数确定记录和试题编号,然后检查是否满足条件。最后通过循环控制试题的总数,完成整个试卷的自动生成。为避免各类题型之间出现相同的试题内容,每成成一道试题,必须与以前生成的试题进行比对,如果出现相同内容或相同题目都会重新再查询。这样就能确保证抽取的试题既能满足条件又内容不相同。

2.4 生成Word文档设计

自动生成试卷系统最终目标是根据随机抽取后的试题,按照已有的试卷模板,生成所需要的Word文档试卷[6]。为解决这一关键问题,我们需要掌握在ASP中正确使用以及MS Office COM对象的理解。主要掌握以下几个方面的知识内容

1)首先必须正确安装Word应用程序;

2)理解MS Word对象层次关系结构;

3)利用VBA编程;

主要采用的Word对象及使用方法如下:

1)Paragraphs集合对象。该对象的作用是段落对齐的集合。可以通过Paragraphs(Index)对象来对指定段落进行必要的对齐编辑。

2)Sections集合对象。该集合对象主要包含了选定内容、范围或文档中的所有节。

3)Range对象。该对象的功能是表示文档中的一个范围。每一个Range对象都包含一个起始和一个终止字符位置两部分的定义。

4)InsertParagaphAfter方法,该方法的功能是在指定的所选内容或区域之后插入一个新段落符号。

5)InsertParagaphBefoe方法,该方法的功能是在指定的所选内容或区域前插入一个新段落。

本系统还实现了如何将生成的试卷在Word 2010中进行输出:

1)在系统中添加引用Microsoft word 11.0 Object Library;

2)将Doc.Application.obsible属性调试为True;

3)根据不同科目试卷的要求,必须在题库中查询相应的考试科目、考试时间等。然后设置好文档中的Sebction对象,如字体,字号、字体颜色等属性设置。

4)对于文档中存储了图形、大篇文字、参考答案等可以先采用PDF格式存为临时文件,然后通过程序在Word中插入该临时文件即可。

5)在Word 2010中按要求调整试卷的格式,然后进行打印输出即可。

系统自动生成试卷后,我们可以采用同样的办法,根据试卷模板生成需要的格式,自动生成对应的试卷参考答案。

3 结语

本文主要针对系统中自动生成试卷部分的算法研究以及如何将自动生成的试卷采用Word文档输出方法的实现。采用自动生成试卷系统,能提高教师工作效率、促进试卷管理逐步走向正规化和自动化。

【参考文献】

[1]周莉.基于.NET的机考管理系统的设计与实现[D].吉林大学,2016.

[2]罗显鸽.试卷生成系统的设计与实现[J].软件导刊,2012(6):55-56.

[3]王长利.试卷生成管理系统的设计和实现[J].数字技术与应用,2011(3):120-121.

[4]黄琼.基于B/S的在线考试系统的设计[J].科技创新与应用,2016,28:94.

[5]周文君,刘柱鸿.基于COM组件的Word试卷生成技术的研究[J].电脑知识与技术,2015,24:62-63.

[6]廖欧.基于Web的在线考试系统的设计与实现[D].电子科技大学,201.endprint

猜你喜欢
试题库算法
石油炼制技术课程试题库建设的探讨
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
职业院校旅游专业试题库建设的实践与反思
——以导游资格笔试科目为例
基于增强随机搜索的OECI-ELM算法
一种改进的整周模糊度去相关算法
基于Quiz Creator的“机械图样的绘制与识读”随机组卷试题库的制作与研究
基于校园网的电磁学试题库建设
教考分离模式下课程试题库的建设研究——以高职院校数学课程为例