学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 计算机论文 > 软件工程论文

基于Java的网上考试系统设计与开发

来源:学术堂 作者:何权
发布于:2022-05-10 共4679字

摘 要

  针对网络数据传输标准协议 TCP/IP 的关键技术进行了分析,提出了一种在浏览器/服务器模式下,基于 Socket 套接字运行机制的网络应用程序开发方法,并利用 Java 语言作为开发工具,通过实例加以具体实现。

  关键词: java socket 网络 考试 模拟系统

Development of the Network Exam System Based on Java

Abstract

  Abstract: This paper analyses the key techno;ogy of the TCP/IP protocol in the network data transmission.And presents a network application development method based on the B/S model and the Socket running mechanism.At the end, this method is exemplified by using the Java Language as development tools.

  Keywords: JAVA socket network exam mock system

目 录


  第一章 引言

  1.1 背景
  1.2  课题目的

  第二章 系统开发平台介绍

  2.1 TCP/lP 协 议
  2.2 B/S 模 式

  第三章  系统的分析

  3.1 Socket 运行机制
  3.2 Java 中的 Soeket 类

  第四章  系统的总体功能设计

  4.1 系统结构与功能

  第五章  主模块的实现过程

  5.1 服务器端实现代码
  5.2 客户机端实现代码

  结语
  参考文献
  致谢

第一章 引言

  1.1 背景

  在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着 变革,而网络考试则是一个很重要的方向。基于 Web 技术的网络考试系统可以 借助于遍布全球的 Internet 进行,因此考试既可以在本地进行,也可以在异地 进行,大大拓展了考试的灵活性。试卷可以根据题库中的内容即时生成,可避 免考试前的压题;而且可以采用大量标准化试题,从而使用计算机阅卷,大大 提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序等操作。所 以现在较好的考试方法为网络考试,试题内容放在服务器上,考生通过姓名、 准考证号码和口令进行登录,考试答案也存放在服务器中,这样考试的公平性、 答案的安全性可以得到有效的保证。因此,采用网络考试方式将是以后考试发 展的趋势。

  1.2 课题目的

  随着计算机应用的普及和网络技术的发展,网络考试这种新的考试模式已 越来越受到人们的青睐。网络考试彻底摒弃了传统考试繁杂的处理流程,无论 应试者身处何地,只要能获取考试登录地址和账号,便可在线测试,整个考试 过程快捷、方便、准确.Java 语言是一种目前广为流行的网络编程语言,它具有面向对象、平台独立、多线程等特点,非常合适在网络环境下开发应用程序,特别是 Java 提供的 Socket 套接字技术的引人,使网络应用程序开发时不必考 虑网络底层代码设计,大大简化了原有的网络操作过程。本文就是利用 Socket 完成了网络考试模拟系统核心部分的代码实现。

在线考试系统

第二章  系统开发平台介绍

  2.1 TCP/lP 协议

  TCP/IP 协议一种能使存在于网络中不同平台上的主机间进行数据传箱的标 准约定.TCP/IP 是一组协议群,其核心为 TCP 传愉层协议和 IP 网络层协议.当 网络中两台主机需要进行数据传愉时,TCP 协议首先建立起一条稳定的连接通 道,位于两端的主机利用这条通道来传输数据.TCP 协议提供了用于流量控制和 拥塞处理的机制,保证了数据传输的安全性和可靠性,适合可靠性要求较高的 网络应用程序的开发

  2.2 B/S 模式

  传统的 C/S(客户机/服务器)模式采用“请求一回应式进行网络数据的传愉, 其中,提出请求的一端为客,提供回应服务的另一端为服务器.客户机是主动方,向服务器发出连接请求;服务器是被动方,一直处于监态,等待被来自客户机的 请求服务所触发并做出响应客户机可以对应多个服务器进程,一个服务器进程也对应多个客户机 B/S(浏览器/服务器)摸式是对 C/S的扩充,客户机不直接与服务器的应用程序操作,而是网络浏览器与服务器应用程序进行数据传输.在 B/S 下开发的网络应用程序具有 C/S 无法比拟的优越性,B/S 中,采用浏览器作为用户与系统交互的界面,浏支持 TCP/IP 协议,解决了异构系统的连接问题在 B/S,不限制访问系统的用户数,具有良好的开 发性;在 B/,浏览器界面统一、直观而易于便用。

第三章  系统的分析

  3.1 Socket 运行机制

  TCP/IP 协议不是一种应用程序,它不提供直接的用服务,是通过中间件 Socket 来实现的.Socket 指套接字.一种网络进程间的通信机制,它由两部分组成,即 IP 地和端口号.IP 地址用于确定应用程序所在主机的网络地,一般由四 个 8 位的二进制数字组成,每个数字的范围在.O 到 255 之间,中间以小数点分 隔,如:127.0.01 为本地主机 IP 地址.端口号可用于区分不同的服务进程,如: HTTP 服务端口号为 80,FTP 服务端口号为 21,一般 l 一 1024 为系统保留的端 口号.基于 TCP/lP 协议的 Socket 按照四个步骤运行:建立 Socket、创建连接到 Socket 的输入流和输出流、按照指定协议对 Socket 进行读写操作、关闭 Sooet 网络中数据传输开始前,套接字 Socket 首先在服务器建立 Socket 对象,并在 指定端口上进行监听,当接收到来自某一客户的连接请求时,由 Socket 为两端 建立一条可靠的专用虚拟传输通道,以及用于数据读写操作的输人流和输出流, 当数据传输结束后拆除 Socket 连接通道.Socket 独特而便捷的运行机制使得网 络间位于不同地域、不同机型上的主机能进行资源共享,是一种非常有效的网 络应用程序接口。

  3.2 Java 中的 Soeket 类

  Java 语言提供了大量与网络操作有关的类,大多存放在 java.net 包中,其中,以 Soeket 类与 Serversoeket 类最为有用 Socket 类实现了客户机套接字(.简称套接字),涉及的主要方法有:建立套接字,连接到指定名称主机(host)的指定端口(port),建立套接字,连接到指定 IP 地址(address)的指定端口 (port),返回从套接字读人数据的输人流,返回向套接字进行写数据操作的输出流,关闭套接字.Server-Socket 类实现了服务器套接字,涉及的主要方法有:建 立服务器套接字,未绑定端口,建立服务器套接字,绑定在指定端口(port), 监听来自客户机的连接请求,方法阻塞,直到连接成功,关闭服务器套接字。

第四章  系统的总体功能设计

  4.1 系统结构与功能

  网络考试模拟系统采用 B/S 模式,应试者在客户机端浏览器地址栏中输人 服务器的 IP 地址,客户机通过下载的 Java 应用程序与服务器建立 Socket 连接,然后调出存放在服务器上的试题.应试者进人考试系统后,按系统说明完成试题 的解答,并可随时提交答案,查看当前得分及提示正确答案.服务器中存放着系 统开发所需的所有字节码文件和试题文件.该系统主要提供的功能有:1)连接服务—输人服务器 IP 地址等待与服务器相连接,若系统连接成功,显示提取试题 界面;若连接不成功,提示连接失败.2)提取试题—选择模拟试题套数,当选中某套试题后,将每道试题依次显示在试题区域中.3)答题选项—应试者在试卷的 解答过程中,可以进行继续答题-—提交答案—查看成绩—退出考试这样四个步 骤.4)计时提示—根据考试规定时间,在答题过程中提示倒计时间,以提醒应试者注意时间限制。

第五章 主模块的实现过程

  5.1 服务器端实现代码

  利用 Java 语言提供的多线程来实现每个应试者(客户机)的服务请求.服务 器在无连接请求到来时,一直处于等待状态,并随时准备为多个客户机提供服 务.当某一客户机向服务器发出连接请求时,服务器主线程立即建立一个新的套接字连接,同时产生一个子线程来处理该客户机的请求,当服务器启动完子线 程后马上又回到监听状态,等待下一个客户机的连接请求.以下为核心代码段如图:

  public Class Server//服务器主类
  (public static void main(String argsl)
  {…
  while(true){//循环监听
  try{sersoe=new ServerSoeket(6568):}//创建
  服务器套接字,绑定端口
  catch(IOException e){}
  try{soc=sersoc.accept();//监听到来自客户机端的连接请求
  InetAddress address=soc.getlnetAddress();//获取客户机端的IP 地址
  System.out.println(”客户机端的 IP:”+address):)
  eateh(IOException e){}
  if(soe!=null)
  {new Serverthread(soc).start();}//启动子线程
  else{continue;}}
  }}
  Class Serverthread extends Thread//服务器子线程
  {…
  Serverthread(Soeket t)
  {soeket=t:
  try{in=new DatalnputStream(soeke..getlnPutStream());//创建输人流 out=new DataOutputStream(soeket.getOutputStream());//创建输出流
  eateh(IOExceptione){}
  …}
  Public void run()
  {while(true)
  {…
  try{s=in.readUTF()://从客户机端读人数据
  ...
  if(s.Startswith(”继续”))//若客户机端选择“继续”按钮
  out writeUTF(”试题内容:”+eontent-Test);//试题内容从服务器端传到客户机端 out.writeUTF(”考试用时:”+time);//考试用时从服务器端传到客户机端
  if(timeend())//若超时
  {out.writeUTF(”考试结束:”);}//考试结束...}
  Else if(s·startsWith(”提交’))//若客户机端选择“提交”按钮
  {...
  读取试题.setseleetion(answer)://提取答案
  …}
  Else if(s.startsWith(“查分”))//若客户机端选择“查分”按钮
  seore=读取试题.getScore();//提取得分
  message=读取试题.getMessages();//提取正确答案
  out.writeUTF(”您的得分为:”+seore+”\n”十 messages);//得分、答案从服务器传到客
  户机端
  …}}
  cateh(IOException e){
  try{soeket.close();}//关闭套接字
  cateh(Exception e){}
  System.out.println(”客户离开了”);//当前客户机端完成考试
  break;}}}}

  5.2 客户机端实现代码

  通过创建 Socket 与服务器建立连接.当连接成功时,生成考试界面,等待应试者答题.

  Public class Client extends Applet implements Action-Listener//客户机主类
  (...try{soeket = new Soeket(this.getCodeBase().getH-ost(),6868):/创建套接字,绑定端口 in = new DatalnputStream( soeket.getlnputstream());//创建输人流
  out = new DataOutputStream ( soeket.getOutputStream());}//创建输出流
  catch (IOExceptione ee)
  {提示条.setText(”服务器连接失败”);}//服务器未连接上
  if(soeket!=null)//服务器连接成功
  {…
  提示条.setText(”服务器连接成功!”);
  选择试题界面.setVisible(true);//生成选择试题界面...)
  Public void actionPerformed(ActionEvent e)
  {if (e.getSource()= =开始考试)//选择“开始考试”按钮
  {if(选择试题界面.getSuccess())//若试题生成
  {考试界面.setSocketConnection(soeket,in,out);//生成考试界面
  考试界面.setVisible (true);
  …)}
  Else if(e.getSouree()= =退出考试)//选择“退出考试”按钮
  {try{soeket..close();}//关闭套接字
  Cateh (IOException e){}
  System.exit(o):}//退出系统         }}.

结束语

  Socket 套接字运行机制不但是 TCP/IP 协议与应用联系的中间件,同时也是 Java 语言 提供的网络应用程口(API).它提供给用户快速、高效的实现手段.适合于面向浏览器/服务器分布式模式的网络应用程序开发。

参考文献

  [1]殷兆麟,等.Java 网络编程〔M].北京:国防工业出版社.01.105~135.
  [2]Ken Arnold,The Java Programming Language (Third Edition)[M],.PEARSON KDUCATION NORTH ASIA,2003.227~236.
  [3]Harvey M.Deitel,Java How to Program(Fourth Edition.CHINAMACHINEPRESS.2004.329~340.
  [4]耿样义.Java 课程设计[M].北京:清华大学出版社.2004.266~275.
  [5]王涛,等.Java 2 API 大全(下)〔M〕.北京:电子工业出版,2003.221-228.

致 谢

  在论文完成之际,我要特别感谢我的指导老师××老师的热情关怀和悉心指导。在论文的选题、构思和资料的收集方面,都给了很多的帮助,特别是他广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。

  在论文的写作过程中,也得到了许多同学的宝贵建议,他们也给了我很多 的支持和帮助,在此一并致以诚挚的谢意。

  再次感谢所有关心、支持、帮助过我的良师益友。

  最后,向在百忙中抽出时间对本文进行评审并提出宝贵意见的各位专家表示衷心地感谢!

相关标签:
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站