在线考试系统毕业论文.doc_第1页
在线考试系统毕业论文.doc_第2页
在线考试系统毕业论文.doc_第3页
在线考试系统毕业论文.doc_第4页
在线考试系统毕业论文.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

在线考试系统 论 文 摘 要随着时代的快速发展,网络技术的不断提高,二十一世纪俨然已经从信息时代演变成为现在的大数据时代。在这短短的几十年里,网络技术改变的不仅仅是人们的办公方式,更深入到每个人的生活。从最初的网上聊天,到后来的网上互动游戏、网上金融交易无不体现了网络的强大与魅力。在线考试系统的开发,既能方便考务管理,提升工作效率,节约考试成本,同时能给考生提供极大的便利,使得考试更趋于公平、公正和公开,实现考试的科学化、规范化和无纸化。在线考试系统基于B/S架构,采用JSP 、SSI(struct2,spring,iBatis)开源框架、jQuery开源类库、Ajax、oracle数据库等技术开发。在线考试系统包括老师、考官、学生和管理员四类角色,实现录入试题、发布考试、管理考试、批改试卷、成绩分析等诸多功能。该系统的开发,极大地改善了目前繁杂的考试方式,对于推动各企、事业单位人员考核的信息化建设具有重要的意义。关键词:jsporacle数据库三大框架在线考试jQueryAjaxjava目 录一、引言1(一)开发背景1(二)开发意义1二、开发工具及相关技术2(一)JSP2(二)SSI(struct2、spring、MyBatis)开源框架2(三)Oracle数据库2(四)jQuery开源类库与Ajax3(五)TomCat小型服务器3(六)eclipse开发环境3三、在线考试系统的分析4(一)可行性分析4(二)需求分析4四、 在线考试系统的总体设计7(一)项目规划7(二)类的分析与设计10(三)时序图描述11五、在线考试系统的数据库设计16(一)概念结构设计16(二)逻辑结构设计17六、在线考试系统的实现20(一)环境的配置20(二)公共模块的实现24(三)前台的实现311.普通用户312.老师363.主考官39(四)后台的实现431.添加用户432.用户列表显示44结束语48致 谢49参 考 文 献50在线考试系统的设计与实现刘维(开封大学 12应1)一、 引言(一) 开发背景随着计算机技术和网络技术的飞速发展,教育信息化水平对培养面向信息化社会创新人才起到了至关重要的作用。计算机辅助教学(CAI)已经渗透到教学的各个环节,其对教学所起到的积极作用备受各大院校重视。考试作为教学中的重要一环,如何公平、公正、客观地评价学生的实际学习情况,指导学生的后续学习也是CAI研究的一个方向。相对于传统的纸面考试,基于网络的计算机考试在出卷、考试、评分、统计等多个必要步骤上都有自己特有的优势,可以显著减轻考务人员的工作负担,提高效率,提高考试灵活性和公正度。如今基于B/S模式越来越受到众多网民的爱戴。究其原因其实很简单:用户不用另外下载安装客户端,所有的操作都在浏览器中执行,而用户只需要下载一个主流浏览器即可运行几乎全部基于B/S模式开发的应用程序。这大大的增强了用户体验。所以,在线考试系统的开发采用B/S模式是很有必要的,也是必然的选择。(二) 开发意义目前我国高校的考试绝大多数仍以传统的笔试方式为主,这种以“一张试卷定乾坤”的考试方式,考试内容往往不能覆盖课程的全部知识点。为了应付考试,考试前要求教师划重点、划范围、押题、向教师“套题”等现象,也滋生了学生蒙混过关的心里。因此,改革传统的考试模式是教学改革的重要方面。在线考试系统,不仅可以将教师从繁重的出卷、阅卷、评卷的繁重工作中解脱出来,减少人为主观意志对评分的影响,提高工作效率,而且能节省了纸张、印刷等相关费用,真正实现无纸化办公。此外,网络考试采用试题库方式提供试卷来源,考前无任何成套试卷,考试时由考生随机抽卷,试卷不完全相同,体现考核的客观公正性。二、 开发工具及相关技术(一) JSPJsp(Java Server Pages)技术是当下较为流行的一种动态WEB网站开发技术。Jsp的根本目的在于其根本是一个简化的Servlet设计,它是在传统的网页HTM文件中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。Jsp在页面上实现了HTML(超文本标记语言)的扩张,扩张的方式通过的方式,在其中嵌套java代码并且是在服务器端中执行。而返回给客户端的往往是HTML文本,所以客户端只需要有浏览器就可以浏览。(二) SSI(struct2、spring、MyBatis)开源框架SSI框架是MVC的一种,具体体现是:struct2+spring+MyBatis。Struct2属于一种开源的软件,struct2是struct的升级版相比struct,struct2加入了x-wordk开源组件,它大大增加了jsp软件的开发效率,优点:高效、灵活、可重用性强和模块化设计。极大地简化了应用程序的开发且结构清晰,开发者只需要关心业务逻辑的实现。Spring是基于IOC(控制反转)和AOP(切面编程)的构建多层J2EE的框架。Spring的出现极大程度的改变了众多程序员的编程方式,它提出的Bean管理模式可以很方便直观的让程序员管理流程中需要的类和对象,同时spring的出现也限制了一些程序员的不良习惯,促使开发人员养成良好的习惯。MyBatis则是一个对象数据关系映射型框架,原名是iBatis框架,2010年改名为MyBatis。它是一种开源的管理操作数据库的半自动框架,所谓半自动即和Hibernate(全自动框架)相比具有可自由操作SQL语句的好处。它支持众多关系型数据库,包括一对一、多对多等各种复杂的关系。(三) Oracle数据库Oracle是甲骨文公司(Oracle)推出的一款对象关系型的数据库管理系统。Oracle公司是全球最大的数据库软件供应商,它的数据库产品Oracle系列,占全球数据库装机量的48%左右,主要有Oracle9i、Oracle10g、Oracle11g。在管理信息系统、企业数据处理、因特网及电子商务等领域使用非常广泛,在数据安全性与数据完整性控制方面性能优越。同时具有跨操作系统、跨硬件平台的数据互操作能力。具体有点有:支持多用户、大事务量的事务处理、支持多用户、大事务量的事务处理、数据安全性和完整性控制、支持分布式数据处理、可移植性等。(四) jQuery开源类库与AjaxJQusey是一个可以跨浏览器的javaScript类库,其开发目的在于大大简化了开发者使用javaScript对页面进行操作。JQusey最初由约翰雷西格(John Resig)在2006年的BarCamp NYC上发布初代版本。JQuery内置了一套很强大的DOM操作工具集,开发者只需用简单的几个字符就可以取得所需的元素,这也是众多程序员选择JQuery的原因。Ajax是javaScript在页面与后台之间的异步操作。Ajax的出现实现了前台页面不刷新更新页面数据的强大操作。Ajax可以和后台服务器发出指定的请求,然后后台服务器将得到的数据返回给前台,因为Ajax是由javaScript来控制的,所以无需进行页面刷新即可得到更新的数据。(五) TomCat小型服务器TomCat是由Apache公司和sun公司为主共通开发的一款WEB应用服务器。TomCat简单易用而且免费,深受广大WEB程序开发者的喜好。TomCat属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。(六) eclipse开发环境Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具。虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。三、在线考试系统的分析(一) 可行性分析1. 技术可行性本系统采用jsp开发,以eclipse为开发工具,数据库系统采用各大公司惯用的oracle关系型数据库系统,它能够处理大量数据,同时保证数据的完整性、安全性。因此本系统的开发平台是成熟可行的。 2. 经济可行性本系统部署简单,无需大型服务器即可无压力进行测试和运行,这一方面大大的节省了开发成本。而所用的eclipse是免费的所以IDE成本也为零。其它费用支出包括硬件购置费用、软件购置费用、网络搭建费用、开发人员人工费、系统使用人员的培训费和系统运行期间的维护费用,这些开发费用对于一般的公司来说是完全可以承受的。3. 社会可行性采用无纸化的考试是未来考试的发展的大趋势。许多教育机构及社会的各界各行,对在线考试系统的开发和应用给予了极大的重视和期待。因此在线考试系统的市场前景是十分广阔的。在线考试系统可以大大简化了传统模式的教师出题、制卷、阅卷等多个环节,可以节约大量的人力、物力和财力。因此使用在线考试系统有着显著的社会效益。(二) 需求分析1. 业务分析从总体上考虑,系统应该实现下列功能:对管理员来说,包括试卷管理、题库管理、成绩管理。(1)试卷管理:管理员可以从课程,各种题型的分布等方面对试卷提出生成试卷规则。同时,管理员还可以对库中已有的试卷进行修改和删除,添加新试卷等操作。(2)题库管理:管理员可以对题库中的试题进行三种基本操作:添加新的考题、删除旧有考题、修改原有考题,其中试题类型包括判断题、填空题、选择题;对于每种类型的试题,教师可以设置题干、答案等属性。(3)成绩管理:管理员可以查看考生的考试成绩,并针对不同的课程进行成绩统计,包括考试人数、最高分、最低分、平均分以及各分数段得分人数等。(4)学生管理:管理员可以对用户的资料进行查询、删除。对普通用户来说,包括在线考试、查询以往考试成绩等。(1)在线考试:学生可以任选时间进行在线测试,考试结束后,系统会根据已有的标准答案进行在线判卷,考生可以立刻知道考试成绩。(2)查询成绩:学生可以在线查询以前参加过的每门课程的考试相关信息。2. 参与者识别本系统包括管理员、主考官、老师、学生四个角色。图1 参与者识别管理员主要完成对基本数据的维护,包括试题信息的增加、修改及对各项信息的变动。后台管理的用户权限主要有网站建设人员。他们可以进行个人信息的录入和查询。主考官主要负责管理考试的发布和对考试成绩的整体把握。主考官既可以通过考试科目查询成绩并进行相应的分析,还可以通过用户名查询该用户的所有成绩。老师的主要任务则是试题管理和批改试卷。其中试题管理中包括对试题的添加、修改和删除等操作,还可以使用excel(.xls)文件批量导入试题。而学生则只是用来考试。3. 用例识别图 2 考生用例图图3 主考官用例图图4 老师用例图图5 管理员用例图四、 在线考试系统的总体设计(一) 项目规划在线考试系统大致分为前台和后台两大模块,其重点在前台,后台模块只有一个功能即:用户管理(包括添加、删除和修改用户)。前台分为三种用户:学生、老师、主考官。用户成功登陆进入系统后,系统会根据不同的用户权限跳转到不同的页面,执行相应的操作。学生成功登陆后跳转到考试页面,点击未参加的考试会进入相应考试界面进行考试,也可以进行对应的模拟考试或查看已考试的分数。老师成功登陆后自动跳转到批改试卷的界面,系统自动会罗列出未批改的试卷,然后可以进行手动或者自动批改。当然,试题录入与试题修改的工作也由老师来做,在试题录入界面既可以手动录入也可以选择excel文件录入,录入完成后系统会显示已经录入的试题,并附带有条件查询功能。主考官的主要任务是发布考试,在发布考试里分为考试设置和卷面设置。主考官还可以分析考试成绩,分析方法有两种:分析考试成绩和分析个人成绩。功能模块图如下:图6 主考官模块功能主考官发布考试需要三个步骤:1.选择需要参加这场考试的考生;2.试题内容选择,只需设定选择题,填空题等的数量,然后设定好各题的分值,最后设定考试的答题时间。设定好内容后,系统会根据设定从题库随机选择对应的题目生成考卷。3.规定可以参加考试的一段时间,考生需要在这段时间内参加考试考试发布以后,系统会向需要参加这个考试的考生发送提醒消息。4.考试结束后会向老师发送阅卷提醒。图7 老师模块功能1.考题录入可以通过网页手动录入,也可以通过规定格式的Excel文件批量录入。考题删除也支持手动删除和批量删除。2.老师有阅卷任务这个菜单,且需要按时完成。但是选择题、判断题可以由系统自动批改,而填空题简答题则需要对照标准答案来手动批改。图8 考生模块功能1.参加招聘考试的用户需要使用邀请码才能够注册考生账号,使用考生账号登录后需要完善个人信息才能够参加考试。2.系统会根据用户的不同级别分配给用户对应的待考任务。待考任务需要在一段时间内完成,系统也会根据考生留下的电话号码和邮箱地址提醒用户完成其待考任务。3.系统提供模拟练习功能,考生可以选择专项练习和综合练习。4.试卷批改完成后,系统会统一给考生发送考试结果,考生也可以查询自己的考试成绩。(二) 类的分析与设计类图是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系,用于描述系统的结构化设计。在线考试系统的类图如下所示:图9 类图(三) 时序图描述1 用户登录此登录为前台登录,登录共有三种用户可选,分别是:普通(学生)、老师、主考官。登录成功后,系统会根据相应的角色进入相应的界面。时序图如下:图10 登陆时序图2 用户注册注册功能只能注册普通(学生)用户(其他用户由管理员管理),注册的时候可以选择岗位。时序图如下:图11 注册时序图登陆和注册是逻辑上分开的两个独立的功能,但是设计重于实现。所以在设计登陆注册的时候将两个页面写在同一个页面,然后使用CSS+DIV+JQuery(JavaScript)将登陆模块与注册模块分开来,然后使用Ajax实现页面不刷新读取到相应数据并实现流程。3 修改信息已经登陆的用户都有修改信息的界面,在修改信息界面用户可以修改:姓名、性别、出生年月、邮箱、电话、岗位、密码等信息。时序图如下:图12 修改信息时序图4 发布考试(主考官)主考官有发布考试功能。发布考试包括:考试设置、试卷设置两大块。考试设置主要有:考试名称、开考时间、考试时长等设置。试卷设置则是:选择题设置、填空题设置、简答题设置三大块。时序图如下:图13 发布考试时序图5 查看考试结果(主考官)查看考试结果时可以根据相应的条件搜索已经发布过的考试,系统会自动生成考试分页列表,搜索到考试列表后也可以点击查看对应考试的详情信息。时序图如下:图14 查看考试结果6 自动批卷(老师)老师登陆后有两个模块:阅卷任务和题库管理。阅卷任务又分为:自动批改和手动批改。时序图如下:图15 自动批卷时序图7 在线考试(学生)在线考试是该系统的核心功能。该功能只提供给普通(学生)用户,普通用户登陆后系统会根据其考试情况自动从数据库中搜索出符合条件的考试。用户可以点击“开始考试”字样,进入相应的考试界面,进行答题。时序图如下:图16 在线考试时序图8 用户管理(管理员)用户管理即管理员对于所有用户的操作,包括修改、删除等。时序图如下:图17 用户管理时序图五、在线考试系统的数据库设计(一) 概念结构设计在线考试系统总共有11个实体。期中独立的实体共有6个,分别是:User(用户),Grade(成绩),Question(题库),Exam(考试),Paper(试卷),answerPaper(答卷)。其它实体则基本可作为这6个实体的属性。他们的关系如下:图18 E-R图(二) 逻辑结构设计在线考试系统是以Oracle数据库作为后台数据库,主要表有:权限表(tb_authority)、用户表(tb_user)、成绩表(tb_grade)、部门表(tb_dept)、题库表(tb_question)、答卷表(tb_answerPaper)、考试表(tb_exam)、题目类型表(tb_questionClass)、题型设置表(tb_questionSet)、试卷表(tb_paper)、考试类型表(tb_examClass)共十一个表。表1:权限表(tb_authority)列名数据库列名型长度小数PKNOT NULL权限IDauthorituIdnumber(n)4 权限名authorituNamevarchar(n)30 表2:用户表(tb_user)列名数据库列名型长度小数PKNOT NULL用户IDuserIdnumber(n)4 姓名userNamevarchar(n)30 性别sexchar(n)1 邮箱emailvarchar(n)100 电话telvarchar(n)15 权限IDauthorituIdnumber(n)10 邀请码/工号userNumbervarchar(n)40 密码passwordvarchar(n)20 创建时间createDatedate真实姓名realNamevarchar2(n)30 出生年份birthYearvarchar2(n)10 出生月份birthMonthvarchar2(n)10 部门IDdeptIdnumber(n)10 表3:成绩表(tb_grade)列名数据库列名型长度小数PKNOT NULL成绩IDgradeIdnumber(n)4 用户IDuserIdnumber(n)4 考试IdexamIdnumber(n)4 考试状态statuschar(n)1 成绩examGradenumber(n)5 2 考试次数examCountnumber(n)10 表4:部门表(tb_dept)列名数据库列名型长度小数PKNOT NULL部门IDdeptIdnumber(n)10 部门名字deptNamevarchar(n)30 部门人数deptCountnumber(n)100 表5:题库表(tb_question)列名数据库列名型长度小数PKNOT NULL题目IdquestionIdnumber(n)4 题目分类questionTypevarchar2(n)30 题型questionClassIdnumber(n)4 试题难度questionDifnumber(n)3 是否加密isEncryptchar1 题目内容questionContentvarchar2(n)1000 题目答案questionKeyvarchar2(n)1000 创建日期createDatedate创建人createUsernumber(n)4 题目状态questionStatuschar1 表6:答卷表(tb_answerPaper)列名数据库列名型长度小数PKNOT NULL答卷IdanswerPaperIdnumber(n)4 用户IduserIdnumber(n)4 考试IdexamIdnumber(n)4 题目IdquestionIdnumber(n)4 考生答案stuAnswervarchar2(n)500 得分scorenumber(n)5 2 表7:考试表(tb_exam)列名数据库列名型长度小数PKNOT NULL考试IdexamIdnumber(n)4 考试名称examNamevarchar2(n)30 考试分类examClassIdnumber(n)4 试卷IdpaperIdnumber(n)4 考试状态examStatuschar(n)1 及格分数passScorenumber(n)5 2 答卷时间examTimenumber(n)3 参考次数限制limitClassvarchar2(n)100 限制考试次数examCountnumber(n)3 发布方式examReleasevarchar2(n)50 是否允许考生查看答案isPermitchar(n)1 考试开始时间examBeginTimedate考试结束时间examEndTimedate考试人员部门deptIdnumber(n)4 创建时间creatDatedate表8:题目类型表(tb_questionClass)列名数据库列名型长度小数PKNOT NULL题目类型IdquestionClassIdnumber(n)4 类型名称questionClassNamevarchar(30)30 表9:题型设置表(tb_questionSet)列名数据库列名型长度小数PKNOT NULL题型设置IdquestionSetIdnumber(n)4 类型类型IdquestionClassIdnumber(n)4 题目个数questionCountnumber(n)4 分值questionScorenumber(n)4 表10:试卷表(tb_paper)列名数据库列名型长度小数PKNOT NULL试卷IdpaperIdnumber(n)4 选择题设置choiceSetnumber(n)4 填空题设置fillSetnumber(n)简答题设置conciseSetnumber(n)总题数questionCountnumber(n)4 总分数scoreCountnumber(n)4 表11:考试类型表(tb_examClass)列名数据库列名型长度小数PKNOT NULL考试类型IdexamClassIdnumber(n)4 类型名examClassNamevarcha2(n)30 六、在线考试系统的实现(一) 环境的配置1. Struct2主要配置:/manager/managerAddUser.jsp/manager/managerUser.jsp/manager/managerUser.jsp2. Spring主要配置:!- -3. MyBatis主要配置4. Web.xml的配置Exam_OnLinelogin.jspstruts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*org.springframework.web.context.ContextLoaderListenercontextConfigLocationclasspath*:application*.xml SetEncodingFilter SetEncodingFilter com.exam.service.util.SetEncodingFilter encoding UTF-8 SetEncodingFilter /* REQUEST (二) 公共模块的实现登陆和注册本是两个页面,但是在设计时登陆与注册被设计在同一个页面,只是放在不同的层,当用户点击“注册”时,页面会激活相应的点击事件然后显示和隐藏相应的层。这样做的好处是减少了页面之间的跳转优化了用户体验。登陆和注册都使用Ajax技术实现页面不刷新和后台进行相应的数据交互,同时也有相应的动画优化用户体验。登陆页面如下:图19 登陆界面登陆模块Ajax代码(JQuery实现):var userName;/登陆名var password;/密码var identity;/相应的权限$(document).ready(function()/*选项卡切换*/$(.loginFrame .loginMenu a .menuTab).mouseover(function()$(this).find(.selectOnTab).stop().fadeTo(100,1);).mouseleave(function()$(this).find(.selectOnTab).fadeTo(150,0););/*选择相应的权限登陆*/$(.loginFrame .loginMenu a .menuTab).click(function ()/获取选择的文本框/alert($(this).attr(name);$(#identity).val($(this).attr(name);/去除所有选择样式$(.loginFrame .loginMenu a .menuTab).each(function()$(this).animate(color:#000,background-color:#eee,100););$(this).animate(color:#eee,background-color:#000,100););/*表单按钮*/$(a).click(function()/alert($(this).text();userName=$(#userName).val();password=$(#password).val();if($(#identity).val()=)identity=管理员;elseidentity=$(#identity).val();if($(this).text()=登陆)/执行登陆方法/alert(您输入的用户名:+userName+ 密码:+password+ 权限:+identity)login();if($(this).text()=注册)/选择注册后执行相应的切换注册动画$(.loginFrame).fadeTo(100,0);$(.loginFrame).animate(height:0px,100);$(.loginFrame).css(position:absolute,z-index:-1);

温馨提示

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

评论

0/150

提交评论