• 2.73 MB
  • 2022-04-22 13:36:37 发布

在线考试功能系统设计毕业论文.doc

  • 49页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'在线考试功能系统设计毕业论文目次摘要IAbstractII1绪论11.1在线考试系统的问题的提出11.2在线考试系统的研究目的及其意义11.3国外相关研究22需求分析32.1 现状分析32.2 功能需求分析42.3用例图分析42.4数据流程图分析62.5可行性分析72.5.1经济可行性72.5.2技术可行性72.5.3法律可行性82.6运行需求分析82.7系统开发环境配置83关键技术介绍93.1JSP技术介绍93.2Struts框架介绍103.3数据库—MySQL5.0124数据库设计134.1数据库需求分析134.2数据库概要设计144.3数据库逻辑结构设计164.4数据库表设计175概要设计20 5.1系统功能模块设计205.2系统处理流程图216系统实现236.1数据库与系统连接236.2考试及管理员登录模块246.3人员管理模块266.4试题库管理模块266.5试卷管理模块286.6考务管理296.7考生界面317关键功能实现357.1考试倒计时功能实现357.2自动组卷功能实现357.2.1组卷模型描叙357.2.2问题描述367.2.3算法介绍(原理)367.2.4算法实现377.2.5算法伪代码实现388测试398.1测试目的398.2测试方法398.3测试实例398.3.1考生登陆模块测试398.3.2在线考试模块测试408.3.3自动组卷模块测试428.4系统的特点448.4.1系统优点448.4.2系统的缺点449结论45致谢46参考文献47 1绪论1.1在线考试系统的问题的提出当今社会各行各业都急需人才,而人才选拔的重要方法就是通过考试来决定。现阶段,大部分学校的考试都是采用传统的考试方式即有老师出试卷,学生在试卷上答题,老师进行人工评阅试卷,以及人工分析试卷这四大步骤组成。这样做就会带来一些问题:一是给老师带来出试卷的麻烦,不利于老师教学效率的提高;二是由于人工考试方式的工作量非常大从而容易出现一些人为的错误;三是由于人为因素的不确定性,可能会造成试卷试题范围过于狭窄。所以随着各种考试类型的不断增加和考试难度的不断提高,传统的考试方式已不再满足如今的考试需求,急需要现代化在线考试系统的辅助。目前,随着计算机科学技术的快速发展和网络的日益普及,以及人们对于教育的不断重视,基于互联网的在线无纸化考试已成为大势所趋,同时现在很多国内外大学和社会培训机构都已经开设了远程教育服务,通过互联网实现远程异地培训和教育,而在线考试系统也越来越成为老师检验教学成果的好帮手,从而为在线考试系统发展提供了坚实的基础。现在,我国的计算机硬件开发技术已经发展达到了相当高的水平。但是,在我国在线考试系统软件的开发目前还处于初步阶段,不过随着技术的不断深入发展,将会开发出更完善,更实用的在线考试系统,并将其应用于实际考试当中去。1.2在线考试系统的研究目的及其意义 计算机科学技术与网络技术的快速发展,人们急切需要利用这些科学技术来实现一个在线考试系统,用来减轻老师的出题负担以便提高考试效率和考试质量。使考试更趋于公平、公正。本课题“在线考试系统”就是在这种形势下提出的,其研究的主要目的就是利用计算机技术结合相关网络技术,把在教学中可实现标准化考试的课程由传统的纸张考试模式转变成为无纸化考试模式,以实现考生信息管理、试题库管理、考务管理、、自动组卷、在线考试,计算机自动评阅试卷和进行成绩统计等功能,从而达到节约资源,提高考试效率,保证考试结果公正客观性。 由于利用计算机进行自动组卷、阅卷,不仅能节省教师大量宝贵时间,而且能很大程度上减少出卷人的主观影响,使考试工作更加规范化,更加公正、客观、有效、切实的反映考生的实际学习成果,有助于促进教师教学质量的提高,有助于实现教学、考试分开,使老师只需按照教学大纲进行备课上课,把主要精力应用于提高教学质量和改进教学方法当中,无需过多的考虑题目的设计,这对提高整体教学水平与质量有着不同寻常的意义。同时,在现阶段,基于互联网应用技术的在线考试系统,由于现在浏览器访问极为方便,考生可以不受时间和空间的限制参加考试,一个成熟的在线考试系统可以让考生在学习过后及时检测自己的学习成果,从而发现自己的不足,提高学习效率。在线考试系统中题目可以自动生成、试卷可以自动提交、试卷还可以自动进行评阅。所以只要搭建好一套完整的试题库就可以使考试有效的自动进行。由此一来,老师只要把主要精力用于题目的设计、题库的维护,而不是考试的组织,从而大大的减轻了教师的人力,同时因为试卷无需印刷,也大量节省了试卷印刷的成本,具有相当大的经济意义。1.3国外相关研究 目前在线考试系统有很多,例如ETS(美国教育考试服务中心)举办的GRE(美国研究生入学考试)的计算机网络化考试就是最有影响的案例,但是在线考试系统实现的功能差异很大,存在的问题也很多,例如数据库的安全性、自动组卷算法优化等,所以在线考试系统研究开发仍任重而道远。 1需求分析2.1 现状分析传统的考试要求组织者提前命题试卷,然后确定统一时间,让所有考生到考场进行考试。这种模式如下图2.1所示出题印刷试卷安排考试学生参加考试阅卷,统计成绩图2.1传统考试模式这种模式存在有较多的问题:出题:由于考试都是要在统一的时间进行开考,所有的考生都要考同一份试卷,所以出题工作就要非常小心谨慎,试题出得太容易或太难,都有可能达不到检测目的,特别是对于一个大型的考试,如何准确的把握试卷的难度,一直都困扰着命题老师。而如何保证试题不在考试之前泄漏出去,也是一个令老师头疼的问题。印刷试卷:对于规模较大的考试来说,印刷试卷需要大量的时间和人工,对纸张资源也是一种很大的消耗。对于在不同地区的考试,还要考虑远距离试卷的运输成本的问题。在印刷试卷和运输试卷的过程中同样也要考虑试卷泄漏的问题,其中任何一环出现了问题,都会使整个考试工作付诸东流。。安排考场:对于规模较大的考试来说,管理与培训监考老师是一件很麻烦的事。特别是考试特别多的时候。许多的考试都要相继举行的时候,对于老师和教室数量相对紧张的学校来说,如何合理安排考场与调配监考老师,又是一件相对复杂的工作。考生参加考试:自古以来,考试进行当中都会产生考生作弊这一问题,组织者想了很多的办法来解决考生作弊这一问题,如增加监考人员的数量,把试卷分为AB 卷,加重对考试作弊人员的处罚力度等,但是这些方法都没能有效的解决考生作弊这一问题。由于不同区域监考程度的不同,对控制考试时间的程度也不同,这些都很难达到一个统一标准。再加上过多的人为因素干扰,使得考试客观性有所下降。判卷:考试结束后,采用人工评判试卷的形式比较容易出现错误,并有可能出现人为造成的不公正现象。2.2 功能需求分析根据对传统考试分析。我觉得基于互联网的在线考试系统可以很好的解决现阶段考试所出现的问题。在线考试不仅可以减轻考试组织、评阅试卷、统计成绩等方面所消耗的物力和人力,并且突破了空间与时间的限制,不仅可以节省资源,而且可以提高评分的客观性、公正性和准确性,大大改善了考试工作的效率。根据调查分析,我认为在线考试系统应该实现基本考试功能,即应具有命题,组卷,分配试卷,在线参加考试,考试结束后评阅考卷,查询考试成绩等基本的考试功能。具体需求功能如下表2.1需求功能表命题功能:老师根据大纲进行出题。管理员将题目输入到系统的题库进行保存。组卷功能系统根据考试大纲要求进行自动组卷。试卷分配功能系统将组好的试卷分配到考生,然后进行考试。在线考试功能考生输入考号密码登陆系统后,选择对应的试卷可进行考试。答题中,有倒计时的功能,考试结束时还没提交就自动交卷。评阅考卷功能系统将自动对客观题进行评分。将主观题提供老师批改。成绩查询功能考试结束后,考生可以查询到自己的考试成绩2.3用例图分析 本系统针对客户端的应用方案和用例可以为分两方面的用例,管理员和考生用户,下面利用StartUML工具将从这两个用例图画出,图2.2管理员用例图,图2.3 考生用例图进一步来分析该在线考试系统。图2.2管理员用例图分析图2.3考生用例图分析 数据流图分析利用数据流图分析在线考试系统的试题管理和试卷管理的数据流程。2.4数据流程图分析 试题管理数据流程图1.第二层数据流程图2.4图2.4试题管理第二层数据流图2.第三层数据流程图2.5图2.5试题管理第三层数据流程图试卷管理数据流程图1.第二层数据流程图2.6图2.6试卷管理第二层流程图 2.第三层数据流程图2.7图2.7试题管理第三层数据流程图2.5可行性分析 可行性分析也称为系统可行性研究分析,即在开发系统之前,针对开发的系统是否具备可能性与必要性进行一些分析调查,对系统的开发从经济、技术、法律等方面进行全面的研究与分析,从而最大程度的减少投资的失误,保证开发的系统能成功使用。可行性研究就是为了确定问题是否可以在最短的时间内以最低的成本解决完成。下面我将针对经济可行性与技术可行性对在线考试系统进行简单的可行性分析。2.5.1经济可行性主要是对项目的经济效益进行评价,利用计算机来实现在线考试以成为适应当今教学管理的新方式。开发一套能满足互联网的在线考试系统的软件是十分必要的,实现试题管理和试卷生成自动化,在减少由于认为失误而早成损失的同时,也可以使老师减少工作量。本系统在经济上是可以接受的,并且本系统实施后可以显著提高考试效率,有助于学校完全实现信息化管理。所以在经济上本系统是可行的。2.5.2技术可行性本系统是基于B/S模式的在线考试系统,使用JSP技术并使用经典的MVC三层结构体系即该系统由表现层、业务逻辑层和持久层构成。运用目前比较流行的WEB框架—— Strut,提供了对开发MVC系统的底层很好的支持,使用MySQL作为本系统的后台管理数据库,配合使用Tomcat作为本系统的应用服务器。所以在技术上本系统是可以实现的2.5.3法律可行性本系统的开发不涉及任何侵权问题。设计本系统过程中的一切行为都是在法律许可的范围内。系统开发和运行也与法律法规没有任何抵触和冲突之处。所以在法律上本系统是可行的。2.6运行需求分析硬件条件:英特尔CPU、1GRAM、10G硬盘以上的PC机。软件条件:WindowsXPIE6.0以上2.7系统开发环境配置选择windows平台作为主导,一方面考虑目前windows的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;令一方面从技术角度来讲,windows平台上的应用无论是在开发上,还是在软件的部署上都是非常容易,而且性能优越。具体如下:1.开发工具:MyEclipse6.62.辅助开发工具:Dreamweaver83.数据库:MySQL5.04.服务器:ApacheTomcat6.05.运行环境:安装JDK1.6支持Java运行。6.开发技术:JSP,Struts框架。B/S模式。 3关键技术介绍该系统基于B/S模式,采用Struts中的MVC的三层体系结构模式进行设计,使用JSP+JavaBean+MySQL进行实现。下面对JSP,Struts,MysQL做些简单的介绍。3.1JSP技术介绍 JSP(JavaServerPages)是一种动态网页技术标准。JSP语言的基础是Java编程语言,这种语言实现了“一次编写到处运行”可见其移植性非常好。并且Java语言是一种纯面向对象的编程语言,任何代码都是封装在类中,所以类的重用性较好。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,在JSP文件中,可以直接书写HTML标签,并嵌入JSP标签以及Java脚本,很大程度地简化了动态Web页面的开发。使开发变得快速,轻松。  JSP的实质是最终作为一个Servlet类运行在服务器上。也就是说所有的JSP文件最终会被Web服务器自动转化为Servlet并加载运行。运行结束后,通常返回给客户端的就是一个HTML文本,客户端使用浏览器进行浏览。JSP在服务器端的具体工作过程如下:(1)当服务器第一次接收到客户端对JSP文件的请求后,由JSP引擎将对应的JSP文件自动换成Servlet。(2)JSP引擎调用服务器端的Java编译器对Servlet代码进行编译,生成字节码文件。(3)服务器将字节码文件加载到内存运行。(4)运行结果一般为HTML格式的文件,返回客户端。运行原理图3.1如下: 客户端请求该jsp文件是否第一次被访问JSP引擎将jsp转化为servlet编译servlet将字节码文件加载到内存是运行执行结果返回客户端客户端得到响应否图3.1运行原理图3.2Struts框架介绍Struts是Apache基金会Jakarta项目组的一个OpenSource项目,它采用MVC模式,能够很好地帮助Java开发者利用J2EE开发Web应用。和其他的Java架构一样,Struts也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Struts是MVC思想的很好的体现,它继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的工作原理与体系结构如下图3.2所示: 图3.2[1]从图中我们可以知道,Struts的体系结构包括模型(Model)组件,视图(View)组件和控制器(Controller)组件三部分。1)模型(Model)组件模型组件并不是由Struts提供,一般由普通的接口和JavaBean充当,定义和实现业务逻辑的接口和类。2)视图(View)组件视图组件包括JSP页面、ActionForm和Struts标签。3)控制器(Controller)组件 控制器组件包括ActionServlet(核心控制器)、自定义Action(代表一个用户操作)。Struts处理请求的过程如下:(1)当浏览器客户端发起请求到ActionServlet时,ActionServlet首先对请求进行一系列处理:根据请求的路径和配置信息找到对应的ActionBean和FromBean。(2)在确定将要调用的ActionBean和对应的FromBean后就将请求中包含的值填充到FromBean中。在调用Action的execute方法前,ActionServlet还需要准备好ActionMapping参数,ActionMapping中包含该Action的配置信息。(3)然后Struts将请求分发至相应的ActionBean处理,ActionMapping参数ActionForm参数、request和response都作为参数传给处理请求的ActionBean的execute方法。(4)Action调用业务逻辑方法,得到返回值,并返回ActionForward对象。(5)控制器重新回到ActionServlet,ActionServlet根据Action返回的ActionForward对象转发到相应的JSP页面。(6)处理结果返回给浏览器。 3.3数据库—MySQL5.0MySQL5.0是一种开放源代码的关系型数据库管理系统,它与其他大型的数据库例如SQLServer、Oracle相比,MySQL5.0有着其自身的一些缺点,例如功能相对简单、数据库规模较小等,但这却一点都没有影响到它受中小型企业和一般的个人使用者欢迎的程度,因为MySQL提供的功能已经对他们来说已经够用了,同时因为MySQL5.0是一个开源数据库,所以可以大大减少系统成本。MySQL数据库的主要功能只在组织和管理很庞大或复杂的信息和基于WEB的库存查询请求不仅仅为客户提供信息,而且还可以为您自己使用数据库可以提供如下功能:(1)减少记录编档的时间(2)减小记录检索时间(3)灵活的查找序列(4)灵活的输出格式(5)多个用户同时访问记录 4数据库设计在对数据库进行分析设计时,应按照数据规范化理论的设计,尽量减少冗余数据,以确保数据完整性,统一性。在数据库基本设计原则的指导下,数据库设计重点应考虑下列因素:1.数据库表设计必须布局合理,层次分明。2.数据库必须高度结构化,保证数据的结构化,规范化和标准化,这是建立数据库和进行信息交换的基础。数据结构的设计应该遵循国家标准和行业标准,尤其要重视编码的应用。3.数据库设计的时候,一方面要尽可能地减小数据冗余,减小存储空间降低数据一致性问题发生的可能性,另一方面,还要考虑适当的数据冗余,以降低程序开发难度。4.数据库设计时应保持数据库中数据的准确性和统一性。在系统中,多个用户同时操作数据库中的共享数据,就会可能影响到数据库数据的一致性产生错误,因此必须使用“锁”等方法来确保数据库中数据的一致性。5.数据库设计的时候,对于数据库中的保密数据还必须设计一些安全机制来确保数据苦的安全。在数据库设计实际的过程中,确定数据库的结构设计是否合理的,主要是依据数据库中是否有以下特点:1.数据库是否具有一定的灵活性、适应性和可移植性;2.数据库是否具有与其系统的兼容性;3.数据库是否具有对新环境的可改变性;4.数据库的存储成本是否够低;5.数据库的设计是否有利于系统的实现;6.是否具有良好的数据库结构,易于维护,易于理解,效率较高。作为一个具有一定应用价值的在线考试系统的数据库,就要求数据库设计人员设计出一个好的结构,减少数据库数据的冗余的产生。下面就介绍在线考试系统的数据库是如何设计的。4.1数据库需求分析需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。 根据分析,该系统主要涉及到几种信息的存储,管理员信息的存储,考生信息的存储,题库信息的存储,试卷详细信息的存储。考生答卷信息的存储。考生隶属的部门信息。所以该系统需要建立管理员信息表,考生信息表,题库信息表,试卷信息表,答题信息表,部门信息表。4.2数据库概要设计概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。根据数据库需求给出该系统的E-R图4.1部门拥有考生选择试卷管理员组卷题库建立包含试题包括1nnmnmn1n1拥有n1n图4.1系统E-R图管理员的E-R图4.2 管理员管理员id名字密码图4.2管理员E-R图考生E-R图4.3考生考生ID性别电话号码密码姓名所属部门提示问题注册时间问题答案图4.3考生E-R图部门E-R图4.4部门部门ID部门名称图4.4部门E-R图题库E-R图4.5 题库试题ID试题内容标准答案加入时间试题类型分数答案难度值图4.5题库E-R图试卷E-R图4.6试卷试卷ID题目号试卷名考试时间试卷类型试卷状态试卷分数通过分数图4.6试卷E-R图4.3数据库逻辑结构设计数据库的概念结构设计完毕以后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。下面就要设计在线考试系统数据库的逻辑结构。 以概念结构设计中的E-R图为主要依据使用powerdesign设计出该系统的关系模式,该系统的数据库逻辑概念关系模型图4.7如下图4.7逻辑概念关系模型图4.4数据库表设计下面列出了设计过程中所用到的数据库表及其结构tb_manager表4.1用来保存管理员信息表4.1tb_manager表2.tb_manageer列名类型长度描述IDbigint8管理员IDnamevarchar30管理员名字PWDvarchar30管理员密码tb_user表4.2用来保存考生信息表4.2tb_user表 tb_user列名类型长度描述IDvarchar16考生IDnamevarchar20考生姓名pwdvarchar20登陆密码Sexvarchar2考生性别joinTimedatetime8注册时间Questionvarchar50提示问题answervarchar50问题答案Departmentvarchar30所属部门Phonevarchar18电话号码tb_department表4.3用来保存部门信息表4.3tb_department表tb_department列名类型长度描述IDvarchar16部门IDnamevarchar20部门名称tb_Questions表4.4用来保存考试题目表4.4tb_Questions表tb_Questions列名类型长度描述idbigint8试题IDtypechar8试题类型joinTimedatetime8加入时间Contentvarchar20试题内容answervarchar50答案standardvarchar50标准答案Difficultyint10难度值ValueChar10分数tb_paper表4.5用来保存考试试卷信息表4.5tb_paper表 3.tb_paper列名类型长度描述idbigint8试卷IDNamevarchar50试卷名typechar8试题类型timeint8考试时间IdlistVarchar10题目号Valueint8试卷分数PassValueint10通过分数StateVarchar10试卷状态tb_paperdetails表4.6存储具体试卷中的试题信息表4.6tb_paperdetails表tb_paperdetails列名类型长度描述paperIDBigint8试卷IDQuestionIDBigint8试题IDtb_Result表4.7用来保存考生考试成绩表4.7tb_Result表tb_Result列名类型长度描述idbigint8成绩编号userIdvarchar16考生idpaperIdvarchar60试卷IDsubjectiveint4主观题得分objectiveint4客观题得分resTotalint4总得分jointimedatetime8加入时间 5概要设计5.1系统功能模块设计在线选题系统主要分为系统前台和系统后台两个部分,本系统的后台部分主要功能包括:人员管理、试题管理、试卷管理、考务管理、本项目的前台部分主要功能是学生在线考试管理。其软件设计结构图结构如图5.1:在线考试系统管理员考生新增考生信息考生信息管理人员管理试题管理试题信息管理新增简答题新增单选题新增多选题新增填空题试卷管理管理新增试卷试卷信息管理手工新增试卷自动新增试卷考务管理管理试卷分发试卷管理试卷评分参加考试考试成绩查询考生资料修改考生密码修改 图5.1软件设计结构图管理员模块分为人员管理、试题管理、试卷管理、考务管理等模块。人员管理模块可以让管理员可以修改管理员的基本信息,添加考生信息,和对考生信息进行管理维护。试题管理模块具有新增单选题、新增多选题、新增填空题、新增简答题、试题的修改和删除管理的功能。试卷管理功能具有新增试卷功能,管理员可以手工添加新试卷也可以自动生成新的试卷,管理员还可以管理试卷。对试卷中的试题进行修改、删除。考务管理功能是当试卷出完后,管理员将试卷进行发布,发布给考试并开始考试,管理员也可以在考务管理中控制考试进程,如可以终止考试,也可以重新开始考试。在考务管理模块中,管理员还可以对试卷信息进行管理,如删除试卷等。考务管理功能中还有评分管理模块,在考试结束后就可以在此模块批改考生的主观题,给予主观题得分,而考生的客观题,系统会根据标准答案自动匹配评分。考试结束后系统会进行考后分析,将考生的考试的成绩进行分析。考生模块,考生输入考号和密码进入该在线考试系统的前台,考生可以对自己的信息进行维护,同时也可以修改考生的系统登录密码,当考生选择了需要参加考试的试卷时,该系统就会开始让考生在规定时间内进行在线答题,当规定答题时间到时,系统就会自动进行收卷提交。考试结束后,考生可以登录该系统来查询考试的成绩,以检测自己的学习情况。5.2系统处理流程图系统流程图可以很好的了解整个系统的大概运行过程,该在线考试系统的处理流程如下图。管理员流程图如图5.2 图5.2管理员流程图考生流程图如图5.3:图5.3考生流程图 6系统实现通过对在线考试系统进行需求分析,数据库设计分析,概要设计分析,已经将整个在线考试系统基本设计完成,接下了就要用代码来开始实现在线考试系统,下面将要介绍如何实现在线考试系统。6.1数据库与系统连接因为该在线考试系统使用于同一个数据库,这便于管理员管理维护数据库,同时也便于用户的操作,所以在介绍系统各模块的实现方法之前,首先介绍系统与数据库的连接方式,在本系统的开发中,我使用的方式是,使用JavaBean连接连接在服务器tomcat里配置的连接池。连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。连接池可以极大的改善用户的Java应用程序的性能,同时减少全部资源的使用。连接池主要的优点有:减少连接创建时间、简化的编程模式、受控的资源使用。连接池能够使性能最大化,同时还能将资源利用控制在一定的水平之下,但是它也有不足之处。如果超过该水平,应用程序将崩溃而不仅仅是变慢。配置连接池:1.首先要将mysql的驱动包放在tomcat/lib目录下2.在应用服务器Tomcat里的/conf下找到一个context.xml文件,在里面添加的内容如下:需要访问数据库就通过在JavaBean创建的一个叫DBConn的类来连接访问。 代码如下:连接数据库的JavaBean——Conn。通过JSP页面调用此JavaBean,可以实现对数据库的连接,数据表的添加、删除、更新等操作。介绍系统的数据库连接,下面就要介绍系统的主要部分的实现。6.2考试及管理员登录模块考生登录页面比较简单,考生在登录界面输入账号和密码,如果输入空值或验证码输入错误,系统会提示考生重新输入,如果考生输入的信息与数据库中的考生信息相同的话,考生就进入系统的考生页面参加考试,如果输入不正确就提示用户名或密码不正确,则会返回登录界面,登录界面示意图如图6.1: 图6.1登陆界面管理员登陆界面与考生界面基本相同。管理员输入账号与密码,如果信息匹配正确的话,管理员就顺利进入管理页面。如果输入不正确就返回登录界面,登录界面示意图如图6.2:图6.2管理员登陆管理员界面当管理员输入正确的账号和密码后,就会顺利进入在线考试系统后台管理。其后台管理界面如6.3:图6.3后台管理界面 6.3人员管理模块管理员可以通过人员管理模块添加考生信息和修改考生信息。具体实现功能如下图添加考生信息界面图6.4:图6.4添加考生信息界面修改考生信息界面图6.5:图6.5修改考生信息界面6.4试题库管理模块试题库管理可以要管理员添加新的试题,如图6.6 图6.6试题添加当管理员点击题库信息维护时,就会把题库中的试题全部显示出来,如图6.7所示:图6.7题库信息维护点击试题操作中的查看时,就可以查看试题,也可以将试题进行修改。如图6.8所示: 图6.8试题修改6.5试卷管理模块在该模块中,管理员可以进行试卷的组卷,新增新的试卷,实现如下图6.9:图6.9新增试卷在试卷管理选项中,管理员可以将不要的试卷进行删除。如图6.10 图6.10试卷删除当管理员点击删除是,系统会提示确定要删除该试卷吗?如图6.11图6.11确认是否删除6.6考务管理当试卷生成后,管理员分发试卷给考生如图6.12 图6.12试卷分发分配试卷后,在考卷管理中可以开始考试和终止考试。如如6.13和图6.14图6.13开始考试图6.14中止考试学生答题结束后,可以在考卷评分栏中给考生试卷评分。图6.15 图6.15考卷评分系统会自动根据客观题标准答案给予评分,而主观题会手工评分。如图6.16图6.16手工评分6.7考生界面当考生输入正确的账号和密码后,就会顺利进入在线考试系统管理。考生管理界面如图6.17: 图6.17考生管理界面修改密码考生可以修改登陆密码。如图6.18如图6.18修改密码用户资料考生可以修改个人用户资料。图6.19 图6.19修改用户资料考试查询考生可以查询自己的考试成绩。如图6.20图6.20考试查询参加考试考生选择要参加试卷,进行考试。如图6.21图6.21参加考试点击参加考试后,考试就开始进行在线测试。如图6.22 图6.22在线考试考试结束后,系统自动提交。如图6.23图6.23自动提交 7关键功能实现7.1考试倒计时功能实现在jsp页面增加些JavaScript。使页面更加生动活泼,借助JS实现在线考试倒计时控件编写。实现代码如下:显示结果如下:图7.1图7.1倒计时功能实现图7.2自动组卷功能实现本系统是基于遗传算法实现试卷的自动组卷。7.2.1组卷模型描叙 自动组卷模型的试卷生成为从已有的题型库中(本系统中有选择题、多选题、填空题、简答题4种类型)按类型的约束的设置(如填空题的个数为10个)选择出题目并将所有题目分类排好组成一份试卷。下面给出与本系统中试题库中试题和试卷组成等属性说明。(1)题型:选择题、多选题、填空题、简答题4种类型。(2)试题:本系统题库试题的难度系数分为9个级别1,2,3,4,5,6,7,8,9,其中1表示最容易的,9表示最难的,1~3表示较容易的题目,4~6表示中等难度的题目,7~9表示较难的题目。(3)试卷组成:按类型的约束的设置如单选题10,多选题5,填空题10,简答题5,组成一张试卷。7.2.2问题描述(1)初始状态。由数字1,0组成描述试卷构成的序列(即为染色体),其中染色体分为4个区间,代表4种题型,每个区间序列长度都题库中对应题型的个数系统中的初始状态为随机生成的试卷构成序列。(2)后继函数。这里后继函数为遗传算法中的遗传算子:按照一定的交叉概率和交叉方法生成新的个体、按照一定概率的变异。(3)目标状态。为最优评判函数选择一定代数后种群中的最优个体,从而获得能表示相对最好试卷构成的染色体。(4)路径耗散函数。这里的耗散函数与系统中设置的初始种群大小,遗传代数有关。相应值约达,时间、空间耗散也就越大。7.2.3算法介绍(原理)遗传算法采用类似生物进化过程,其算法过程如下:(1)设置最大进化代数,初始化种群。种群一般随机产生。(2)计算个体的适应度值。(3)按照个体适应度值确定进入下一代的个体。(4)按照概率进行交叉操作。   (5)按照概率进行变异操作。(6)没有满足停止条件的返回第2步。否则输出种群中满足条件最优的染色体上面过程如下图7.2所示: 图7.2遗传算法过程7.2.4算法实现选择操作选择操作又叫复制操作,根据个体适应度值确定个体下一代是被淘汰还是被遗传。本系统使用“赌轮”的方式进行淘汰选择。其过程如下:(1)计算个体的适应度值,并累加其值称为Sum。(2)在0-1之间产生一个随机小数,称为Rand。(3)用Rand乘以Sum得到的值称为转轮值。(4)累加个体适应度值,当其值大于或等于转轮值时,此个体则被选中。该系统的适应值是通过累加试题的难度值得出,每次在上代群体中安装如上过程选择个体进行遗传算子的操作对象来产生新的个体并将其加如新的种群中,直到新的种群到达指定的大小。交叉操作本系统采用类似PMX交叉算子的方式,尽管PMX交叉算子可以实现交叉,而且不影响交叉区域以外其他基因的结构,但这种方法实现的交叉对交叉位置的要求十分严格,因为每次必须先要找到满足上面要求的匹配区域,才能进行交叉。首先寻找这样的交叉区域就是一件很费时的工作,不是任意两个染色体都是可以进行交叉的.即使能交叉,有的染色体交叉的较多,而有的就比较少;其次这样的交叉位置不具有随机性。变异操作 自动组卷中有个最基本的要求就是试卷相应题型的题目数量约束的满足.一般的变异算子往往会导致非法结构的产生.为了能够在变异过程中不产生非法结构,本系统采用染色体区段全变异算子,其实现原理说明如下:令染色体T1=10001-1111100000-10001-00101第一步:在所有的个体码串范围内随机确定变异区间,这里选择3;第二步:在确定的个体串上的变异区间上计算1的个数,这里Num(1)=2;第三步:以事先确定好的变异概率将变异算子作用于确定的变异区间,可能的一种变异结果如下(这里假设变异发生):T1=10001-1111100000-00101-00101针对自动组卷给出染色体区间为全变异算子,它灵活性很强,变异位置对其影响不大,但它每一次变异都是改变了其中一个区间也就是说将这个区间当作一个染色体进行普通变异。因此,用全变异算子进行变异时,所选的变异概率应低于普通变异的概率。7.2.5算法伪代码实现 8测试8.1测试目的程序测试就是在程序投入运行前,对程序的需求分析、设计规格说明和编码的最终复审,是保证程序质量的关键步骤。如果要给程序测试下定义,可以这样讲,程序测试是为了发现错误而执行程序的过程。测试的目的就是在系统在投入实际运用之前,尽可能将系统中的漏洞发现出来。在大型软件系统的研发过程中,因为要不同的开发部门协同开发,因此,在软件系统开发过程中都会产生一些漏洞如不同组件兼容问题。软件测试人员就是希望通过测试将系统漏洞发现并改正,使系统运行更加稳定。8.2测试方法程序测试的主要方法分为两大类,白盒测试和黑盒测试。白盒测试:也叫软件内部结构测试,将系统看成一个打开的盒子,按照软件的内部结构来测试程序,检测软件内部是不是按照设计要求进行运行。黑盒测试:也叫软件功能测试,将软件看成一个密封的盒子,不考虑软件的内部结构和特性,只是测试软件的功能模块实现情况。输入满足系统要求的测试值看输出值是否满足软件设计的功能要求。在本次测试工作中使用了两种方法。但主要使用的是黑盒测试方法。8.3测试实例8.3.1考生登陆模块测试测试内容:填写用户名及密码,验证能否成功登陆。操作:(1)填写正确的用户名及密码。  (2)填写错误的用户名或密码。(3)填写错误的验证码。结果:(1)考生成功登陆。  (2)提示用户登录失败。(3)提示验证码错误。 提示验证码出错,如图8.1图8.1登陆测试用户登录失败,如图8.2图8.2登陆失败8.3.2在线考试模块测试测试内容:登陆系统,选择要参加的考试,进行考试。测试是否可以实现在线考试。操作:(1)一个用户登陆系统参加考试测试。(2)两个用户登陆系统参加考试测试。结果:(1)一个用户测试成功,可以实现在线答题。 (2)两个用户测试成功。可以实现在线答题。一个考生登陆在线考试系统,选择要参加的考试进行测试,如图8.3图8.3测试一个考试进行在线考试考试结束后成功提交试卷完成考试,如图8.4图8.4试卷提交成功测试两个用户登陆在线选择要参加的考试,如图8.5图8.5两个考生登陆选择要参加的考试 两个考生选择要参加的考试后进行在线考试,如图8.6图8.6两个考生在线考试考试结束后提交成功如图8.7图8.7提交成功8.3.3自动组卷模块测试本次测试约束设置为:选择题(4个)、多选题(2个)、填空题(2个)、简答题(1个),难度为困难。遗传的代数、种群的大小设置为20代、10个个体。测试结果如图8.8 图8.8遗传算法自动组卷测试测试题号如下图8.9:图8.9题号列表试卷生成信息如下图8.10图8.10试卷生成信息 8.4系统的特点在线考试系统采用了B/S模式,Javaweb的技术来实现管理员通过系统发布试卷题目,学生通过系统选选择试卷参加考试,采用MySQL数据库,MySQL可以对系统数据进行高效的管理而且便于系统的植入和跨平台操作,实现了考试管理的数字化、信息化,有效的减少人力。财力,提高效率。8.4.1系统优点1.界面设计较友好,系统易用。2.模块的设计基本符合需求,能保证通过该系统发布考试题目和考生试卷,考生可以通过该系统参加考试。3.有较好的权限设置。具有管理员,考生等权限。4.具有自动组卷功能。5.考试结束后对考试成绩给予简单统计分析8.4.2系统的缺点基本实现了一个简单的在线考试系统。实现了实现基本的命题、组卷、答题和评分等考试功能,但还有很多不足之处。1.数据库设计过于简单,数据容易产生冗余。2.网站架构没有完全按照MVC模式进行设计,后期维护会有困难。3.考试成绩输出打印功能。4.没有实现很多人同时登陆问题。5.对遗传算法自动组卷的优化问题。如采用实数编码方案,将一份试卷映射为一个染色体(也叫个体),组成该试卷的每道题的题号作为基因,基因的值直接用试题号表示。6.成绩统计过于简单,如可以增加平均分,成绩方差的分析。 9结论通过这次毕业设计,对很多东西有了新的认识和新的见解,认识问题的和思考解决办法有了本质上的进步,特别是对一个系统开发的模式有了更深的认识,对专业技能的运用更熟练。本论文介绍了如何设计和实现一个简单的在线考试系统。具有一定的实际功能。在线考试系统是使用J2EE和Struts框架MVC模式开发的一个基于Web的在线考试平台,目标是为检查人们的学习情况。该考试平台包含了人员管理、试题管理、试卷管理、考务管理和考生在线答题等多个功能,主要注重实现遗传算法在自动组卷的应用,和考试时间控制管理的实现。定位于节省考试过程中的成本,方便企业对考试工作的管理。其B/S的模式使之更容易部署推广及方便的使用。由于本人知识水平有限和时间的仓促,本系统中可能还存在隐藏着的很多的不足和一些系统功能操作的不合理,如界面没有设计美观,同时的在线登陆考试问题没有实现。对遗传算法的优化的问题。论文中出现缺点和错误再所难免,,还请各位领导、老师和同学批评平指正。以便日后的进一步完善和二次的开发。 致谢时间过的很快。不知不觉中我走完4年的大学生活。感谢桂林理工大学的各位老师,是你们悉心的指导、关心和鼓励下,才使得我养成科学严谨的治学态度,也让我学会了如何去解决所遇到的问题。感谢你们让我懂得了科学探索的奥秘在于永远保持一个乐观积极向上的心态以及脚踏实地勤勉的务实作风。本次毕业设计的完成离不开很多人的大力协助。真诚的感谢本次毕业设计的指导我的老师——姜传贤老师,感谢他的指导和建议,在我遇到自己难以解决的问题时,老师耐心的帮我解决问题。在我的论文审稿阶段,老师指出了论文很多方面的不足,并一一给出修改意见,这对我的毕业论文最终完成给予了极大的支持和帮助。在交流中,姜传贤老师严谨求实的研究态度、广博的学术知识、踏实的工作态度都是我今后学习的榜样。最后,我要感谢在百忙之中抽时间对本文进行审阅,评议和参与本人毕业答辩的各位专家评委老师。 参考文献[1]浅析Struts体系结构与工作原理http://java.chinaitlab.com/Struts/36086.html[2]在线考试系统的开发与实现潘卫华罗贤缙中国电力教育2008[3]基于B_S模式网上考试系统的设计与实现刘永刚金辉齐齐哈尔大学学报2009[4]J2ee整合详解与典型案例思志学电子工业出版社2008[5]在线考试系统实现技术的发展纪宁[6]基于J2EE多层框架的在线考试系统研究段学东汪汝2008[7]遗传算法在在线考试系统中自动组卷的优化设计钟宁刘连浩'