APP下载

基于JAVA的网络考试系统的设计与实现

2017-12-12杨艳华

科学与财富 2017年31期
关键词:客户机服务器端按钮

摘要:随着网络的蓬勃发展,网络教育也得到了越来越多的认可。在这种形势下,网络教育所伴随的在线考试必定在未来教育事业上作用明显。本文阐述了一套基于JAVA的网络考试系统设计思路和实现过程。能够实现在线考试、客观出卷、高效阅卷、分析成绩等功能,提高考评工作效率。

关键字:网络教育;网络考试系统

网络考试实现了传统考试和现代科技的完美结合,符合现代教育体制的要求,代表着现在教育考试的发展方向。

一、网络考试系统需求分析与设计

本文所阐述的网络考试系统是以服务器和客户端的连接为中心的。客户机与服务器进行连接是通过IP地址和端口号数据通信的。客户机与服务器对应关系如下:一个客户机对应一个服务器;而一个服务器对应多个客户机。服务器与客户机通过线程连接。

1、功能要求

选取考试题目类型为标准选择题。题目类型确定,会大大降低系统设计的复杂度。分析系统功能,主要包括客户端、服务器端功能两个方面。

(1)客户端功能如下:

登录功能,输入考号与姓名;

考试功能,显示试题内容;

题目切换功能,实现上一题下一题的切换;

计时功能,实现考试计时;

阅卷功能,选择题试题答案;

查分功能,考试结束能查看考试成绩;

(2)服务器端功能如下:

登录功能,对考生输入的考号与姓名进行验证;

考试功能,向客户端传递试题内容;

查分功能,统计并存储考生的得分。

2、场景分析

场景是从用户的角度观察目标软件系统的外部行为,是用户与系统进行交互的一组具体动作。

通过分析,考试系统开户端包括以下几个场景:输入考生信息并验证、开始考试并计时、选取考题、提交答案、查看成绩。共有三个界面构成。

(1)第一个是用户登录界面:考生输入信息单击"确定"按钮,此时应把考生信息送往服务器验证,经服务器验证后,把验证结果送往客户端。如果验证不通过,则输出验证没有通过的响应提示。如果验证通过,则可以开始考试。

(2)第二个是考生的考试界面:开始考试并计时,当验证通过后,考生信息可设置为不显示,单击"开始考试"按钮,则服务器端读取考试时间并显示在客户端界面中;自动选择考题,向服务器端发送请求,服务器把试题内容发送到客户端变现实;提交答案,当考生选取考题答案并单击"提交答案"按钮后,由服务器记录考生提交的答案。

(3)第三个是查看成绩界面:当考生考完试题后,单击"成绩"按钮,可马上看到自己的考试成绩。当考生单击"关闭"按钮,服务器要断开连接,线程结束。

在服务器端,由于是对多名考生同时提供服务,因此服务器端不需要编写专门的考试界面,只按照客户端考生提交的请求进行相应的处理并把处理结果发送给客户端即可。

3、数据存储

(1)考生信息存储

考生信息由考号、姓名、成绩组成,由于数据量不大,处理比较简单,我们采用Access数据库存储考生信息即可。

(2)试题存储

由于试题题目类型单一,数据量不大,我们选取文件存储。文件中第1行用于存储考试时间,提示与时间中间用"@"分隔;第二行用于存储试题的标准答案,同样提示与标准答案中间用"@"分隔;题目中间用"**********"分隔,在最后一题的"**********"后面有"试题结束"标识。

4、类的构造

(1)服务器启动,服务器读取配置文件。将考试所需要的考题以及规定格式写入配置文件中;然后,把考生的账号密码等信息写入另一个配置文件中。服务器需要读取试卷信息,所以在设计时定义学生类、试卷类以及题目类。当客户端与服务器之间连接时需要数据请求,这里包括多种请求类型:连接请求,考生登录请求,试卷发送请求,答题请求。为满足上述需求,我们需要定义请求类,并且要求服务器不断读取请求信息。为了减少代码量,我们这些需要几个工具类:一个是创建套接字的连接;一个是用来读取配置文件的工具类。这样就形成了服务器的基本框架。

(2)在客戶端,我们只需考虑一个线程即可。共涉及到四个类,这之中有三个窗口类和一个客户机与服务器线程连接的类。这个连接类是上述三个窗口类的一个属性,这个属性用来使得三个窗类和服务器进行数据通信。三个窗口也是通过上述连接类与服务器之间进行通信。这样就形成客户端的整体设计结构。

二、程序设计及实现

1、客户端模块

(1)考试面板类TestPanel体现了考试界面的核心内容,包括考试时间、试题显示、选择答案等组件。在该类中实现了在考试过程中向服务器发送请求并处理来自服务器的信息。主要涉及的功能有线程启动后执行run方法,接收服务器发送回来的信息并作出相应的处理;初始化面板中的图形组件;把毫秒表示的时间转化成时、分、秒等字符串表示;单击"开始考试"按钮后要执行的任务;计时器倒计时;单击"提交答案"按钮后要执行的任务;单击"成绩"按钮后要执行的任务;关闭所有连接。

(2)客户端主类ClientFrame设置了考试界面的基本样式并能实现考试信息验证。

2、服务器端模块

(1)数据库连接对象类DBConnection建立并返回数据的连接对象。本系统数据库连接采用了JDBC_ODBC模式,数据源的名称为"student"。

(2)服务器端主类MultiServer创建的服务器端的ServerSocket,当有客户发出连接服务器的请求时,生产客户端进行通信的Socket对象。

(3)读文件类ReadTestFile能获取考试时间、标准答案、读取考试试题等。主要涉及的功能随机抽取序号,读取试题中序号指向的每一题并返回,读取到文件最后。

(4)多线程类ServerTread及时处理客户端提出的要求,如考生信息验证、读取试题并发送客户端、计算考试成绩并发送客户端等。其中考试信息验证及最终考试成绩都是通过数据库操作实现的。

三、网络考试系统的特点

1、先进的开发技术和框架

采用当前最优秀的J2EE技术和主流的SSI框架进行开发,系统功能可扩展性强。

2、可靠的考试引擎技术

可靠性高,系统性能稳定,可承担大规模在线考试。

3、完善的考试实时监控功能

监考老师可以随时查看在线考生的考生身份、进入考试时间、试卷答案、交卷时间等情况,还可以作废或回复某考生考试。

4、强大的统计分析功能

支持对知识点、试题、考试成绩等多维度的查询统计。

四、结束语

网络考试系统,网络考试是延伸了传统考试考场的涵义,它利用网络的无限广阔空间,把考场从学校延伸到计算机机房、办公室及其他任何网络所覆盖的区域,并可随时对考生进行考试,加上数据库技术的利用,使考试变得更公平公正、更具权威性和可靠性。

参考文献:基于java技术的网上考试系统,刘昌华、班鹏新,武汉轻工大学学报,2003,22(2):40-42

作者简介:

杨艳华 ,女(1977.11--),黑龙江省哈尔滨市,副教授,硕士,研究方向:数据库技术,软件开发。endprint

猜你喜欢

客户机服务器端按钮
当你面前有个按钮
Linux环境下基于Socket的数据传输软件设计
浅析异步通信层的架构在ASP.NET 程序中的应用
死循环
基于Qt的安全即时通讯软件服务器端设计
内心不能碰的按钮
网页防篡改中分布式文件同步复制系统
瘦客户机:安全与便捷的选择
基于Web数据提高访问速度的方法