《毕业设计论文基于JAVA的在线考试系统.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于JAVA的在线考试系统.doc(17页珍藏版)》请在三一办公上搜索。
1、基于JAVA的在线考试系统基于JAVA的在线考试系统毕业设计论文基于JAVA的在线考试系统姓 名: 学 号:院系:计算机与信息工程学院学 校:内蒙古师范大学基于JAVA的在线考试系统学生:国 指导教师:【内容提要】 二十一世纪是信息时代的一个新起点,我们的信息技术的发展已经延伸到各个领域,对于我一个大学生我想到了考试,于是我们设计了一个考试系统,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。我们主要开发系统的后台管理系统JAVA在线考试管理子系统,它包括试题管理、考生管理、在线制作试卷、控制学生考试的设置、试卷审批等功能
2、。我要写的就是在线考试管理子系统的分析、设计和开发的全部过程。运用ER图,程序流程图等对在线管理子系统的设计过程进行的说明。全文共分为开发方案、需求分析、系统设计、关键技术解决,结论几个部分。开发方案中主要介绍开发在线考试系统得目的、开发方案的选择及开发框架的技术的确定;需求分析介绍了在线考试系统的总体需求及系统各模块的功能需求;系统设计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发框架与数据库的连接及数据的备份与还原。【关键词】:在线考试,JSP,JAVA,oracle9i/10g数据库,B/S模式前言 17网上
3、考试系统前言 21.1问题分析41.2项目目的51.3方案选择51.4开发框架技术82、需求分析92.1任务概述92.2功能需求概述92.2运行环境103、系统设计103.1指导思想103.2系统结构图123.3数据库设计144、系统架构与数据库的连接165、结束语19参考文献19【ABSTRACT】On-line examination system the aim is carry out examination of have no the paper turn a management, can carry on through Internet net or bureau area
4、net to some examinations of categories, convenient school square test the management of duty, also convenient the examinee is particularly suitable for examinee to distribute widely and not easily concentrated of long range education.I mainly develop the system-JAVA of the backstage managements on-l
5、ine examination management sub- system of system and it includes to try the management, on-line creation of a management, examinee to try book, control the constitution that the student examine and try an examination and approval etc. function.This thesis mainly introduced to manage the analysis, de
6、sign of the sub- system and all processes of the development to JAVAs on-line examination.Make use of ER diagram, procedure flow chart etc. to on-line manage the design process of sub- system to carry on expatiation.The full text is totally divided into the design, key technique of the analysis, sys
7、tem of the development project, need to solve, conclusion five part.Develop the main introduction in the project develops on-line examination system purpose, development project of choice and development frame of the assurance of technique;The need analysis introduced the total need of the on-line e
8、xamination system and the function request of each mold of system piece;The system design introduced the design, system mold of the instruction thought, database of system design the design of the piece;The key technique introduced at concrete carry out need some techniques for solve, such as develo
9、pment frame of integration technique, development frame with The database link and the backup and revivification of data.21后记21当今社会,考试已经是我们必不可少的东西了,从小到大我们已经考过无数次了,以后还要考,不管是国内还是国外的各大厂家,都在不断的推出一系列的考试、认证。又是要我们去考试。我们国家的自考或是成考,以及各省市的各种考试,现在都在朝着信息化的道路前进在走。我们相信在今后这一系列的考试将会走向网络化考试的。这样才是符合信息技术发展的方向。我们要给不同的考试
10、同一个好的解决方案。 这个方案在技术上来讲我们是采用B/S模式。 在windows/Linux平台上,使用IE浏览器,完成抽题、考试、交卷等考试任务。方便,简单的完成各种考试,这也是我们的目的所在。考点模块通过网络获取题库,按照题库中的抽题策略,自动给每个考生生成一份试卷,考生在线作答,考试结果数据通过网络回收,系统自动进行判分,生成考试成绩和统计数据。“在线考试系统”是集合现代考试理论、方法和现代信息技术手段的智能化网上考试系统,为学生个性化学习提供“灵活、方便、科学、公平”的“个别化考试服务”,是终结性评价系统。学生可以随时、随地进行课程结业考试。学校与社会上的各种考试大都采用传统的考试方
11、式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷,考生考试,人工阅卷,成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用
12、这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效,便捷的作用,把老师从繁重的工作中解脱出来。在这里不得不说“老师们,你们辛苦了”;1、系统需求分析1.1问题分析在以往传统的学校教学中,进行考试,要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。而在线考试系统,正是信息化建设的产物,它是传统考场的延伸。它可以利用互联网络和局域网,随时随地的对学生进行考
13、试,加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学的不可缺少的辅助手段。在当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。1.2项目目的在线考试系统的总体目标:1、 在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数统计总结的所有工作。2、 所有的考试数据和其它数据库需要一种主流的方式进行存储和管理,例如使用数据库技
14、术。3、 考试数据的存放和处理必须对考试保密,需要一定的安全性保障。对考试的系统目标:1、 这个软件是分布式的,这意味着只要有考试客户端可以连接到考试应用服务器,任何考生在任何地方进行身份确认,都能完成考试。2、 题目最好有一定的稳定性和随机性。稳定性可以保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。3、 考试的部分结果在考生考完之后就可以知道,同时监考教师可以根据同学们答题的情况作备注记录对教师的系统目标:1、 提供一个功能全面的考核管理客户端,可以进行考试设计和安排。2、 通过管理客户端,教师可以进行考试的身份管理。3、 考生的考试结果可以被保存下来,供教师进行分析统计和察
15、看。1.3方案选择1、 开发在线考试系统,提出以下解决方案:选择Oracle作为后台的数据库,选择JAVA、JSP、JavaScript、Html作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S (Browser/Server)模式进行设计,采用strus框架进行架构。2、 JAVA简介Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优
16、异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统。3、 Web应用程序开发环境JSP技术JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点:a) 将业务层与表示层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;b) 能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服
17、务器也提供了支持JSP的服务;c) 组件的开发和使用很方便:如ASP的组件是由C+,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用;d) 一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括Write once , Run everywhere.4、 Tomcat应用服务器目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。 Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署
18、很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。
19、5、 oracleOracle全球公认最好的数据库提供商在8i之前支持1024p,9i之后没有限制(m-g-t-p-e)中国最早在保险业使用oracleoracle的版本1978年 oracle 11980年 oracle 21982年:oracle 3用c重写 ,跨平台1986年: oracle 5,关系型已经成熟1989年 oracle6 实现热备份1993年 oracle7,登陆中国1997年 oracle81999年 oracle8i 用java实现oracle 具有如下特性: l 其数据库引擎提供完整的 XML 支持l 一个数据库引擎可以在不同的平台上使用l 其关系数据库引擎支持当今
20、苛刻的数据处理环境所需的功能。l 一系列管理和开发工具,是其系统容易安装 、部署、管理和使用。l 有析取和分析汇总数据以进行联机分析处理 (OLAP) 的工具6、 B/S 开发模式伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系统。过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题:a) 系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时
21、也要对客户端分别处理。b) 在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。B/S模式带来了巨大的好处:a) 开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。b) 良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通
22、过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。1.4开发框架技术对于框架技术,我们采用Struts+Hibernate的整合,其实任何一种框架都可以完成我们的项目,但我们选择三种框架的组合是因为三种框架各有好处,我们利用它们的优点,来避免它们的缺点,充分利用Java技术在web的应用。l Struts是应用比较广泛的一种表现层框架Struts是一个为开发基于模型(Model)视图(View)控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和custom tag library构建Web应用的一项非常有用的技术。由于Struts能充分满足
23、应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。l AJAXAJAX(Asynchronous JavaScript And XML)利用javascript和xml两种技术以一种新的方式组合起来的一门客户端技术。它解决了以下问题: 1) 当前页面的内容丢失,处于空白状态 2) 用户当前的操作被中断 3) 如果页
24、面内容要局部更新的话,整个页面要全部被刷新。 使用目的:解决以上的问题 功能:用于客户端和服务器数据的异步传输 范围:任何Java应用l Hibernate通过持久层的框架将数据库存储从服务层中分离出来它是O/R Mapping的一种实现是目前在JAVA界使用非常广泛的O/R Mapping的一种实现,可以实现关系型数据库和对象之间的映射。用来开发数据库系统非常方便,可以将数据库和程序的设计融合在一起。表现层和服务层的分离是通过两种框架达到目的的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来就是其目的,持久层框架有两种方向:直接自己编写JDBC等SQL语句(如Ibat
25、is);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。Hibernate的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一 些基本类,就可以达到使用数据库的目的。例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。Hibernate提供的HQL是一种类SQL语言,是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于
26、标准的SQL2、需求分析2.1任务概述在线考试管理子系统主要实现题库管理、在线制作试卷、在线控制考试、自动评分、自动交卷、考生管理、成绩查询、试卷管理等功能,充分利用计算机科学与技术,改变传统的考试操作方式,实现无纸化考试的模式。2.2功能需求概述系统需要解决的主要问题我主要开发的是教师管理子系统,在此系统中我们主要对前台考试系统的显示信息进行管理和设置。我将子系统分为以下功能模块: 教师管理用户管理考试统计试题讲解 监考教师管理查看考生情况查看考试情况开始考试结束考试考试统计:用于查看考试的信息试题讲解:可对本次考试进行试卷的讲解用户管理:对本用户的信息进行修改查看考试情况:对不同的班级和科
27、目进行统计,统计分为:不及格、及格、中等、良好、优秀五个等级,统计值为各个等级所占的百分比.查看考生情况:可以查看不同班级的不同科目的考试的详细情况开始考试:监考教师点击考试考试按钮后,考生才能考试考试,否则没有试题。结束考试:监考教师点击结束考试按钮后,考生不能再提交考卷。2.2运行环境l 硬件需求: PIII/256M/10G 及以上配置,要求为考试系统分配足够的数据库磁盘空间l 推荐配置: PIV 2G/512M/40Gl 操作系统需求: Windows2000及以上操作系统 ( 推荐 ) ,也可以使用 Sun Solaris 等 Linux 操作系统l 数据库软件需求: Oracle
28、9i/Oracle 10g 数据库l 中间件软件需求:tomcat系列服务器3、系统设计3.1指导思想、B/S结构开发思想B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层(3-tier)结构。一个三层架构的应用程序由三部分组成,这三部分各自分布在网络中的不同地方。这三个部分分别是:工作站或表示层接口、事务逻辑、数据库以及与其相关的程序设计。在一个典型
29、的三层架构应用程序中,应用程序的用户工作站包括提供图形用户界面(GUI)的程序设计和具体的应用程序入口表格或交互式窗口。事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。第三层包括数据库以及处理读写以及访问数据库的程序。然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。这种应用程序的设计使用客户/服务器模式,各层可以同时开发,并且可以由不同的成员组用不同的语言来开发。因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开
30、发软件是很方便的。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。、系统工程的流程思想我们在系统开发过程中,采
31、用软件工程的开发管理,在开发的过程中也遵循软件工程的思想,软件工程的主要环节有:人员管理(自己模拟)、项目管理(我的小组模拟)、可行性与需求分析、系统设计、程序设计、测试、维护等,如图1.1所示。 、面向对象机制的设计思想所有计算机均由两种元素组成:代码和数据。精确的说,有些程序是围绕着什么正在发生而编写,有些则是围绕谁正在受影响而编写的。第一种编程方式叫做面向过程的模型,按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码。如 C 等过程化语言。第二种编程方式叫做面向对象的模型,按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它
32、的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象、封装、继承和多态的好处。、代码分层思想由于采用B/S设计模式分层思想,同时根据软件工程的管理思想及系统分析的设计与分析的思想进行系统的开发,利用Java语言开发Web应用程序,提供String+Hibernate+Spring框架对系统的程序代码结构进行分层。分层的策略如下:serviceLocator表示层StrutsStruts Action,ActionForm,Jsp,AJAXStruts-config.xml,DAO Classes业务层ServiceHibernate session Mana
33、gement持久层HibernateDataSource/Connection PoolTransactionsBusiness Service ClassesQueryLanguage Support and other Hibernate ServicesDomain Model Business ObjectsStruts-Spring-Hibernate 架构3.2系统结构图、本系统分为学生前台子系统和考试管理子系统,整个系统的结构图如下:在线考试系统考生前 台后台管 理题库管理 班级管理考试管理试卷管理成绩管理用户管理权限管理学生登陆 系统部分功能序列图用户登录序列图:系统操作序列图
34、:3.3数据库设计 根据系统需要和考试需要,设立了如下数据库表:examstate考试状态表 字段名 字段类型 约束或索引 描述idnumberPK记录流水号statenumber记录考试状态(1提交0未提交)state 字段名 字段类型 约束或索引 描述idnumberPK记录流水号bajivachar2记录班级beizhuvachar2考试的备注timedate考试的日期student字段名 字段类型约束或索引描述idnimberPK记录流水号kaohaovarchar2考号namevarchar2学生姓名banjivarchar2班级passwordvarchar2学生密码stateni
35、mber考试状态1-在线0下线scorenimber分数ipvarchar2ip地址teacher字段名 字段类型约束或索引描述idnimberPK记录流水号namevarchar2教师姓名passwordvarchar2教师密码statenimber考试状态1-在线0下线ipvarchar2ip地址jteacher字段名 字段类型约束或索引描述idnimberPK记录流水号namevarchar2监考教师姓名passwordvarchar2监考教师密码statenimber考试状态1-在线0下线admin字段名 字段类型约束或索引描述idnimberPK记录流水号namevarchar2管理
36、员姓名passwordvarchar2管理员密码statenimber考试状态1-在线0下线ipvarchar2ip地址chengji字段名 字段类型约束或索引描述idnimberPK记录流水号kaohaovarchar2考号namevarchar2学生姓名banjivarchar2班级kechengvarchar2课程maxscorenimber总分scorenimber分数banji字段名 字段类型约束或索引描述idnimberPK记录流水号namevarchar2班级名称numnimber班级人数classvarchar2所在的教室名称timevarchar2开课的时间4、系统架构与数据
37、库的连接对于数据库的连接,我们的数据访问接口采用JDBC-ODBC桥数据驱动程序,以纯Java的方式来连接数据库,为访问不同的数据库提供统一的接口。JDBC数据库驱动程序是把JDBC调用翻译成厂商专用API的调用。开放数据连接(ODBC)最初是为微软操作系统上的SQL提供API标准,后来也在其他的平台上提供了支持。ODBC为直接访问数据定义了一组函数,而不是在客户应用程序中嵌入SQL。JDBC-ODBC桥在JDBC API 和ODBC API 之间提供了一个桥梁,这个桥把标准的JDBC调用翻译成对应的ODBC调用,然后通过ODBC API把它们发送到ODBC数据源。在选择了数据访问接口后,开始
38、利用这个原理进行具体的连接了。由于我们开发时是利用MVC的设计模式,所以在此我们的数据库连接是封存在M中的,即只要我们和M层连接上,就已经连接上数据库了。在M上我们采用Hibernate框架技术,以下是一个非常简要的Hibernate体系结构的概要图:从这个图可以看出,Hibernate使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。我们只需在hibernate.cfg.xml中配置以下语句即可:!DOCTYPE hibernate-configuration PUBLIC -/Hibernate/Hibernate Configuration DTD 3.0/EN truejdbc:oracle:thin:192.168.1.250:1521:briupdboracle.jdbc.driver.OracleDriverjd0801jd0801org.hibernate.dialect.Oracle9Dialectmytest5、结束语 当今许多高校都非常关注无纸化网络考试的开发与应用,本文是通过考试方面进行的尝试,实践证明,该方法是可行的;我们结合企业的开发技术及在校所学理论知识(软件工程,操作系统,数据结构等学科),利用毕业设计的机会,开发一套在线考试系统,基本上实现了在线考试及考试管理