基于JAVA在线考试系统的设计与实现Word格式文档下载.docx
- 文档编号:21677306
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:27
- 大小:258.38KB
基于JAVA在线考试系统的设计与实现Word格式文档下载.docx
《基于JAVA在线考试系统的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于JAVA在线考试系统的设计与实现Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
Keywords:
distancelearning,onlineexaminations,MVC,JAVA,Swing
第一章引言
1。
1课题背景
随着近些年来网络的蓬勃发展使得网络教育也得到了一定的认可,代表了现代教育的重要发展趋势,推动了教育的更新换代。
在这种形式下,网络教育所伴随的在线考试必定能在将来的教育事业上作用明显.到目前为止,包括教育部在内的教育执行机构等都在积极的制定在线考试机制,使得教育事业更上一层楼。
所以,如今很多研发机构都在响应时代的命题对网络教育以及附属产业进行探讨和研发。
伴随着网页技术对日常生活的渗透,开发一个在线考试系统已经势在必行。
1.2课题的目的和意义
根据现有情况,教育机构和学校都还是采用以往的考试方式,即纸质答卷。
但是传统纸质考试步骤很繁琐,考试组织机构要组织人员更具自己的需求出试题;
安排考生在所在考场考试;
安排监考人员监考;
安排阅卷人员对试题进行评阅;
最后安排阅卷结束后的总结大会并对考试情况作出分析报告。
不只是这样,其工作也将会是十分繁琐并且非常容易出错。
换句话说,传统的考试方式已经在一定程度上不太适合现代考试的需求.在计算机应用的迅猛发展的前提下,网络应用也伴随着蓬勃发展。
所以,无论是考试机构还是考生都迫切需求一个应用来减轻工作量。
不仅减轻了考生的负担,而且也提高了考试的质量.从而使考试更接近公平,公正,客观,更能激发考生的学习积极性。
现在这种技术已经得到初步推广,得到了各种认证考试的认可.综上需求,我们做出这个在线考试系统能够在考试和学习的过程中起到便捷、提高考试质量、减少阅卷工作量的作用.
1.3对于该项目的描述
对计算机的应用,使得生产效率得到了极大的提高,同时也使一部分生产力得到了解放。
在信息化飞速发展的今天,计算机的应用来解决实际生产生活中的问题已经相当普遍.鉴于传统考试中使用纸质试卷带来的效率低下,信息滞后等诟病,我们迫切需要一个应用解决这些问题。
本文设计这个在线考试系统,采用了JAVA编程语言实现考试系统。
本文介绍的这个在线考试系统,考生通过系统许可。
在用户登录界面输入自己的账户和密码,进入考试系统。
然后根据系统提示,完成考试作答并得到自己的分数。
上述这个过程全部都是在网络上进行并且解决了纸质答卷的繁琐过程.
本文论述的在线考试系统主要分成两个部分,即服务器部分与客户端部分。
这两者之间是通过网络连接起来的,服务器的一个线程和客户端是连着的.
首先,在服务器部分,这部分首先启动。
然后,服务器开始读取系统所需的配置文件。
上述操作能够使考试所用到的试题提交到服务器;
接着读取学生的信息、学号、姓名、密码等都要出现在服务器中。
将上述信息读取到服务器中之后,将上述信息封装在某个类中,紧接着等待客户端发送请求。
当客户端有请求发送,然后服务器就会与客户端进行连接.然后等待请求结束,该连接才会断开.在这个过程中,服务器不断监听客户端的请求,控制运行进程。
其次,客户端部分,设计的比较简单。
因为要给学生操作,所以为了方便学生进行操作,这里用到了图形界面的操作.上边提到的图形界面总共有三个界面构成。
第一个就是用于学生考试的用户登录的界面:
考生需要正确输入自己的账号和密码才能登录该系统;
第二个就是学生选择考试科目的界面,在这个窗口出现之前先将前面一个窗口关闭,然后再创建新的窗口;
第三个界面是考生的考试界面的窗口,进入此界面也要关闭前一个窗口,紧接着当考生完成考试,提交试题,分数自动显示,然后关闭窗口。
在此同时,服务器同时要断开连接,线程结束.综上所述,就是客户端的三个窗口。
在这个在线考试系统中,本文涉及到两个主要的类:
即试卷类和学生类。
这两个类的信息,都是以配置文件的形式保存的.上述信息都可以用工具类读取。
4系统设计思想
本文所描述的在线考试系统是以服务器和客户端的连接为中心的,下述就是该系统的设计思想。
首先,服务器先启动,服务器然后读取配置文件.接着,将考试所需的考题以及规定格式写入配置文件;
然后,把考生的账号密码等信息写入另一个配置文件中.服务器需要读取试题信息,所以在设计时要定义学生类,试卷类以及题目类。
当客户端与服务器之间连接时需要数据请求,这里包括多种请求类型.这里包含的请求有连接请求,考生登录请求,试题发送请求,答题请求。
为满足上述需求,我们要定义请求类,并且要求服务器不断读取请求信息。
为了减少代码量,我们这里需要几个工具类:
一个是创建套接字的连接;
另一个就是用来读取配置文件的工具类。
这样就出来了服务器的基本框架。
在客户机这边,我们只需考虑一个线程就行了.并且涉及到四个类,这之中有三个窗口类和一个客户机与服务器线程连接的类。
这个连接类是上述三个窗口类的一个属性,这个属性用来使三个窗口类与服务器进行数据通信。
三个窗口也只能通过上述连接类与服务器之间进行通信.这样这个客服器的整体设计也就呈现出来了。
此外还要说一下就是,客户机与服务器进行连接是通过IP和端口号数据通信的。
客户机与服务器对应关系如下:
一个客户机对应一个服务器;
而一个服务器对应多个客户机。
服务器与客户机通过线程连接。
5可行性分析
鉴于在线考试系统的美好前景,本项目的设计目标是实现考试系统,并且能够实现其相应的业务功能,例如登录功能,考试功能,管理员修改难度系数,考试时间,题目数,考试得分等。
此项目需要实现如下功能.
一、登录功能:
用户能够准确无误的登录考试系统.二、考试功能:
实现基本的业务逻辑。
三、查看分数:
在考试结束后,考生能够看到考试分数.四、管理员可以根据系统定义修改难度系数和题目数。
五、题目切换:
实现上一题与下一题的切换.六、其他功能还有计时功能等。
第二章系统设计相关技术介绍及开发环境要求
2。
1MVC模式的介绍
1MVC模式的概述
MVC是模型(Model),视图(View)和控制(Controller)的缩写。
其中Model层用来实现系统中的业务逻辑,通常可以用JavaBean来实现;
View层用于与用户的交互;
Controller层连接模块与视图,它可以是用户的请求得到恰当的视图予以显示,同时它也可以是用户的输入得到解释并将它们映射为模型层可执行的操作[1].
2.1.2MVC的强势与劣势
优点:
低耦合性,使得更改视图层代码就不用重新编译模型和控制器代码。
高重用性和可适用性,允许你是用各种方式的视图来访问同一个服务器端的代码。
快速的部署,使用MVC模式是的开发时间得到相当大的缩减[2]。
缺点:
MVC的缺点是它没有明确的定义,不容易理解.
2.2Java组件JavaBeans
1什么是JavaBeans
JavaBeans是一种企业级开发中的技术规范,凡是遵循该规范的类都称为JavaBeans类,又叫做pojo类。
该规范主要包含以下几点:
1.所有的类都必须实现序列化接口。
2.所有的属性尽量定义为私有属性.
3。
所有的方法定义为公有方法。
4.提供属性的get和set方法,通过该方法可以访问属性.
2.3JavaSE概述
JavaSE是javaStandardedition的缩写。
JavaSE就是Java的标准版,主要用于桌面应用软件的编程。
JavaSE包含那些构成Java语言核心的类。
比如:
数据库连接、接口定义、输入/输出、网络编程[3]。
JavaSE具有以下几个特点:
第一,它比较容易开发;
第二,它启动时间短,内存占用较少;
第三,它还有元数据特性。
4关于Struts
4。
1Struts简介
Struts是开源软件.使用Struts的目的是为了帮助我们减少在运用MVC设计模型应用的时间。
Struts已逐步越来越多运用于商业软件,是一种非常优秀的JavaSEMVC实现方式[4]。
2.4。
2Struts的主要功能
1.Struts包含一个controllerservlet,能够将客户端的请求发送给Action对象。
2。
它提供了一系列实用对象:
通过Javareflection自动处理JavaBeans属性、提示和消息。
Struts提供了它自身的控制器组件,并且整合了其他技术,用来提供模型和视图。
Struts正逐步被运用,是性能良好的MVC实现方式[5]。
3Struts工作原理
这里我们先来介绍一下MVC,MVC是Model-View—Controller的缩写。
它作为称用得设计模式得到了广泛的运用。
MVC使数据接口和逻辑接口连接减弱,并且使得视图更加富有变化性。
MVC使得程序逻辑清晰,更容易被人理解。
MVC的工作原理如下2—1所示:
2—1MVC的工作原理
接下来,我们说一下Struts,它作为MVC的一种实现。
Struts继承了MVC的各项特性,具有MVC的特点。
并根据JavaSE的特点,做出了相应的更改。
Struts的工作原理,如下图2—2所示:
2—2Struts的工作原理
2.5关于Swing
2.5.1Swing简介
Swing是建立在AWT之上的组件集。
除提供了AWT所缺少的、大量的附加组件外,Swing还提供了替代AWT重量组件的轻量组件。
AWT中文含义抽象窗口工具包(AbstractWindowToolkit)功能是Java开发用户界面最初的工具包。
Swing还包括了一个用于实现插入式界面样式特性的图形用户界面的下层构件.因此,在不同的平台上,Swing组件都能保持组件的界面样式特性.例如双缓冲、调试图形和文本编辑包等[6]。
2.5。
2为什么需要Swing
Swing设计者采用的设计模式:
模型——视图—-控制器(MVC)模式。
该设计模式遵循一个基本原则:
它限制一个对象的功能的数量。
防止一个按钮完成所有的事情.而应该分配内容,比如说让一个对象负责组件的观感,另一个对象负责存储内容。
当程序员想要使用Swing组件来完成开发时,不需要考虑MVC体系结构。
每个用户界面的元素都有一个包装器的类来保存模型和视图.当需要查询所需要的内容时,包装器类会向模型询问并且返回所要的内容。
当想要改变视图时(例如,在一个文本域中改变光标位置的时候),包装类会把此请求转发给视图。
然而,有时候包装器转发命令并不得力。
在这种情况下,就必须直接地与模型进行交互。
5.3Swing带给我们什么
MVC模式吸引广大Swing设计者原因是这种模式允许实现可插观感。
每个按钮或者文本域的模型是独立于观感的。
当然可视化表明完全依赖于特殊观感的用户界面的设计,并且控制器可以改变它。
比如,在一个语音控制设备中,控制其需要处理的各种事件与使用键盘和鼠标的标准计算机完全不同。
Swing设计者通分离底层模型与用户界面,这样能够重用模型的代码,更甚于在程序运行时对观感进行切换[7]。
对于绝大多数组件,模型类将实现一个以Model命名结尾的接口.比如,我们所知道的按钮就实现了ButtonModel接口.实现上述接口的类可以定义各种按钮的状态。
上述按钮并不是很复杂,在Swing组件库中就有个叫DefaultButtonModel的类就实现了这个接口。
在试图对象中,每个Swing组件都有一个相关的后缀UI的视图对象[8].
2.6关于开发环境的概述
2.6.1操作系统
此在线考试系统的开发环境是Windows系统,该系统安全系数比较高而且方便。
6.2开发语言
开发语言:
jdk1.6.0_10。
JDK(JavaDevelopmentKit)是Sun公司针对Java开发员研发的产品。
Java的就是JDK,它包括了Java运行环境(JavaRuntimeEnvirnment);
一堆Java工具和Java基础的类库(rt。
jar)。
所有的Java应用程序都有某个版本的JDK与其相对应.所以,要学好Java,首先要掌握JDK。
最能被程序员接受的是Sun公司发布的JDK。
除了Sun之外,好多公司都开发了自己的JDK。
例如GNU组织开发的JDK;
IBM公司开发的JDK等[9]。
2.6.3开发环境
开发环境:
Eclipse6。
0版。
Eclipse是一个基于JAVA的开发平台。
它的源代码是开放的。
该软件本身是一个框架和一组服务,用于通过插件组件来构建开发环境。
其中Eclipse附带了一个标准的插件集,包括了Java开发工具(JavaDevelopmentKit,JDK)[10].
7关于布局的概述
2.7。
1BorderLayout
BorderLayout用于边框布局的布置容器。
它可以对容器内的组件等进行布局设置。
例如,调整大小,调整容器内组件的位置。
该容器有以下五个区域:
东、西、南、北、中.这五个位置,每个位置只允许包含一个组件。
并且这些位置都有自己的标志:
EAST、WEST、SOUTH、NORTH、CENTER[11]。
2.7。
2FlowLayout
FlowLayout外观管理器的功能就是把系统程序中所用的的各个组件按照先后顺序由上到下,由左及右依次排开[12]。
3GridLayout和GridBagLayout
GridLayout的作用是将该窗口分成大小不等的均匀网格,然后使得组件能够依次按格放入组件。
GridBagLayout的功能是根据设计者的想法,改变组件的大小,使它们能够摆在想要的位置[13]。
2.8小结
本章主要介绍了该在线考试系统的关键技术和工具,对系统模式简介MVC,以及串联的Struts。
使得模型--视图--控制器直接进行恰当的交互,完成各自的职能。
用Swing布局器进行布局,使得用户界面的设计更加人性化。
第三章系统需求分析和总体设计
1系统功能需求
这个在线考试系统的设计目标是实现考试系统,让考生能够自主考试完成答卷以及查分。
并附带实现相应的业务功能,如登录功能、考试功能、查分功能等。
项目中的需实现的功能如下。
1.登录功能。
考生能够自主登录该考试系统,再输入考生的账号密码后能够准确无误的进入考试系统。
为考试完成做好充分的前提。
考试功能。
它主要业务逻辑就是考试功能。
考试功能,顾名思义,考试点击该按钮能够打开试题进行作答.进入考试后系统为考生自动分配考题,考生只需对试卷中出现的考题进行作答即可。
3.查看分数.考生能够在考试结束后查看考试分数。
当考生对自己分配到的试题做大完毕并确认无误后,提交试卷。
系统会对考生对试题的作答准确与否进行判断,进而对考生的作答给出得分。
4.查看考试规则。
该考试系统能够查阅考试规则。
考试组织者根据具体情况对考试规进行编写。
考生在考试前能够阅读该规则,以免出现不该发生的失误。
5.题目切换。
实现上一题、下一题的切换。
是考生能够在做题的过程中进行题目选择,或者切换题目进行答案纠正,题目检查。
6。
计时功能。
考试科目都有规定一定的作答时间,该考试系统具有倒计时功能.考生能够时刻看到自己的作答时间以及剩余时间。
不至于因为时间问题影响自己的答题,计时功能能够督促考生快速完成试题的作答。
除此之外,该系统下管理员还可以修改难度系数和倒计数时间修改设定以及考题题目的增减来适应不同的情况.
2系统设计的总体框架
3。
2.1软件层次结构
控制层
视图层业务层数据层
3-1软件层结构
在线考试系统软件层次结构大致以上述图片进行连接。
首先,登陆窗体,菜单窗体,测试窗体共同构成了用户客户端。
用户客户端连接业务层,业务层连接数据层,三者共同构成了该考试系统的软件层结构。
3.2.2界面与控制器的关系
3-2界面与控制器的关系
界面与控制器的关系大致由上图就能够表述出来,客户端就是这里的控制器.它能够控制选择进入各个界面。
它根据考生的信息输入请求,响应进入不同的考试界面。
例如:
登陆界面,选择界面,和考试界面。
综上,呈现出控制器与界面的关系.
3.2。
3业务层介绍
在这个在线考试系统的开发中,业务层采用接口加实现的方式制作。
其中项目中的业务层主要有以下几个功能:
1.验证用户信息的正确性。
当用户来到登陆界面,用户需要输入本人的账号和密码方能进入该考试系统完成考试作答。
当输入的账号或者密码不准确时,系统会做出报错信息。
以免考试出现问题。
从数据层抽取试题,生成试卷,为表现层提高考试所需要的信息及试题。
使考生能够得到考试试题并完成考试。
验证用户的答案是否正确并且给出分数.在考生完成试题作答后能够获取自己的得分。
3.2.4数据层介绍
在本次在线考试系统的开发中,数据层的主要实现的功能是读取用户信息,考题信息,考试信息等。
读取用户信息:
数据层接收到登录请求时,数据层要调出用户信息并且读取。
从而响应请求,进而用户能够顺利进入考试系统.
考题信息:
当用户登录考试系统成功,考生要进行考试,必须发送考试请求。
这时,数据层要调出考题信息,形成考题。
这样,考生就能进入考试界面并完成考试作答。
考试信息:
当考生开始答卷,数据层要不断地更新考试信息。
并通过考生的答案提交判断考生的得分。
当考生提交试卷,数据层提交考生得分。
3系统的用例图
1总体用例分析
在线考试系统
3—3总体用例图
由上图我们可以看出该考试系统分为以上五个部分即:
用户管理部分,考试管体部分,成绩管理部分以及试题管理部分。
其中,用户管理部分是对用户的个人信息进行统一管理,使用户能够登陆该在线考试系统。
考试管理部分是指考生再登陆考试系统后,对考试进行的所有操作,比如,查看考试规则、进行考试、试卷提交等,都贵考试管理部分统一作出处理。
成绩管理系统就是当用户提交试卷,系统给出分数后,它要对数据进行处理并能够在用户界面呈现出来.试题管理部分是管理者将试题导入该考试系统,并将试题进行分类。
当用户点击考试请求,试题管理部分自动分配考题供用户作答。
上述的使用者分为两部分,其中一部分是管理者;
另一部分是用户。
3.2用户管理用例分析
通过下图我们能够看到用户管理分为以下四部分,当用户登陆考试系统后可以进行以下五个操作即:
考试开始,分数,考试规则,试题提交以及离开.当考生点击考试开始,系统就为用户分配好试题。
当然在开始考试前最好看一下考试规则,以免出现非受获性失误。
当用户提交考题时要进行试卷提交操作,接着用户会得到考试结果即考试分数.最后用户进行离开操作,离开考试系统。
这样,一次完整的在线考试就结束了。
这就是用户所能体验的在线考试系统的用户的所有操作.
3—4用户管理
3.3。
3考试管理用例分析
考试管理
3—5考试管理
综上图,我们可以得到考试管理部分包括以下五个管理项目。
就是考试规则的修订填充;
考试系统曾是正常时刻准备用户考试;
开始考试,对考试进行计时,以及监督用户进行考试操作,进行整错判断;
用户提交试卷后,考试管理自动判断用户所做出的答案并进行评分;
最后考试管理提供用户分数。
这些都能被用户体验。
3。
4考试题目管理用例分析
题目管理
3-6题目管理
上图所描述的是管理者对题目进行的管理操作。
它包含五部分:
题目的增加、题目的删除以及答案的设置。
增加题目和删除题目是管理者对试题库的试题进行数量的修订,以满足用户对该考试系统的需求。
答案设置就是对试题的正确结果作出明确标出。
综上来实现管理者对题目的管理。
5成绩管理用例分析
成绩管理
3-7成绩管理
上图是该系统的成绩管理用例.管理者对用户的成绩进行管理,用户能够查询自己的成绩.完成系统的成绩显示职能。
3.4小结
这一章通过对系统功能需求、设计框架以及总体用例图来分析系统需求和总体设计。
由系统的功能需求够做出系统的基本框架,通过框架让我们更能了解考试系统的基本构造。
最后通过系统的整体用例图来说明用户与管理者所需的操作以及在此考试系统中起到的作用。
为在线考试系统的构造做出更详细的说明,为下边在线考试系统的具体编写做好坚实的铺垫.
第四章系统的详细设计
前边几章我们已经介绍过,本文所描述的在线考试系统主要有两部分组成:
客户机部分和服务器部分。
此外,该系统还涉及到一些实体类和一些工具类。
这些类在系统中都是以包的形式存在,下边我们来介绍一下考试系统的设计方式.按照包的形式.
1客户机的类
客户机的类包含LginFrame类、SelectSubjectFrame类、ExamMainFrame类、Client类。
各个类在此考试系统中都扮演着不同的角色,下面我就来介绍一下。
首先是登陆界面。
该界面有登录窗口、学号输入框、密码输入框、确定进入考试系统按钮、取消按钮等。
这些都是都是使用的LginFranme类来编写的实现的。
而SelectSubjectFrame类用来编写选择科目的窗口、一个选择科目的标签、一个选择科目的下拉菜单和一个确定按钮以及一个取消按钮。
下边这些都属于ExamMainFrame类:
学生考试窗口、考试窗口的标题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JAVA 在线 考试 系统 设计 实现