JAVAEE的在线考试系统Word文档下载推荐.docx
- 文档编号:16690131
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:38
- 大小:776.39KB
JAVAEE的在线考试系统Word文档下载推荐.docx
《JAVAEE的在线考试系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JAVAEE的在线考试系统Word文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。
随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。
例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。
为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效,便捷的作用,把老师从繁重的工作中解脱出来。
1、开发方案
1.1问题分析
传统的学校教学中,进行一场考试,要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。
尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。
而在线考试系统,正是信息化建设的产物,它是传统考场的延伸。
它可以利用互联网络和局域网,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学的不可缺少的辅助手段。
在当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。
将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。
1.2项目的目的
在线考试系统的总体目标:
在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数统计总结的所有工作。
所有的考试数据和其它数据库需要一种主流的方式进行存储和管理,例如使用数据库技术。
考试数据的存放和处理必须对考试保密,需要一定的安全性保障。
对考试的系统目标:
这个软件是分布式的,这意味着只要有考试客户端可以连接到考试应用服务器,任何考生在任何地方进行身份确认,都能完成考试。
题目最好有一定的稳定性和随机性。
稳定性可以保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。
考试的部分结果在考生考完之后就可以知道,同时提供一个机会让考生知道自己哪里做错了,并给出反馈信息说明理由。
对教师的系统目标:
提供一个功能全面的考核管理客户端,可以进行考试设计和安排。
通过管理客户端,管理员可以进行考试的身份管理。
考生的考试结果可以被保存下来,供进行分析统计和察看。
1.3方案的选择
开发在线考试系统,提出以下解决方案:
选择MySQL作为后台的数据库,选择Java、Jsp、JavaScript、Html,Servlet,
Struts,作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S(Browser/Server),采用最流行的MVC模式开发;
Java简介
Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。
Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统。
Web应用程序开发环境—JSP技术
JSP的全称是JavaServerPages,它是SUN推出的一种动态网页技术标准。
它在传统的静态页面文件(*.html,*.htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面。
JSP具有以下的优点:
将业务层与表示层分离:
使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;
能够跨平台:
JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务;
组件的开发和使用很方便:
如ASP的组件是由C++,VB等语言开发的,并需要注册才能使用;
而JSP的组件是用Java开发的,可以直接使用;
一次编写,处处运行:
作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括Writeonce,Runeverywhere.
Tomcat应用服务器
目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。
Tomcat是一个免费的开源的Servlet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的Webapp目录下,Tomcat会自动检测到这个文件,并将其解压。
你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。
编译以后,访问将会很快。
Tomcat也具有传统的Web服务器的功能:
处理Html页面。
但是与Apache相比,它的处理静态Html的能力就不如Apache。
我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。
Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。
MySQL数据库
MySQL是由MySQLAB公司开发的,并支持全世界最流行的开源SQL数据库的管理系统,目前版本很多,MySQL5.0对存储过程,触发器和试图有了很好的支持,成为开源数据库的首选.
B/S开发模式v
伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/Server)模式的应用系统转变为基于B/S模式的应用系统。
过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题:
系统安装、调试、维护和升级困难。
由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。
在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。
B/S模式带来了巨大的好处:
开发成本及维护成本降低。
由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。
良好的安全性能,防火墙技术可以保证后台数据库的安全性。
所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。
1.4开发框架技术
对于框架技术,我们采用Struts+JavaBean+Hibernate的整合,其实任何一种框架都可以完成我们的项目,但我们选择三种框架的组合是因为三种框架各有好处,我们利用它们的优点,来避免它们的缺点,充分利用Java技术在web的应用。
Struts是应用比较广泛的一种表现层框架
Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和customtaglibrary构建Web应用的一项非常有用的技术。
由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。
它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。
JavaBean业务层的业务;
用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。
用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
最初,JavaBean的目的是为了将可以重复使用的软件代码打包标准。
特别是用与帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。
这些包括如Grid控件,用户可以将该部件拖放到开发环境中。
从此,JavaBean就可以扩展为一个javaweb应用的标准部件,并且JavaBean部件框架已经扩展为企业版的Bean(EJB)。
Hibernate通过持久层的框架将数据库存储从服务层中分离出来
它是O/RMapping的一种实现是目前在JAVA界使用非常广泛的O/RMapping的一种实现,可以实现关系型数据库和对象之间的映射。
用来开发数据库系统非常方便,可以将数据库和程序的设计融合在一起。
表现层和服务层的分离是通过两种框架达到目的的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来就是其目的,持久层框架有两种方向:
直接自己编写JDBC等SQL语句(如Ibatis);
使用O/RMapping技术实现的Hibernate和JDO技术;
当然还有EJB中的实体Bean技术。
Hibernate的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。
例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。
Hibernate提供的HQL是一种类SQL语言,是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于标准的SQL
2、开发软件
2.1任务的概述
在线考试管理子系统主要实现题库管理、在线制作试卷、在线控制考试、自动评分(客观题部分)、自动交卷、考生管理、成绩查询、试卷管理等功能,充分利用计算机科学与技术,改变传统的考试操作方式,实现无纸化考试的模式。
系统需要解决的主要问题
此系统我们不区分个人具体做那些模块,都需要把整个的系统的每个模块做一边以下是我们分析
题库管理:
用于对单个试题的增、删、改、查等基本维护
试卷管理:
随机组卷`、还可对考生的基本信息进行维护。
考试管理:
对考试分配试卷,并对考试的基本信息进行维护
评卷管理:
对试卷的客观题自动的批改和查询
成绩管理:
对每次考试的学生成绩的基本信息进行维护,并提供学生成绩的统计管理
用户管理:
对使用本系统的用户基本信息进行维护,用户多数为:
系统管理员,学生
2.2运行环境
硬件需求:
PIII/256M/10G及以上配置,要求为考试系统分配足够的数据库磁盘空间
推荐配置:
PIV2G/512M/40G
操作系统需求:
Windows2000及以上操作系统(推荐),也可以使用SunSolaris等Linux操作系统
数据库软件需求:
MySQL数据库(推荐),也可以使Oracle8i/Oracle9i数据库
中间件软件需求:
tomcatmyeclipse6.0系列服务器
3、系统设计
3.1指导思想
、B/S结构开发思想
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层(3-tier)结构。
一个三层架构的应用程序由三部分组成,这三部分各自分布在网络中的不同地方。
这三个部分分别是:
工作站或表示层接口、事务逻辑、数据库以及与其相关的程序设计。
在一个典型的三层架构应用程序中,应用程序的用户工作站包括提供图形用户界面(GUI)的程序设计和具体的应用程序入口表格或交互式窗口。
事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。
第三层包括数据库以及处理读写以及访问数据库的程序。
然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。
这种应用程序的设计使用客户/服务器模式,各层可以同时开发,并且可以由不同的成员组用不同的语言来开发。
因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;
它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
、系统工程的流程思想
我们在系统开发过程中,采用软件工程的开发管理,在开发的过程中也遵循软件工程的思想,软件工程的主要环节有:
人员管理(自己模拟)、项目管理(我的小组模拟)、可行性与需求分析、系统设计、程序设计、测试、维护等,如图1.1所示。
、面向对象机制的设计思想
所有计算机均由两种元素组成:
代码和数据。
精确的说,有些程序是围绕着"
什么正在发生"
而编写,有些则是围绕"
谁正在受影响"
而编写的。
第一种编程方式叫做"
面向过程的模型"
,按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码。
如C等过程化语言。
第二种编程方式叫做"
面向对象的模型"
,按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:
抽象、封装、继承和多态的好处。
、代码分层思想
由于采用B/S设计模式分层思想,同时根据软件工程的管理思想及系统分析的设计与分析的思想进行系统的开发,利用Java语言开发Web应用程序,提供String+Hibernate+Spring框架对系统的程序代码结构进行分层。
分层的策略如下:
Struts-JavaBean-Hibernate架构
3.2系统结构图
、本系统分为学生考试子系统和考试管理子系统,整个系统的结构图如下:
学生查看
、系统的用例图如下:
、系统部分模块类图:
用户的管理的类图:
后台管理的模块类图
系统部分功能时序图
考生登录时序图
管理员操作时序图
3.3数据库设计
、主要数据库表的介绍
根据系统需要和考试需要,设立了如下数据库表:
学生表(student):
用来保存学生的信息;
题库表:
(table_question):
用来保存题库的信息
成绩表:
(examreport):
保存考生考的成绩;
试卷表:
(exampaper):
保存考卷的信息
、数据库E-R图
数据库设计的逻辑实体关系图表示如下:
Table_question
Pk
id
context
answer1
answer2
answer3answer4
answer
primarykey(id)
Exampaper
Id
Fk
eridintnull,
qidintnull,
answervarchar(150)
primarykey(id)
Student
Stu_id
sno
name
password
primarykey(stu_id)
Examreport
Stidint,
auto_increment,
scoreint,
termvarchar(50),
、数据库表的创建语句及表的属性;
题库表:
createtabletable_question(
idint(10)notnullauto_increment,问题主键
contextvarchar(150),内容
answer1varchar(150),答案
answer2varchar(150),
answer3varchar(150),
answer4varchar(150),
answervarchar(150),标准答案
primarykey(id)主键定义
);
学生表:
createtablestudent(
stu_idintnotnullauto_increment,主键
snovarchar(150),学号
namevarchar(150),名字
passwordvarchar(150),密码
gendervarchar(15),性别
classnamevarchar(150),班级
humanidvarchar(150),身份证
phonevarchar(150),电话
addressvarchar(150),地址
emailvarchar(150),邮件
primarykey(stu_id)主键定义
考卷表:
createtableExamPaper(
idintnotnullauto_increment,主键的自增机制
eridintnull,成绩的id引用,
qidintnull,题目的id引用不
answervarchar(150),问定义题
primarykey(id)主键
createtableExamreport(
idintnotnullauto_increment,
scoreint,分数
stidint,学生的id引用
termvarchar(50),学期
3.4系统模块部分设计
3.4.1用户登录
对于已注册的用户根据用户名和密码进行登陆,登录界面如下:
填写您的学号、密码;
击“登陆”按钮;
用户名、密码都正确,登陆成功,进入考试主界面;
主要代码:
/*
*登录action
*/
StudentServicests=newStudentServiceImp();
/*调student用后台的业务*/
ExamServicees=newExamServiceImpl();
//创建试卷的业务方法;
publicActionForwardlogin(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
throwsException
{
Stringtarget="
f"
;
//标识
Stringsno=request.getParameter("
sno"
);
//得到页面中的sno属性的值;
Stringpasswd=request.getParameter("
password"
//得到页password
StudentServiceservice=newStudentServiceImp();
Try
{//调用学生的业务方法,通过sno来得到一个学生的实体;
Studentstu=sts.getStudentbySno(sno);
if(stu!
=null)
{//以下是对登录用户的验证;
if(stu.getPassword().equals(passwd))
{
HttpSessionsession=request.getSession(true);
session.setAttribute("
st"
stu);
session.se
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVAEE 在线 考试 系统