APP下载

基于Java的模板型试卷随机生成系统

2017-10-26裘抒扬沈小丽

电脑知识与技术 2017年22期
关键词:试题库软件工程算法

裘抒扬 沈小丽

摘要:在各大高校中,期末考核试卷依然是评价学生成绩的重点。然而每年对于试卷的命题总有许多复杂的要求,若能够借助计算机完成这一任务,不仅保证教师在命题过程中的科学性与规范性,还能减轻教师在出卷时的负担。通过对教师组出卷要求的需求分析后,结合数据库理论与软件工程思想,利用Eclipse与FreeMarker模板作为开发工具与策略,完成试题的选择,导出与维护。该系统基本上能满足教师组的出卷需要。

关键词:试卷生成;试题库;算法;软件工程;

中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2017)22-0101-02

试题库(Item Bank)是“按照不同的学科门类以及其内在联系,将不同的试题分门别类地汇集起来,为特定学科知识和技能测试提供备选试题的一种系统资源”。每当临近考试需要出题时,在试卷的管理上还是传统的手工出卷和人工选题,试卷编辑和整理工作存在不少弊端,不可避免地造成重复性工作和资源的浪费,缺乏统一规范的管理。该系统以高校教改项目为支撑,针对大家习惯使用的Word文档处理软件,命题时能够根据条件选择Word文档试题,并套用试题模板打印试卷,实现试卷的自动排版,方便教师进行试卷的版面编辑。

1需求分析

经过与教师组的需求沟通,由于所需要建立的试题库针对一个大主题,各题之间存在着逻辑顺序关系,并且一套试卷模板相对固定。唯一可变的在于出于整套试卷平衡难度的考虑,每套试题后自主添加2道思考题。综上所述,本系统主要应该满足以下几个方面的功能:

1)能够根据课程类型选择生成相应的试题主体部分。

2)在每套试题的最后能够根据难易程度调整等思考,自主从思考题题库中选择2道添加。

3)某一课程的试题主体部分5年之内不能重复。

4)能够自主添加或删除新的试题与思考题。

5)在设置好试卷构成,且科目、难易度都满足的情况下,可生成符合教师要求的word文档试卷,并能进行编辑修改,最后打印出真正意义上的试卷。

2系统设计

2.1用户权限选择控制模块

考虑到数据库和系统的安全性设计,设置了管理教师与操作教师两种不同的用户。管理员能够对试题库进行管理,而教师只能从现有的试题库中选择试题生成,保证了试题库与试卷的安全性。

2.2试卷生成模块

此模塊根据制定的组卷模板信息自动生成试卷。由用户根据需求先选择相应的课程生成试卷主体部分,再自主在主体部分后添加思考题。为方便用户的编辑和排版,本套系统实现了将系统生成的试卷及配套的标准答案转换为doc文档格式,满足试卷生成后用户的检查与校对的需求。

2.3试题库管理模块

鉴于整套系统拓展性与可持续性的考虑,设计了对试题库进行更新的操作功能。管理员可自主添加或删除新的试卷主体、配套的标准答案以及思考题。这种设计使得试题库能够不断更新换代,适应不断变化的课程需求。

3系统功能模块主要实现方法

本系统界面框架利用java桌面开发,以Eclipse作为开发工具。数据库采用MySQL来实现,通过统一形式来管理各门课程的试题信息。整套系统功能模块如图1所示。

在Eclipse中需要添加2个jar包以实现编程需要。第一个mysql-connector-java-5.1.26-bin.jar用于建立起Eclipse与MySQL数据库的连接,能够最大限度地提高软件编程效率。第二个是freemaker.jar用来支撑XML模板编程。利用java导出word文档大致有6种解决方案,例如Jacob,Apache POI,JSP等,结合本套系统的实际需求,最终决定采用XML模板方式。

3.1系统框架

系统运行时使用JDialog弹窗,让用户选择登陆权限。教师输入账户密码,根据输入情况判定账户权限。进入系统后,利用JTable控件作为系统框架,生成操作主界面。

3.2试卷操作

3.2.1试题库的结构

所有的试卷操作都是基于试题库中存储的数据,因此数据库结构的合理性就十分重要。本套系统的客户需求中,试卷类型分为A和B两大类,每一大类中,又分为a、b、c、3个小类。因此一共就有6种不同的试卷类型。根据需求,建立一个名为Pa-perCreate的数据库,库中包含7张表,包括每种试卷类型各一张表以及一张包含有思考题信息的表。试卷类型表结构如表1所示。思考题表结构如表2所示。

3.2.2试卷生成操作

当用户点击“新建”菜单即可开始试卷的生成,根据要求选择A或B类课程类型,再选择a、b或c类课程子类型,最后弹出一个JDialog型弹窗用于选择需要添加的思考题。点击“确定”将根据要求在指定的目录下生成一张doc格式的试卷及配套的答案。

3.3试题库管理操作

当使用管理员模式登陆时,试题库管理菜单条才处于被激活状态。点击“试题库管理”菜单条,可以使所有思考题重新回到没有任何题目被选择过的状态。或者可以向题库中加人或删除试题。若要添加试卷,将试卷主体部分与思考题部分按照指定的格式模板修改后,放置在指定的文件路径下,重命名为指定的名称。数据库中的数据便能够找到相应的试卷模板,从而能够正常地运行。

4算法概要

本文以基于课程类型的试题库模型为基础,采用随机算法,使组成的试卷满足教学的实际要求。根据课程类型数据表单,确定随机数产生的数字上限。当生成一个随机数时,需要对比以此随机数为序号的试卷模板的chosed位。若chosed位为1,则代表该序号试题已被选取过,重新产生一个随机数继续比对,直到比对出chosed位0的序号所关联的试题模板,并将数据库中代表该套试题的数据中的chosed位置1,最后判断该表中所有试题的chosed位是否都为1,若都为1则表示该课程所有试题全部选择过一遍,则将该表中所有chosed位都复位为0。当一个张表中的试卷模板数大于5张时,便可保证5年内试题不重复选择。

选取思考题时,同样根据chosed位判断该题是否已选取并提示用户。当用户随机选取2道思考题并点击“确认”按钮后。系统自动判断该题是否存在配图。若存在配图则取出配图。配图采用二进制流的方式存入数据库中,使用二进制解码的方式取出数据库中的图片二进制数据。试卷生成流程图如图2所示。

试题库操作算法中,思考题标志复位使用一次SQL语句便可完成。试题与思考题添加功能流程与试卷生成类似。选择需要添加的课程类型后,系统自动在该课程的数据表中添加试题与试题答案信息的数据。

5结束语

本软件的设计目的,在建立题库并管理维护和试卷生成方面为教学单位和人员提供方便和帮助。系统设计时考虑到了数据库和系统的安全性设计。试卷生成方便,操作简单,建立起系统后可达到一劳永逸的效果。并且考虑了系统的可持续性与可拓展性。整套系统清晰明了、简单方便的用户界面,直观易懂的操作向导,使用户容易掌握和使用本软件。endprint

猜你喜欢

试题库软件工程算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
关于如何创新和完善计算机软件工程管理的探讨
一种改进的整周模糊度去相关算法
基于Quiz Creator的“机械图样的绘制与识读”随机组卷试题库的制作与研究
基于校园网的电磁学试题库建设
教考分离模式下课程试题库的建设研究——以高职院校数学课程为例