1、在线考试系统毕业设计论文 作者: 日期:2 个人收集整理 勿做商业用途毕 业 设 计(论 文)在线考试系统学生姓名:晨雪学 号:0915024125所在系部:电气信息系专业班级:09软件1班指导教师:张慧萍 讲师日 期:二一三年六月Test Online SystemBy Ghen Xue June 2013学位论文原创性声明本人郑重声明:所呈交的学位论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 作者签名: 年 月 日学位论文版权使用授权书本学位论文作者
2、完全了解学院有关保管、使用学位论文的规定,同意学院保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于 1、保密 ,在 年解密后适用本授权书。 2、不保密 . (请在以上相应方框内打“”) 作者签名: 年 月 日 导师签名: 年 月 日摘 要 随着网络信息技术的日益成熟,网络信息技术已经极大的改变了人们的生活,包括教育、购物、咨询、办公等诸多领域.信息领域高速发展的今天,网页技术的应用也越来越广泛与成熟.网络
3、信息技术的应用对于传统教育行业来说会有很大的改善。教育行业可以通过网络进行学生和老师的管理、组织学生进行在线考试、在网站上发布学校相关信息等活动。这样既能增加学校管理的透明度,又提高了学校的管理水平。在线考试还能充分的利用学校的现有资源,减轻教师的工作量,把老师从出卷、阅卷等一些繁重中做中解脱出来。 本系统采用了B/S结构,即使用浏览器进行在线考试。系统开发经历了系统分析、系统设计和系统实施三个阶段。从设计方案的提出,经过详细的调查,分析了方案的可行性和必要性,通过详细的系统设计,提高系统的集成性和便捷性;并在系统实施阶段收集了大量的实验数据,以便测试阶段系统的准确性和稳定性。 设计整体是基于
4、浏览器/服务器(B/S)模式,前台应用Java EE技术(struts+hibernate+jsp),后台采用MySQL作为数据库与前台连接.关键词:网络 教育 在线考试 B/S结构 Java EE技术AbstractWith the network technology grow up, network has become our life everywhere, inducing education, shopping, consultation and work, etc。 Today network developed rapidly, the application of web
5、technology become more and more widely。 For education industry, web technology application has obvious advantages。 They can use web to manager students and teachers, organize exam on line, and put out some scholastic information by network. It is not only good for increasing diaphaneity of scholasti
6、c management, but also good for improving management level。 Exam on line can make use of existing resource and reduce teachers heavy workload. 文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络The article is mainly talk about network has many advantages for extending service and offering more management condition of sc
7、hool. This article has many particular investigations, feasible research and analyze. The system use B/S structure, to build education web of school own on internet。 There are 3 stages for system development including system analyze, system design and system implement. From bringing forward design p
8、roject to carrying through particular investigation, the article analyzes feasibility and necessary of this project。 In order to improve system integration and stabilization, I use particular system design. To test veracity and stability of testing stage, I use a lots of experiment data in system ap
9、plied stage。 个人收集整理,勿做商业用途个人收集整理,勿做商业用途This article based on IE/Server, foregrounding use Java EE technology and Dreamweaver software, background process use MySQL as database to connect front ground.Keywords : Network Education Examination online B/S structure Java EE technologyI目 录摘 要IAbstractII1
10、绪论11.1课题背景及意义11。2考试系统的发展现状12 在线考试系统的需求分析32。1系统结构规划32.2开发工具的选择42.2。1三种动态网页制作技术42.2。2 Java EE的优越性42。3数据库管理系统的选择52.4在线考试系统的功能分析53 在线考试系统的概要设计73.1系统目标73.2系统功能结构73.3业务流程图83。4在线考试系统的数据库设计93.4.1 在线考试系统的数据库表结构设计93。4。2 数据库的安全性、信息的保密性考虑104 在线考试系统的详细设计124.1 公共类的设计和实现的功能124。2登录和注册模块实现过程144。2.1 登录模块144。2。2 注册模块1
11、74。3考试界面实现效果194。4试题管理模块实现过程224。5后台管理模块功能实现234。5.1 教师后台模块234。5.2 教师后台管理模块265 测试运行与维护285.1网站维护285。1.1 考试系统登录测试285。1.2 考试系统试题管理测试285.1。3 考试系统学生查询测试30结 论31致 谢33参考文献341 绪论1.1课题背景及意义随着Internet技术的发展,开发基于Web的管理信息系统(MIS)、最大限度利用高校现有资源、提高教学质量是高等院校教学上的新的研究课题。管理信息系统(MIS)是集计算机网络技术、通信技术、信息处理技术于一体的一种人机交互的智能化计算机系统,对
12、信息进行收集、传递、存储及加工处理,用于辅助决策进行事务管理。MIS的发展与计算机网络技术的发展紧密相关,随着因特网技术的广泛应用,MIS的体系结构发生了很大变化,从以往基于客户/服务器(Client/Server)模式的数据访问及安全体系发展到了当前基于浏览器/服务器(Browser/Server)模式的结构体系。该系统采用IBM MyEclipse的集成开发环境,使用Java EE技术,开发基于Web的在线考试系统。网络考试系统将传统教育理论与基于Web的计算机协同工作(CSCW)软件系统有机结合起来,以满足各种课程的考试需求;该系统将教育理论、经验和方法引入系统内部,在完成网络考试任务的
13、同时还获得了科学的量化指标,可以协助高校对学生考试进行科学的评价和分析;在线考试系统将实现网络组卷、在线考试、网上判分等各项相关的功能以优化传统考试的运行模式,在确保考试系统安全性的前提下,在线考试系统将极大地提高考试的组织效率,节约考试成本与时间。1。2考试系统的发展现状目前,各类考试系统层出不穷。按照考场所在位置可以分为:局域网环境的考试系统、基于Web的在线考试系统,以及二者都包含的网络考试系统。开发基于局域网络的考试系统可采用VB,VC,Delphi等开发工具,数据库访问多采用C/S模式。随着教育信息化的不断深入,网络教育越来越多的运用在教学过程中。远程教学、在线辅导、在线考试已被越来
14、越多的人所接受。目前,世界上许多国际考试都采用在线考试的方式,比如:微软认证(微软公司的MCSE,MCDBA,MCSD等考试),思科认证(Cisco career certification),惠普认证(HP-UX),SUN 公司的JAVA认证考试,以及TOFEL,GRE,这些考试都是通过网络实时进行考试的。国内的许多考试也搬到了网上,如驾照模拟考试系统,职业英语在线考试,以及众多的远程教育学院及网络学院的在线考试。在众多的线考试系统中,题目类型大多采用单一的选择题模型,考生只需通过点击正确的选项即可完成考试,同时系统根据已存入的正确答案,可迅速计算出学生的成绩。这种系统虽然可以实现自动判分,
15、但由于考试的题型形式单一,不能适用各种科目考试的需求.由此,本系统选择JSP技术,因为JSP技术可以跨越任何操作系统,配合IBM的eclipse,结合开源的数据库MySql数据库管理系统可以使系统达到最佳组合,实现无缝连接。基于B/S模式(浏览器/服务器)的设计思想,便于扩充应用和升级维护,利用浏览器访问位于WEB服务器的纯WEB页面,实现网络组卷、在线考试、网上判分等各项相关的功能。实现在线网络出试卷与考试等各项相关的功能。2 在线考试系统的需求分析2。1系统结构规划 目前,网络应用软件运行的模式主要有两类:客户机/服务器(C/S)模式和浏览器/服务器(B/S)模式.网络考试系统的实现技术可
16、以采用传统的客户机/服务器型(C/S)的MIS型架构,即数据库(试题库)内容放在远程的服务器上,在考试机上安装考试应用程序和数据库客户机配置,因此每次考试时要对机器进行安装、配置,考务工作比较繁琐。而且考试程序放在客户机上,安全性也受到一定影响,因此,客户机/服务器(C/S)模式难于适应当前信息技术与网络技术发展的需要。而利用Web技术,用Web服务器与数据库系统的连接,对数据进行处理,用户也可以通过简单易学的浏览器来处理所需要的数据.这种从浏览器到服务器的数据处理结构就是目前在Internet中十分流行的B/S模式(browser/server)。B/S(browser/server)与C/
17、S(Client/Server)结构相比较,该结构将数据处理功能全部转移到服务器端,实现了数据处理和维护与用户机的无关性,并可随时向用户发送信息及提供系统未建立的数据,使网络的使用和维护更加方便,更快捷.因此,采用B/S架构能够有效的克服对机器的安装,配置等繁琐操作,具有通过浏览器处理数据等优势。2。2开发工具的选择2。2.1三种动态网页制作技术 目前,开发基于Web的应用程序,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(Java Server Pages),PHP (Hypertext Reprocessor). ASP全名Active Server
18、Pages,是一个WEB服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的WEB服务应用程序.ASP采用脚本语言VBScript或JavaScript作为自己的开发语言。 PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法,并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数据库.JSP是Sun公司推出的新一代站点开发语言,他完全解决了只能执行脚本级程序的特点,可以使用编译来执行程序。Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和JavaApplet之外,又有新的硕果,就是JspJ
19、ava Server Page。Jsp可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序.JSP是新一代的技术,与传统ASP相比,JSP在许多方面都显示出更多的优越性。配合Tomcat服务器,使开发的应用程序更加方便快捷。2.2.2 Java EE的优越性开发基于Web应用程序所使用的JSP技术是运行在支持Java EE标准的服务器之上的,如tomcat,Jboss等.从开发人员的角度来看 :ASP和JSP技术都能使开发者实现通过点击网页中的组件制作交互式的,动态的内容和应用程序的WEB站点。ASP仅支持组件对象模型COM,而JSP技术提供的组件都是基于Javabean
20、sTM技术或JSP标签库。由此可以看出两者虽有相同之处,但其区别是很明显的。1) JSP标签可扩充性 尽管ASP和JSP都使用标签与脚本技术来制作动态WEB网页,JSP技术能够使开发者扩展JSP标签得以应用,JSP开发者能定制标签库,所以网页制作者充分利用与XML兼容的标签技术强大的功能,大大减少对脚本语言的依赖。2) JSP跨平台的可重用性 JSP的开发人员在开发过程中一直关注可重用性。JSP组件(企业JavabeansTM,Javabeans,或定制的JSP标签)都是跨平台可重用的。企业Javabeans组件可以访问传统的数据库,并能以分布式系统模式工作于UNIX和WINDOWS平台。JS
21、P技术的标签可扩充功能为开发人员提供简便的,与XML兼容的接口即共享网页的打包功能使其完全的工业标准化. 2。3数据库管理系统的选择开发B/S结构的在线考试系统,一定会处理大量的数据,因此选择合适的数据库管理系统对系统的性能影响深远。基于Web的应用系统可选择的数据库管理系统有:Oracle,MS SQL Server,Mysql,Sybase, MS Access。其中,使用JSP技术开发的web应用程序可以Oracle, SQL Server, Access,MySql。而开源数据库Mysql与JSP技术都是同是SUN公司的产品(先已被Oracle公司收购),可以使软件开发达到更好的效果。
22、总之,JSP与Tomcat的完美组合,为Web模型提供了一个更为稳定,高效,安全的运行环境。采用目前最为先进的可视化开发系统MyEclipse以及最有效的数据库系统Mysql进行开发,保证了软件的功能,提高了开发的效率。2。4在线考试系统的功能分析在线考试系统分成三个系统功能模块:学生模块、教师模块(管理员)模块。学生通过主页登录后,开始进入考试界面,考生需在规定时间内完成该科目所有试题,系统自动评分,存入后台数据库,展示学生自考成绩,并可查看学生所选试题的标准答案,最后考生安全退出系统.教师模块登录后,教师可以查看试题基本信息,添加该教师所教科目的选择题信息、填空题信息、发布选择题与填空题,
23、按照班级学生的考试成绩和根据考生的姓名查看考生成绩。3 在线考试系统的概要设计3。1系统目标本系统属于小型的在线考试系统,可以从数据库中随机抽取试题,并且可以自动对考生的答案评分。本系统主要实现一下目标:1)系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。2)实现从数据库中随机抽取试题。3)对用户输入的数据,进行严格的数据检验,尽可能地避免认为错误.4)实现对考试结果自动评分。5)实现教师对试题信息单独管理.6)系统最大限度地实现了易维护性和易操作性。3。2系统功能结构在线考试系统前台功能结构图如图31所示.在线考试系统前台有以下几个模块:注册模块,登陆模块,以及随
24、机生成试卷并自动评阅,以及对整个考试系统的意见反馈。图31 在线考试系统结构图在线考试系统后台功能结构图如图32所示.在后台主要有学生管理模块和试题管理模块.在学生管理模块中可以通过姓名查找学生成绩或者查询一个班级的学生成绩,在试题管理模块中,可以录入,查询,管理选择题和填空题,对题型进行管理。图32 在线考试系统后台结构图3。3业务流程图在线考试系统的业务流程图如图33所示。用户在登录界面根据相应的类型选择登录,如果没有账号则选择注册,登录成功后,根据选择的角色挑战到不同的页面,如果是老师,则跳转到后台管理界面,如果是学生,则生成一套试卷进行考试。图 33 系统流程图3。4在线考试系统的数据
25、库设计在开发在线考试系统前,分析了系统的数据量,由于在线考试系统中试题及考生信息的数据量会很大,因此选择MySql数据库存储数据信息,数据库命名为db_examsystem,在数据库中创建了6个数据表存储不同信息.3。4.1 在线考试系统的数据库表结构设计 根据设计好的ER图在数据库中创建各表,tb_teacher保存所有老师信息表,如图39所示.图3-9 教师信息表 tb_subject表用于保存所有试题信息,该表结构如图3-10所示.图310 考试科目信息表 tb_ student用于保存所有学生考试信息以及成绩信息,该表结构如图3-11所示。图3-11 学生信息表 tb_ Blank用于
26、保存所有填空题信息,该表结构如图3-12所示.图312填空题数据表3。4。2 数据库的安全性、信息的保密性考虑由于考试系统的特殊性,数据的安全与保密显得尤为重要。保密性是指用户在网上的所有信息应有一定的保密度,不同类型的用户之间的内容是互相保密的。安全性是指用户参加一次考试是一个过程,对于所有的用户,服务器都加以跟踪.为了确保其安全与保密性,采用如下方案:一、考生的身份验证。凡进入在线考试的用户,都要通过用户身份验证才能进入.教师用户按权限进行操作,确保数据的公共性与私有性。不允许用户执行非法的操作,防止用户无意或有意进行的破坏。二、在时间上加以严格控制.在用户登录后将用户的登陆时间存入到浏览
27、器的cookies中,当用户断线重新连接后,进行的考试时间仍然是以最初登录考试系统的时间为参考点,而不是重新生成。禁止用户查看试卷源文件及拷贝功能, 即用户不能下载试卷到本地,不能通过获取源代码得到试卷。以下为禁止使用鼠标右键功能的javascript脚本语言代码:4 在线考试系统的详细设计4。1 公共类的设计和实现的功能在开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重复率,也可以方便代码的管理。本系统中创建了一个公共类HibernateSessionFactory类,其中包含getSession方法.具体代码如下:public static Session get
28、Session() throws HibernateException Session session = (Session) threadLocal。get();/从ThreadLocal对象中获得Session对象if (session = null | !session。isOpen() /判断获得的Session对象是否为空或者未打开if (sessionFactory = null) /如果没有创建SessionFactory对象,则首先创建rebuildSessionFactory();/如果SessionFactory对象不为空,则调用其openSession方法创建Sessio
29、n对象session = (sessionFactory != null) ? sessionFactory。openSession(): null;threadLocal。set(session);/在ThreadLocal对象中保存该Session对象return session;public static void rebuildSessionFactory() configuration.configure(configFile);/读取配置文件sessionFactory = configuration.buildSessionFactory();/根据配置文件创建sessionFa
30、ctory对象public static void closeSession() throws HibernateException Session session = (Session) threadLocal.get();/从ThreadLocal对象中获得Session对象threadLocal.set(null);/将当前线程Session对象从ThreadLocal对象中移除if (session != null) session。close();public static org.hibernate。SessionFactory getSessionFactory() /取得Ses
31、sionFactory对象return sessionFactory;4.2登录和注册模块实现过程4。2.1 登录模块实现登录模块的具体步骤如下:(1) 新建一个名为Login。jsp的网页,用于实现系统的登陆功能。(2) 新建index。jsp和index。html分别放在student和teacher下面,用于登录时不同的角色界面。(3) 新建register。jsp页面,当学生和管理员首次进入该系统,由于后台数据库中没有他们信息,进入register。jsp页面。 系统登录界面如下图4-1所示。图 4-1 系统登录界面登录界面关键代码如下:public String execute()
32、throws Exception if(”student”.equals(role) /如果以学生身份登录if(studentService.allowLogin(id, password) Student studentInfo = studentService。getStudentInfo(id);/保存学生记录到session范围Map session = ActionContext。getContext()。getSession();session.put(”studentInfo”, studentInfo);return studentSuccess”;else addAction
33、Error(”该学生编号不存在,或者密码不正确!);return this.INPUT;else if(teacherService。allowLogin(id, password) return ”teacherSuccess;else addActionError(”该教师编号不存在,或者密码不正确!”);return this.INPUT;页面代码如下: tr form name=myform action=login.action method=post table cellSpacing=0” cellPadding=0” width=”100%” border=0 height=1
34、43” id=”table212” tr td colspan=”2”s:actionerror/FONT/td!-显示错误信息 - /tr td height=38 colspan=”2 class=top_hui_text”input name=id class=editbox4 value=” size=20” /td td width=”14” height=35” class=top_hui_text”/td img src=”teacher/images/luck.gif” width=”19 height=18” /td /tr td width=”14” height=”35”
35、 登录角色: td height=”35 colspan=”2” class=login_txt” input type=”radio” name=”role value=student checked=”checked学生 input type=radio name=”role value=”teacher教师/td /tr input name=Submit” type=”submit class=button” id=”Submit” value=”登 录” /td4.2。2 注册模块下图42 和 43为学生用户注册.当学生根据提示输入正确的格式之后,则可以完成注册.图4-2 用户注册界
36、面图4-3 用户注册成功后的页面跳转学生注册功能部分代码如下:public void validate()System。out.println(”studentPassword:+studentPassword+studentRePassword”+studentRePassword);if(studentID=null”。equals(studentID.trim())this。addFieldError(”studentID,用户ID必须输入);else if( !Pattern.matches(w6,20”,studentID。trim())this.addFieldError(stud
37、entID”,”用户ID的应为数字长度应为620”); if(studentPassword=null|.equals(studentPassword.trim()this.addFieldError(studentPassword,密码不能为空”);else if( !Pattern.matches(w6,20”, studentPassword。trim())this。addFieldError(”studentPassword”,”密码应为字母或数字长应为6-20”);if(!studentRePassword。equals(studentPassword)this。addFieldEr
38、ror(studentRePassword”,确认密码与密码不相等);if(”.equals(sudentName。trim()|sudentName=null)this.addFieldError(sudentName”,”用户姓名不能为空”);public String execute()throws ExceptionStudent student=new Student();student。setPassword(studentPassword);student。setStudentID(studentID);student.setStudentName(sudentName);student。setSclass(className);StudentService studentService=new StudentServiceImpl();studentService.register(student);this.addActionMessage(”注册成功”);System。