试卷自动生成系统的设计与实现_第1页
试卷自动生成系统的设计与实现_第2页
试卷自动生成系统的设计与实现_第3页
试卷自动生成系统的设计与实现_第4页
试卷自动生成系统的设计与实现_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-作者xxxx-日期xxxx试卷自动生成系统的设计与实现【精品文档】四川师范大学成都学院本科毕业设计试卷自动生成系统的设计与实现学生姓名李锦超学 号2012101149所在学院通信工程学院专业名称通信工程班 级2012级宽带通信2班指导教师石 彬四川师范大学成都学院二一六年五月【精品文档】试卷自动生成系统的设计与实现学生:李锦超 指导教师:石彬内容摘要:试卷自动生成系统,即用户通过自定义选择设置试题的类型、难度、分数、时间等多个因素自动生成考试试题并给予对错验证。随着互联网络的飞速发展、网络教育的不断普及与提升,传统的出题考试方式已经不能满足所有的需求,一概而论不“因材施教”的出题方式不利于考

2、核不同类型的学生,也不满足现代教育的发展需要。因此,现在已经逐渐开始流行自定义、有难度、时间、类型选择控制的出题方式来迎合当前社会考试所需。试卷自动生成系统的诞生油然而生。该设计主要目的是帮助出题者以及试题训练者能够根据不同人群自定义设置难度、类型生成考试试题的系统。系统为用户提供用户登录、开始试卷定制、选择题型、选择所占分数比例、最高分数设定、考试时间限制设定、考试难度选择、生成试卷以及答案查看等功能,将用户的需要“因材施教”、“分门别类”地提供,由用户自定义选取,从而达到针对不同层次的考生的训练和考验。同时,也方便了出题者逐个进行试卷试题的选取,省去了出题者挨个设定的过程,既提升了出题的速

3、度,也提高了出题的整体质量。本次设计主要是以服务出题者、试题训练人等人群方便快速地完成试题的构造并提升自身所需检测为目的的试卷自动生成系统。整体设计使用的是JAVA语言开发的B/S(浏览器/服务器)应用系统。用户登录该系统后可以根据自己的能力选择生成题目的难度,根据自己的弱项针对题目类型进行生成试题,亦可根据自己的熟练度选择答题时间。本系统的代码框架采用了现在比较流行的SSH(Spring+Struts+Hibernate)进行设计,在功能模型的实现和页面处理方面严格遵从了MVC(Model,View,Controller)的思想体系。配合Javascript以及Xml对页面提取处理。数据库方

4、面采用了中小型的Mysql数据库进行处理,数据库工具使用了当下主流的navicat进行操作,以减轻代码量的负担和方便代码编写和功能实现。关键词:试卷自动生成 B/S Java MySQL数据库Design and implementation of automatic test paper generation systemAbstract: Automatic test paper generation system, that is, by the user to customize the selection of the type of test questions, difficul

5、ty, scores, time and other factors automatically generate test questions and give the wrong verification. With the rapid development of Internet, network education popularization and promotion, the traditional way of examination questions has been unable to meet all the needs of generalizations do n

6、ot teach students in accordance of their aptitude questions the way is not conducive to the assessment of different types of students, also do not meet the development need of the modern education. Therefore, now we have assembly popular custom, difficulty, time, type selection control sets the topi

7、c the way to cater to the social examination required. Automatic generation system of test paper birth arise spontaneously.The main purpose of the design is the help topic and questions of training can be set difficulty, type of generating examination papers system according to the custom of differe

8、nt groups of people. System for the user provides user login and start customized paper, multiple-choice, choose the ratio, the highest score set, the examination time limit set, choose the difficulty of the exam, test generation and check your answers and other functions, the user need to "tea

9、ch students in accordance with their aptitude", "sub categories" to provide, selected by the user, so as to achieve for candidates of different levels of training and test. , but also to facilitate the questions one by one of papers selected, eliminating the topic and set one by one,

10、both to enhance the speed of questions, the topic and also improves the quality of the whole.This design is mainly based on service questions, questions of training people and other people easily and quickly complete the test structure and enhance its test paper auto generating system. The overall d

11、esign is the use of JAVA language development B/S (Browser / server) application system. After the user login the system can according to their ability to select the difficulty of the questions in the form, according to their weaknesses for types of questions were generated questions, can also choos

12、e to answer the questions of the time according to their proficiency.The code framework of the system using the now popular SSH (Spring + struts + Hibernate) is designed. The function model and the realization of page processing strictly comply with the MVC (model, view and controller) system of tho

13、ught. With Javascript and Xml on page extraction. Database used in small Mysql database processing, database tools used in the current mainstream Navicat operation, in order to reduce the burden of writing code and convenient code and function realization.Keywords: Automatic test paper generation B/

14、S Java MySQL databas目 录前言11 系统功能介绍与分析11.1 用户登录功能11.2 试卷生成及试题判断功能21.3 题库维护功能32 数据库的设计与开发5562.2.1 数据库设计思路673 试卷自动生成系统流程83.1 物理结构流程8114 界面设计12124.2 界面设计示意图135 系统算法设计19195.1.1 随机法195.1.2 回朔法205.1.3 遗传算法215.2 试题难度算法215.3 试题分数算法215.4 系统算法总结226 主要功能代码展示2222226.1.2 登录功能246.1.3 主要功能模块27前端代码展示30代码30317 总结32参考

15、文献34试卷自动生成系统的设计与实现前言现代教育伴随着互联网、自动化的发展而迅速地进行革新,传统的试卷考试已经远远不能满足现在社会急促的步伐,不仅如此,传统的试题考试设计相当地消耗出题者的时间与精力,并且没有针对性。这种方式已经不能满足现代考试紧凑的步伐了。因此,能够快速并且具有针对性、为用户提供自定义难度、类型、时间选择的试卷自动生成就显得尤为重要了。试卷自动生成系统油然而生。传统的试卷出题方式需要经过人工进行,出题者或者使用者需要根据自己的经验进行题目的设置,这种方式往往需要人力对试题数据的反复制定和验算、对题目合理性进行检验等等。制定题目的难度梯度,以满足不同层次的学生反应不同的学习水平

16、。出题者往往还需要将以往的试题与将要出的试题的考点、难度进行对比。由上诉需求可以看出,传统的人工出题方式不仅没有将互联网联动的优势运用起来,进行题库的资源共享与使用,也使出题者浪费了大量的研究和设置试题的时间 。互联网的时代是个资源共享的时代,现代教育也应该与时俱进,对于优秀的试题、适合学生做的试题可以进行共享并且反复利用,并且也解决了出题者自我思考浪费大量时间的问题。本次设计的数据库可以存储大量物联网所提供的各类试题需求,以满足资源共享与互补互助的需求。此外,该系统还提供了多种一键选择的功能方便用户意见集成试卷。同时,数据库的使用也使得针对不同的用户也额外地分配的个人对题库和试题的编辑权限,

17、用户可以自定义题目的难度、类型、分数等等,也可以新增、删除、查阅和编辑已有的试题。更加人性化的是,用户在完成试卷答题之后,系统会根据用户等分的情况给出提升或者降低难度的一键生成试卷的选项。从整个试卷的出题到打分结束,整个流程不仅与庞大的数据库进行了资源共享,也极大地提升了出题的质量和时间,可谓一举多得!试卷自动生成系统的不断成熟将会逐渐撼动传统出题以及训练方式,随着试卷自动生成系统的不断完善和创新,用户将获得更好的体验。本次设计主要研究试卷自动生成系统的各项功能以及相对传统出题方式所带来的优势。1 系统功能介绍与分析1.1 用户登录功能每一个用户都会有自己对题库和试题不同的需求,我们提供了My

18、sql数据库为每个人分配了单独的IP并且开辟了独立的空间。用户在输入帐号密码登录之后可以自由地根据需要管理自己的题库和试题。用户登录系统的设置很好地区分了不同使用人群对不同环境的试题需求,也方便了使用者个人对特殊体型和试题的编辑和修改操作。1.2 试卷生成及试题判断功能本试卷自动生成系统为用户提供了多项一键生成功能,用户可以根据自己的需要对生成试题的类型、分数、难度、时间、所占比例等等做出相应的设置从而生成出相应的试题。根据用户的作答给出成绩并且提供提高难度和降低难度的一键生成按钮方便用户根据实际情况调整试卷。并且用户可以根据自己的需要,自定义增加、删除、查阅和编辑自己的题库和试题。在用户登录

19、该系统之后,用户会来到一个中转的欢迎界面,用户可以选择查看题库对试题进行操作,也可以直接选择在线答题系统对自己所需的试题要求进行设置并且一键生成。l 试题类型的选择生成一套试题首先得明确这套试题的结构组成,需要几种类型的试题,每种试题、每道题所占的分数比例都决定着这套试卷的合理性。本系统为用户提供了当代考试最流行的几种题目类型:选择题、填空题、问答题。用户可以根据自己的需求合理安排各类题目在整个试卷中所占的数量以及分数的比例,比如单选题20道,每道1分;多选题10道,每道2分;填空题10道,每道2分,简答题5道,分别为6分、8分、8分、10分,共100分。l 试题难度的选择作答难度的设定关系这

20、整套试卷的出题质量,如何合理地根据实际情况给出适当难度的试题显得尤为重要。本系统为每一道试题都给出了一个难度系数,数据库会根据给定的难度系数自动为您提供您所需要的难度系数的试题供用户选择。难度系数设定在0-1之间,用户只需设定不同类型的题型的难度系数系统即会自动为该类型进行题型分配。因此,用户在设置难度系数的时候只需要把握好整套试题的难度梯度即可。此外。该系统还会根据用户的作答情况给出一键自动降低难度和一键自动提高难度的试卷生成功能,很好地帮助用户找到当前阶段适合自己训练的试题难度。l 考试时间的选择不同试题难度根据出题者分配,在设置难度的时候需要注意的就是难度和答题时间的合理结合,该系统提供

21、了自定义的答题时间设定,方便使用者根据自己的综合实力在不同阶段设置需要完成试题的时间。比如当用户第一次做的时候可以将时间设置为两个小时,经过一段时间的训练,用户一是可以通过提升难度来加强能力,同时也可以选择相同难度的其他试题通过减短作答时间的方式来得到提升。本系统提供的时间设定很好地满足了用户的这点需求。l 总分数的设置用户可以根据试卷的题量和考试需求自定义指定试卷的总分数以此配合题型的所占分数比例,比如在高中学校应用此系统自动生成试题,理综试卷按照传统标准应当设置300分为满分;数学、英语和语文等学科应按照150分给出。在初中或者小学等其他环境中亦可给出120分或者100分甚至80分的满分。

22、当然,分数的给定完全由用户自定义,具体情况以实际需要为主。同时也方便使用者在单独的考试中能够合理地分配分数。l 生成试卷的功能在完成了上诉的试卷不同类型试题的难度系数设定、考试总时间的分配、考试总分数的设定之后,自动生成试卷就显得十分简单了,用户只需根据界面提示一键生成即可从数据库中随机提取相应数量并且符合条件(如类型和难度系数的)的试题,开始答题之后,倒计时开始启动。若作答完题之后用户选择了提升难度或者降低难度,那么系统也会自动根据当前的试题难度系数做出判断,适当地降低或者增加考试难度对数据库进行试题的调取,再采用相同的方式进行试题的自动生成。l 试题判断功能当用户完成登录选题生成试题并且作

23、答之后,点击提交试卷,系统会根据用户作答情况结合数据库答案对用户的作答进行评分,用户根据得分情况从而选择是否增加难度或者降低难度再次进行作答训练。针对单选题、多选题、判断题、填空题,经过正则处理过后的Javascript可以自动忽略空格、空白字符等等的干扰因素以确保空白空格等电脑认为操作带来的误判。对于简答题,数据库会根据事先的关键字提取去抓取用户的答案中的关键字进行对比,只要最关键的关键字符出现,基本可以判定该题得分。关键字的回答正确率也决定了该用户此题的最终得分,通过分割多个关键字以确保系统判断的正确率,极大地减少了误判,也满足了自动判断节省人力对比资源的时间。1.3 题库维护功能用户除了

24、从数据库中搜索、提取自动生成出试题以外,有时候也需要将自己平时收集的一些优秀的题目录入题库并设定难度系数,增加题库的题目库存以便下一次调用或者自动生成。此外,对于一些易错、难懂的题目我们不需要讲究题目内容的形式,只需要对其重要参数进行修改即可重做以达到多次练习的效果,这样既没有脱离题目考察内容的本质,也节约了大量的时间。当然,对于一些用户已经完全掌握的试题,用户可能怕在下一次自动生成试题中再次遇到从而减少了训练量并耽搁自己的训练时间。所以需要将其删掉。也有时,用户想要有针对性地训练,对于某种类型或者自己经常出错的题进行反复练习,需要在茫茫题库中迅速查找到某一道题。综上所诉,我们为该系统设置了题

25、库的试题增加、删除、查阅与编辑功能,以方便用户对题库的各种功能需求。以下为具体功能的详细介绍:l 增加、删除试题功能系统中的每一道试题都有且只有唯一的一个ID作为主键,在不考虑恢复试题的情况下,本系统采用了删除数据库ID字段的方式直接对其数据进行删除与添加,删除的数据ID数不会被新的数据ID所代替,数据的ID会依次呈上升的形式无限排列下去。通过程序界面连接数据库语言,增加采用Mysql增加语句insert into t_user(id, degree(难度),style(类型),content(内容)) values(xx,xx,xx,xx)来设置用户自定义的试题;删除则采用Mysql删除语句

26、delete from tablename(表名) where xx=xxx and xxx = xxx or xxx = xxx数来进行条件的控制并且进行数据库删除操作数据。当然,数据库初始化的时候处理关键的键以及主键不能为空以外,其余用户可以选择留空白,只需勾写必须的条件即可完成增加删除功能。l 查阅试题功能查阅试题的功能主要是为了方便使用者快速、直接地找到自己所需的试题。快速搜索关键字的方式可以为前台或者后台来完成。使用后台的方式需要在数据库当中设置一个问题关键字的字段,在其中录入相应的关键字,然后对其搜索按钮进行处理进行连接查询数据库得出符合结果的试题。使用前台的方式需要将关键字全部读

27、取在指定的文件当中,通过Javascript对其进行代码的读取,采用正则和ajax等方式将相应关键字进行提取,然后在对比input框中输入的数据从而得出符合条件的试题。考虑到本系统采用了数据库读取的方式,我们便可以在数据库模型搭建的时候很好地预测所需要的字段,方便了所有功能的实现。所以本系统采用与后台数据库结合的方式进行查询。采用Mysql查询语句select id(试题ID),stname(试题名称),keyword(试题关键字)from DB_name(表名)where(条件设置) degree(难度系数) is num(数值)的方式在界面得出用户所需要查找的相应内容,当然,select后

28、面根的具体的需要展示出来的字段可以根据用户需要在设计的时候作出调整,我们也可以全出查询出来,只在界面展示用户需要的部分。Where后面跟的条件当然也可以根据用户的需求来改变设置,用户可以使用多个条件进行条件的定义。最后满足所有条件的试题将会被展示出来,否则题库中没有符合该条件的试题。l 编辑试题功能对于题库的编辑功能的设定主要方便了用户对指定试题的特殊要求做维护和修改,通过修改主要参数、内容环境以达到一题多用、举一反三。同时也方便了用户纠正指出被忽略的试题错误。进入试题编辑页面进行完编辑功能后点击保存,程序将执行修改数据库的Mysql语句update tablename(表名) set 字段=

29、xx,字段=xx where(条件设置) xxx=xxx and xxx=xxx从而保存修改内容。题库编辑功能的实现帮助了用户随时随地自定义地将试题修改成自己所需的条件,对于不同用户对同意试题的难度理解的定义、所花时间的需要以及出现的频率的不同做了很好的区分,每位用户都可以结合自己的实际情况进行试题的考核。2 数据库的设计与开发数据库基础在整个系统的功能运行流程当中,我们可以很容易地发现一条贯穿整个系统的“线”,那就是数据库,无论是用户的登录系统,还是题目的增加、删除、查阅与编辑,再到试卷的生成、试题的保存都离不开数据库。那么接下来,我们就有必要对数据库进行一些基础性质的讲解。我们常说的数据库

30、(Database)通俗地来讲就是利用主机空间开辟的一个虚拟的对数据结构进行储存、管理的一个数据仓库。数据库最初诞生于1950年,最初只是用于储存和管理一些重要的数据,发展至今,数据库已经得到了非常广泛的运用,存储资源的种类也变得越来越多种多样。用户可以通过不同类型的代码对数据库进行连接从而对数据进行增加、删除、查阅和修改、展示等等功能。如今市面上常见的数据库有ORACLE(甲骨文)、DB2、SQL Server、Sybase、Informix、MySQL、VF、Access等等。但是一般基于系统大小、开发速度、开源程度以及成本的考虑,在中小型系统或者网站的开发的时候,我们往往选择Mysql数

31、据库作为主流数据库。Mysql的功能未必是最强大的一个,它相对于ORACLE(甲骨文)、DB2等数据库的功能上来说还略差一截,但就其开源程度以及传播的知名度来说,Mysql因其卓越的开发速度以及可靠性在中小型系统开发当中占据了不可或缺的一席。数据库的广泛运用使得市面上出现了很多数据库的编辑使用工具。比较流行的有phpAdmin、Navicat、SQLyog、Sequel Pro、Microsoft SQL Server等等。每一款数据库管理软件都有自己的优劣势,无论使用哪一款,目的都是为了简化方便对数据库的管理和操作。phpAdmin是一款基于网页的Mysql开源管理器,它以界面简单、功能齐全

32、而深受广大用户的喜爱。但本系统最终还是选用了Navicat作为数据库管理编辑的软件。Navicat是一款跨平台的(于Windows/Mac/Linux)的管理数据工具,相对于页面形式的phpAdmin来说,Navicat在界面优化以及操作处理的运行速度上来说更胜一筹,同时也避免了数据库软件受到网页浏览器影响的情况。Navicat的完全开源工作并不复杂,在网上可以轻易地搜索到教程并且在5分钟内搞定。本套试卷自动生成系统使用Mysql数据库,Navicat数据库管理工具进行操作管理。数据库设计需求2.2.1 数据库设计思路在程序制作初始,将数据库所需要用到的表一一罗列出来有利于帮助整个程序的设计思

33、路和需求分析。本系统主要用到的数据表有用户表、选择题型表、填空题型表、简答题型表以及一些备用和拓展功能表。用户表主要用于不同用户登录进行自定义题库操作时候对每个用户的区分和数据保存;选择、填空、简答题型表主要用于用户对试题的修改和提取以及试卷自动生成功能的使用。其他的一些表(可选)可用于数据备份和恢复、考试时间、难度系数算法的判断等等,当然,也可以用纯前端的Javascript来进行算法的关联,数据库的大体设计思路图如所示。图-1 数据库设计思路示意图u 用户登录:用户登录首先需要进行用户注册以确保数据库能够识别下一次登陆并保存用户对试题的相关操作。第一次登录的用户会得到数据库试题的全部初始数

34、据,之后不同用户对题库的不同编辑和修改将会根据各自的账户保存为新的数据。试题构造表:试题构造表主要是为了满足试题功能配置而设置的数据表,例如选择题应该有ID、试题编号、题目类别、题目状态、创建时间、创建人、答案id、难度等级等多个字段构造而成。依次构建出选择题、填空题、简答题的数据类型表,为用户在选择难度、试题类型、试题搜索、试题编辑等方面提供数据库切入字段,方便Mysql数据库语言调用。数据库表与字段的设置u 用户登录表字段:用户登录表主要记录的字段有用户的id、userName(用户名)、userNum(用户编号)(可选)、passWord(密码)、state(状态)(可选)、cTime(

35、创建时间)。-1 数据库用户登录数据表字段名数据类型主关键字取值说明idvarchar(16)key用户独有IDuserNamevarchar(64)用户名userNumint(32)用户编号passWordvarchar(64)用户密码cTimevarchar(16)创建时间stateInt(8)用户状态u 选择试题表字段:选择题的字段主要有id、subject(题目)、subNum(题目编号)、type(题目类型)、state(题目状态)(可选)、cTime(创建时间)、cuser(创建人)(可选)、answerId(答案id)、degree(难度系数)等等。表2.2.2-2 数据库选择题

36、表字段字段名数据类型主关键字取值说明idvarchar(16)key题目IDsubjectvarchar(16)题目subNumint(32)题目编号typevarchar(64)题目类型degreefloat(8)题目难度cuservarchar(64)创建人(可选)cTimevarchar(16)创建时间stateInt(8)题目状态(可选)u 填空试题表字段:前台系统下达订单后直接更新到后台,用户可对新增订单进行办理操作,表结构如表2.2.2-3所示。 数据库填空题表字段字段名数据类型主关键字取值说明idvarchar(16)key题目IDsubjectvarchar(32)题目subN

37、umint(32)题目编号typevarchar(8)题目类型degreefloat(8)题目难度cuservarchar(32)创建人(可选)cTimevarchar(16)创建时间stateInt(8)题目状态(可选)u 简答试题表字段:用户系统角色的增、删、改以及角色对应系统资源的分配表结构如表2.2.2-4所示。 数据库简答题表字段字段名数据类型主关键字取值说明idvarchar(16)key题目IDsubjectvarchar(64)题目subNumint(32)题目编号typevarchar(8)题目类型degreefloat(8)题目难度cuservarchar(32)创建人(可

38、选)cTimevarchar(16)创建时间stateInt(8)题目状态(可选)3 试卷自动生成系统流程3.1 物理结构流程图3.1-1 系统总体设计架系统的主要两大块分为“试题处理”和“在线考试”两大板块,无疑两者都与数据库相关辆。使用者通过登录系统进入主界面选择查看试题或者在线考试。图3.1-2 查看题库结构示意图查看题库是一个非常庞大的功能构造,进入查看题库的界面之后,用户可以根据需要查看的试题类型选择选择题、填空题以及简答题,并结合数据库对齐进行增加试题、删除试题、查找试题、编辑试题等功能。若用户选择增加试题功能,那么用户将进入到新增试题的界面,对其题目、类型、难度以及分数等等数据进

39、行填写,最终保存数据到数据库,新增试题成功。-3 在线答题示意图 在线答题作为两大功能模块之一,同样的拥有强大的功能体系。用户选择在线答题选项之后,将会跳转到考试试题需求选择的界面,用户一次会对选择题、填空题、简答题中需要用到的试题类型的数量、单题分数、难度系数进行设定,系统会自动根据单题分数统计出总分数,帮助使用者合理地判断和安排自己的总分数。最后用户设置完测试时间,即可点击试题生成按钮一键生成满足条件的试题进行试题测试。-4 试题作答示意图在试题测试的过程中我们往往会遇到以下的问题:用户因为特殊原因耽搁了时间,或者用户在出完试题答题之后发现自己设定的难度并不符合自己水平的要求,又或者某些原

40、因导致用户本次测试没有发挥出自己的理想水平,测试结果并不能真实地体现自己的水平,这个时候就需要重新作答或者重新更加合理地制作对应自己适合难度的试题了。用户在试题作答的过程中系统提供了交卷、重新作答、返回选题的功能,很好地帮助用户解决了以上的问题。文件结构流程展示本次系统程序架构主要采用SSH三大框架,使得代码的编写更加容易。系统分层结构如下: 系统代码结构从一个项目的文件夹结构可以看出一个项目的整体性是否完整,逻辑思路是否紧密。一个优秀的项目必然有其严谨的文件夹结构。以本系统为例,根目录文件夹以作者名称拼音大写字母命名,下放关键文件夹如上图所示。以下为文件夹结构说明:action文件夹:主要是

41、存放各个实体类之间页面跳转的控制。comms文件夹:主要是存放一些公共的类和实体。entity文件夹:主要是存放各个实体类文件。fiter文件夹:主要用来存放各个过滤器类文件。Service文件夹:主要是存放各个实体类通过Action控制的直接方法。:是hibernate的配置文件:是连接数据库的配置文件:是web项目的配置文件initSQL:是数据库初始化数据文件log4j:是项目日志文件:是jap的数据库连接配置:是Struts的配置文件4 界面设计界面流程展示图4.1-1 系统界面流程示意图本系统主要由8个主要的界面组成,分别是用户登录界面、系统主界面(幻灯片+导航栏)、查看题库界面、在

42、线答题界面、编辑题库界面、新增试题界面、选择试题要求界面以及开始作答界面。用户使用本套试卷自动生成系统之后一次操作的步骤将会如图4.1-1所示进行。4.2 界面设计示意图本次系统界面设计主要采用灰色冷色调进行颜色搭配,蓝色作为辅色,即保证了考试试题这一严肃的场合情景需求,也保证了色调的不单一性,满足了用户的视觉交互效果。本试题的界面菜单中加入了Javascript设计用户交互体验,例如下拉菜单,图片轮播等等,同时也解决了传统尸体自动生成系统界面的单调的尴尬情况。图4.2-1 系统用户登录界面展示用户使用该试卷自动生成系统,必须先通过注册用户到数据库以开辟属于自己的独立空间,以保存符合自己需求的

43、自定义试题,完成对需求试题的增删查改以及自定义试卷生成。注册完成后,用户编辑额度数据将会被保存到当前用户,下次用户输入帐号密码即可连接到保存的数据。用户也可选择注册多个数据以达到针对性试题分类训练的效果。主界面的功能导航菜单采用了Javascript作为用户交互的延展,主界面主要提供查看题库以及在线答题两大模块。用户可根据自己的需求进行选择。图4.2-2 系统功能导航菜单展示在线答题分为了两大块,一块为自主构建,一块为系统生成。自主构建主要用于用户自定义选择试题。系统生成是用户在选择了试题的难度、分数、数量等等一系列条件之后系统在数据库中自动生成满足条件相应的试题。图4.2-3 系统试题菜单展

44、示查看题库功能为用户提供了展示数据库题库的功能,用户可以根据类型分别看到数据库中的单选题、多选题、填空题以及简答题库存以及状况,方便用户进行试题的查找以及试题的编辑。图4.2-4 系统主页面展示系统登录进去的主界面如图4.2-4所示,左边为功能导航菜单展示,右边为系统展示的幻灯片,提供多套优秀的试题给用户使用,也可以放很多适用的信息。图 系统试题编辑菜单展示系统试题编辑菜单界面为用户对试题的编辑整理提供了极大的帮助,在这里用户可以自定义每一道题目的增加、删除、查阅与编辑功能并保存到数据库中。图4.2-6 单选题展示列表题目名称能够更具ajax去动态的查数据库已有的单选题目,避免重复。题目类别运

45、用了easyUI的combotree插件,能够去调用数据库查找已有的题目类别表,供用户选择,不能手动输入。图4.2-7 根据题目类型来查找示意图图4.2-8 编辑界面示意图题目名称能够更具ajax去动态的查数据库已有的单选题目,避免重复。题目类别运用了easyUI的combotree插件,能够去调用数据库查找已有的题目类别表,供用户选择,不能手动输入。 图4.2-9 多选题制定示意图点击导航栏的多选题,进入到多选题的展示列表,同样展示了该题目的所有信息,此表格能够分页查询,也能进行题目关键字和类别的筛选,点击新建,进入到多选题的新建页面,与单选题类似,只是在答案便成了可以同时选择多个答案值:点

46、击编辑按钮,进入编辑页面,并显示当前这条数据的所有信息,能够进行修改,并保存。图4.2-10 填空题制定示意图在导航栏点击填空题,进入到填空题展示列表,其中基本功能都是一样的,只是在题目中,用方框来表示应该填的空格。点击新建,进去填空题新建页面,此页面的题目输入采用了uedit文本编辑器插件,此插件能够自定义多种编辑样式,在此,只有一个方框的样式,用户需要用方框来表示填空题的空格图4.2-11 简答题制定示意图点击新建,进入到简答题的新建页面。其中需要用答案关键值来保存简答题的答案,关键词可以保存多个,可以点进新增按钮,则和会在表格下新增一行,点击删除按钮,则删除当前关键字。当关键字的个数只有

47、一个后,如果用户继续点击删除,则会弹出提示框,提示用户必须至少保留一个关键字。点击编辑按钮,则进入到编辑页面,同样可以删除和添加关键字;同一个关键字只能保存一次,如果有两个相同的关键字,则通过利用easyUI的validatebox插件来检测数据,并提示用户此关键字重复。图4.2-12 新建题目类别示意图点击编辑,则进入到类别的编辑页面,入宫将此类别的状态改为停用,则会同时停用此类别下面的所有的题目。5 系统算法设计试卷自动生成系统当中存在着许多需要计算的算法,例如试卷自动组成中抽取选定条件的试题如何从庞大的数据库中调用抽取,对于易错题它针对个人的难度如何实现合理的波动,用户试题得分的计算等等

48、,都离不开各项算法的研究。一套合理的算法不仅仅可以帮助用户获得更好的使用体验,帮助用户通过试题更好地提高自身需求,同时也严谨了整个系统的逻辑设计,提升了系统设计的科学性。以下我们就来介绍本套试题中设计到的算法研究。组卷方法设计试卷组卷算法是试卷自动生成体现自动化的核心,它要求根据用户所选择的试题难度、分数、数量、类型等等条件之后自动生成符合条件的试题,那么其中就存在一套能够从符合众多条件的庞大数据库题库中提取相应试题的算法,并且要尽最大可能避免试题雷同的情况。试题组卷的优良程度是辅助教学的重要缓解,如何保证生成的试卷满足不同用户需求的不同指标就显得十分重要了。试卷组卷的方式有很多,常见的主要有

49、随机法、回朔法以及遗传算法。以下我们就来介绍几种比较常用的试卷组题算法。5.1.1 随机法随机法顾名思义就是随机的选取,结合本系统的设定即根据用户设定的各项条件,在满足各项条件指标的情况下随机地从数据库中调取满足需求的题目。简单地说就好比在关联确认了用户生成哪种类型的题目之后,根据这种题目的难度系数,结合特定的随机计算方法生成一个在该难度系数试题中随机获取一条,然后通过这条信息的主键确定一条数据库数据并且读取出来,记录到出题的题目集合当中去。每随机到一道题目对象,就会与已经调用的题目集合进行循环比较,若该值相等的话就不予采用并退出继续调用下一个,若不相等的话即以调用的试题中还未出现过该题,给予

50、调用。随机法的优点是简单直接,能够快速地生成基本满足用户需求的试题,同时较为平均的选取方式也能够避免作弊现象的出现。但是随机法的选题可能并不是试题选题中的质量最优的算法,因为它并不具有回朔的性质,逻辑思路稍微欠缺一点。5.1.2 回朔法回朔法又称为探索与回朔法,也简称试探法。它是一种一步步按照最优解进行不断调整的优越搜索法。当有很多种选择的时候,回溯系统会对每个选项逐个进行比较,当发现原先的选项不是最优解或者达不到设定目标的时候,就会退回一步做出重新的选择,知道将所有选择全部试探完,退回到原节点,然后做出最优解,选择前进路线,直至试题全部选出。从上述对回朔法的描述我们不难看出回朔法能够非常精确

51、地给出试卷组装的最优解并且高质量地完成试题的组装,但是这种高成功率的算法是建立在大量牺牲时间的基础上面进行的,往往完成一次回朔法我们已经可以完成N次随机法的随机选取了,并且回朔法占用的内存相当大,程序的结构和逻辑性思路要求比较高,选取的试题又都是最优解缺乏了一定的随机性。所以往往在试题数量要求较小的试题组装过程中,因为技术较小可以忽略那一点随机性并且也不是消耗过多的时间,我们可以考虑选择回朔法。图5.1-2 回朔法思路示意图5.1.3 遗传算法遗传算法的由来其实是从模拟达尔文生物进化论中的自然选择和遗传学机理的生物进化过程的计算模型。它其实是一种通过模拟生物进化过程中搜索最优解的方法。由后人运

52、用到了神经网络当中去并且取得了显著的效果。但是,仿基因编码的工作相当庞大复杂,我们往往采用二进制编码进行简化,通过“优胜劣汰”的方式去判断出“衍生”、“变异”、“交叉组合”的优劣性质并且做出判断。遗传算法以拟生物学的方式得到了很多学家的认可,同时也可以运用到与“选择”有关的编码当中来,但是由于其原理过于复杂,本文不作详细的研究。5.2 试题难度算法试题难度主要通过用户对试题的难度设定,通过文本输入试题难度,正则控制文本输入内容已到达数据库获取正确的试题难度并且保存的目的。本文中提到的试题难度的算法主要是在用户答完试题之后系统自动给出的增加难度和降低难度的算法设定,其原理也较为简单,在这里只做简

53、单的介绍。通过前面对系统的介绍我们知道,在用户生成完试题并且进行完作答之后,系统会统计出该用户此次的试题成绩并且提供增加试题难度和降低试题难度一键再次生成试题的功能。试题的难度增加或者减少都是按照系统试题难度算法做出相应变化调整的。首先,系统会获取到本次试题的出题类型、各个类型的题目数量以及难度系数、考试总分数与总时间,并且获取到相应的数据库字段,其次,用户若选择增加难度,系统会按照N=N+(p/P)*0.2的方式四舍五入保留一至二位小数给出该类型题目的新的难度系数,并且从数据库中提取出满足难度系数条件及类型的相应的试题重新组题。若用户选择降低难度,则公式变为N=N-(p/P)*0.2。其中N

54、代表难度系数,p代表本次得分,P代表总分数。5.3 试题分数算法本系统的分数算法主要解释系统如何对用户得分做出评价。我们知道,系统在用户点击了提交试卷之后会根据用户的作答情况给出相应的分数。再给出分数之前,系统会对用户在文本中的答案与标准答案进行对比,主要原理是采用了通过提取用户作题文本中的数据与数据库答案数据对比的方式进行等值判断,若相等,用户得分追加,若不相等则不作追加得分。相对于选择题、判断题、填空题可以很轻易地判断出对错,但是如何判断简答题呢?在自动化的系统当中当然不会像人工改卷一样,我们会依次读取用户在文本中的答案,并提前在数据库中的答案中给出试题答案的关键字或者关键语句,若用户的答

55、案当中存在与之相符的关键字,则基本可以判断出用户该题得分。通过一题设置多个关键字的方式有利于提高判断的精准性,也有利于试题的一题多问的设置。例如P=p1*J1+p2*J2+n*num,其中P为总得分,p1、p2为类型题答题正确个数(简答题除外),J为该类型题目单体分数,n为简答题关键词或者语句个体分数,num为简答题关键词或者关键语句正确个数。从而计算出本次试卷考试用户的总分数。5.4 系统算法总结本次试卷自动生成系统的试卷组卷方式最终选定了随机法。随机法也是当前最适合运用到试卷作答系统的试卷组卷的方法,相对于回朔法而言有效率快的优点,相对于遗传法有简单、易算的优势。此外,一套试题总量一般不会

56、超过100道,庞大的数据库试题支撑加上对于重复率的判断处理极大化地减轻了随机法的缺点。最重要的试卷组题算法确定之后,我们在选用难度系数的算法以及得分算法的时候做的处理就显得略微简单一点。本身其实也用不着刻意地去提高这些难度算法的难度,我们只需要做出能够满足用户需求的功能之后,代码和算法其实越简单越好。6 主要功能代码展示登录功能代码展示数据库链接这是运用Hibernate框架的主要配置文件,其中配置了连接数据库的地址,用户名,密码以及框架中各种连接池、缓存池、对数据库的操作规范,以及在调用数据库时是否在控制台显示sql语句和日志的保存等。<persistence xmlns="

57、xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation=" version="2.0"><persistence-unit name="jpa"><provider>org.hibernate.ejb.HibernatePersistence</provider><properties><property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /><property name="hibernate.connection.driver_class" value="com.p6spy.engine.spy.P6SpyDriver" /><property name="hibernate.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论