基于java的在线考试系统设计与实现毕设论文Word格式.docx
- 文档编号:18911752
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:55
- 大小:501.27KB
基于java的在线考试系统设计与实现毕设论文Word格式.docx
《基于java的在线考试系统设计与实现毕设论文Word格式.docx》由会员分享,可在线阅读,更多相关《基于java的在线考试系统设计与实现毕设论文Word格式.docx(55页珍藏版)》请在冰豆网上搜索。
随着高校的信息化建设进程日益深入,计算机网络技术的飞速发展,高校校园网建设的逐步完善,传统的考试方式已经不能适应现代化考试的需要。
开发基于Java的在线考试系统,通过此软件可以实现多学科网上在线考试,既能把教师从繁重的试卷命题、批阅试卷、试卷分析等工作中解放出来,又免去了印制纸质试卷、按考场分发试卷、纸质试卷保存等很多繁重工作,而且提高了试卷的保密性。
本文设计了基于C/S模式,采用了易于维护的文件来存储试题和用户,服务器采用Java组件构成的考试系统,它运用方便、操作简单,效率很高。
也就是说实现了真正的无纸化考试,满足考生随时随地考试并迅速获得成绩,大大减轻了教师出题、组卷和改卷等繁重的工作量。
关键词:
在线考试;
客户/服务器模式;
文件存储
ThedesignandimplementationofonlineexaminationsystembasedonJava
Author:
WEIZeng-li
Instructor:
BAILing
Abstract:
Ascollegesanduniversitiesinformationconstructionprocessisbecomingmoreandmoredeeply,therapiddevelopmentofcomputernetworktechnology,campusnetworkconstructionofcollegesanduniversitiesgraduallyimprove,thetraditionalexaminationwayalreadycannotadapttotheneedofmoderntest。
Developmentofon-lineexaminationsystembasedonJava,bythissoftwarecanrealizemultidisciplinaryonlineexam,cantheteachersfromtheonerouspaperproposition,markingexaminationpapers,papersandtests,analysis,andwasrelievedfromtheprintedpaper-basedtest,accordingtothetestvenuedistributionexaminationpaper,paper-basedtesttosavealotofhardwork,andimprovetheconfidentialityofthetestpaper。
Inthispaper,basedonC/Smodeisdesigned,adoptedthefiletostorethetestquestionandtheusereasytomaintain,serverusingJavacomponentsofthetestsystem,isitconvenienttouse,simpleoperation,highefficiency。
Thatistherealpaperlessexamination,meetthecandidatesandquicklyobtaintestanytimeandanywhere,greatlyreducedtheteacher,groupvolumeandchangethequestionssuchasheavyworkload。
Keywords:
Theonlinetest;
C/Smode;
Filestorage
引言
当今社会是一个信息社会,计算机业飞速发展,从而也要求有更好、更完善的软件系统应用到远程教育当中去。
远程教育包括很多环节例如教学系统、答疑系统和考试系统等等。
其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。
虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
在线考试是现阶段研究开发的一个热点。
它是建立在国际互联网上的应用系统,客户端的配置可以极为简单,使考试不受地域的局限。
一个完备的在线考试系统可以使用户在网上学习过后及时检验自己的学习效果,已发现自己的不足,使得学习效率得到很大提高。
在线考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在网络上自动完成。
只要形成一套成熟的题库就可以实现考试的自动化。
这样一来,教师所要做的只是精心设计题目、维护题库,而不是组织考试,从而大大减轻了教师的负担,这表明其经济性是相当可观的。
为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来。
目前,网络应用软件运行的模式主要有二类Browser/Web和Client/server模式模式。
考虑到B/S结构的数据处理同步方式带来的时间冗余、响应速度慢、功能弱化、无状态方式带来的会话控制成本,C/S结构数据处理速度快,能够完成个性化以及复杂应用的先天优势,并且数据处理很大一部分工作是在客户端完成,可以减轻服务器压力。
C/S技术发展历史更为长久,技术更加成熟,C/S版本有着长时间的用户的成功的应用经验,而B/S是近几年才开始发展起来的。
从而我开发了基于C/S模式在线考试系统,实现了用户注册、用户登录、随机出题、在线考试、自动判卷等功能,也就是说实现了真正的无纸化考试满足任何授权的考生随时随地考试并迅速获得成绩,同时也大大减轻了教师出题、出题和判卷等繁重的工作量。
本文引言部分主要介绍了在线考试系统软件的背景,第一章对本课题进行概述,从课题研究的意义目的,研究中遇到的问题以及方案出发全面了解要设计的课题所要具有的功能,第二章系统分析,好的系统首先要做好充分的需求分析,从它的功能分析,数据的存储分析,可行性等多方面来分析整个系统,做好开发前的准备工作。
第三章主要介绍了系统的详细设计部分,主要包括用户层的设计、系统功能的总体逻辑层次,设计要求、系统规划、数据存储设计。
第四章介绍系统功能的实现,包括开发工具的介绍、注册模块的实现、登录模块的实现、考试模块的实现。
其中考试模块又包含进入考试部分,查看分数部分、考试规则部分。
第五章主要介绍系统的测试,包括运行环境,测试方案等。
第六章讲解一下系统的部署情况,包括其所要求的软硬件环境要求及安装过程,论文最后是结论、致谢及参考文献。
概述
1.1课题的意义、目的
在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着改革,而网络考试则是一个很重要的方向。
基于Java技术的在线考试系统是传统考场的延伸,可以大大简化传统考试的过程。
考生可通过姓名、准考证和口令进行登录,试卷可根据题库中的内容即时生成,可避免考前的压题,体现了对考生公平性;
而且可以使用大量标准化试题,从而使用计算机判卷,体现了答案的安全性,大大提高阅卷效率。
因此,采用在线考试系统将是以后考试发展的趋势。
为了将教师从繁重的试卷命题、批阅试卷、试卷分析等工作中解放出来,又免去印制纸质试卷、按考场分发试卷、纸质试卷保存等很多繁重工作,从而开发出本系统。
本项目研究拟利用Java技术,在windows环境下,使用便于维护的文件式存储基于C/S模式为平台开发的一套在线考试系统,从而解决了上述繁琐的工作。
1.2研究中遇到的主要问题
1)怎样完成整个系统界面的设置与开发。
2)怎样用抖动窗口的形式提示考生用户名不存在以及密码输入错误。
3)怎样确保考生抽取不同的试题并且题目不可以重复出现在一张试卷中。
4)怎样进行考试倒计时。
5)怎样解决试卷的判题和出成绩。
6)怎样解决试题的存储与读取。
1.3研究方案
1)系统开发平台
本系统是在windows下开发,考虑到使用B/S结构时当网络不稳定会造成响应速度慢,使用C/S结构完成的在线考试系统,它不仅可满足用户的个性化设计,而且事务处理能力强大。
采用MVC架构进行分层开发,使用Swing技术完成对界面的开发,包括登录界面、菜单界面、考试界面等等。
2)研究方法
本课题的研究方法是采用MVC分层设计模式,即“模型—视图表示—控制器”的思路来完成系统实现的。
首先使用Swing技术完成对界面的开发,包括登录界面、菜单界面、考试界面等,然后对整个系统进行逐个模块开发工作;
获取当前窗口的坐标,用一个Point实例来保存其x、y坐标,添加一个任务来周期性改变窗口坐标模拟晃动效果;
将试题存储在questions集合中,从集合的随机下标中获取这个元素,同时将刚获取完的元素从集合中删除防止本套试题中出现相同的题目;
用计时器Timer来进行考试的倒计时,时间到了之后强行交卷;
将Question中的正确答案集合和用户答案集合进行equals然后保存用户正确题目的数量分数来得出成绩;
编写一个共通的配置文件来解析user.txt文件以及question.txt文件信息,然后分别将其转化为User实例和Question集合并对其进行操作。
2.系统分析
2.1需求分析
软件的需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素,即就是发现、求精、建摸、规格说明和复审的过程。
为了发现用户的真正需求,首先应该从宏观角度调查、分析用户所面临的问题。
也就是说,需求分析的第一步是尽可能了解当前用户的情况和需要解决的问题。
2.1.1功能需求分析
本系统的用户可分为管理员和普通用户两类。
系统会自动判断用户的登录类型,根据用户的登录类型判断是普通用户还是管理员登录。
如果是管理员登录,系统会自动进入管理员界面,管理员可以对试题和用户进行管理,可以对试题库中试题进行修改和删除,添加试题等,同样也可以对用户进行相同管理。
如果是普通用户登录,即学生登录,会自动跳转到考试界面,学生可以根据考试界面的提示信息来进行答题,考生可以查看考试规则,选择开始答题,考生开始答题后计时器开始计时,考试根据随机出现的不重复题目来进行考试,当考试快要结束的时候,计时器会变动颜色来提示考生时间快要结束,时间结束之前考生可以自愿交卷,当时间结束之后,系统会提示考生考试时间已经结束,然后强制进行自动交卷,考试结束后系统会根据已有的标准答案进行在线判卷,考生可以立刻知道考试成绩,并可以查看考试成绩,当考生结束考试之后,系统不会再让考生重新考试。
2.1.2数据存储分析
针对一般的系统可能会考虑选择用什么数据库来存储信息,例如本系统中,需要保存用户的信息,更需要保存试题的信息,由于考试系统需要保存大量的考试试题,因此我考虑用txt文件来存储相应的试题信息以及用户信息。
这种存储方式既便于操作又便于维护,但考虑到读写方式,不可以盲目存储,用共通的配置文件来解析用户文件以及试题文件信息,然后分别将其转化为对应的用户实例和试题集合并对其进行操作。
2.2可行性分析
实用性原则:
传统考试的弊端日益增多,在线考试也随之而产生,在线考试已渐渐被人们所接受,并有逐渐代替传统考试的趋势。
考生通过用户名、口令进行登录,试卷可以根据题库中的内容即时生成,可避免考试前的压题,而且可以采用大量标准化试题,从而使用计算机判卷,大大提高阅卷效率,在线考试还能充分的利用学校的现有资源,大大减轻教师的工作量,把老师从出卷、阅卷等一些繁重中做中解脱出来。
经济性原则:
随着网络技术的发展,计算机软件技术的提高,硬件的性价比也在不断提高,建立适合在线考试系统用户自身需求的平台,提供广泛的涵盖用户多种需求的功能,数据处理方式灵活满足需求,并确保其较好的拓展性和开放性;
与此做这些事的同时,其花费与传统的考试过程相比,大大节省了人力物力;
同时能够自主的对系统中大部分内容作更新、修改操作,节省了老师学生的宝贵时间,提高了信息更新、传播效率。
扩充性原则:
系统的整体规划及框架设计是具可扩充性的,系统在设计开发中充分考虑了移植、扩展的问题。
这是每个系统都要考虑的重要问题,本系统是基于Java开发的,众所周知,Java平台将面向对象系统扩展成包括程序和数据的网络计算机(CN),而这个平台的核心就是java平台成为万能开发平台,实现了Java程序“编写一次,到处运行”。
本系统用分层的设计方法设计,细化模块可以很好的解决将来系统扩展中不改变基本架构的同时增加功能。
前台页面的设计能保证系统在更新后不会破坏系统的整体结构。
安全性原则:
Java设计时对系统的安全,特别是网络安全做了周密的考虑,通过字节验证、内存调用方式、资源使用权限等进行多次的安全管理。
Java被认为是在任何系统上最安全的应用程序之一。
由于Java垃圾收集器会做自动的垃圾收集(GarbageCollection),这里的垃圾指一些不会被再使用的对象,所以程序设计者不需费心,内存会被自动地管理,Java本身提供了许多面向对象的异常(Exccption)处理,所以程序在执行时期所发生的错误,都可以由程序自己来处理。
2.3技术分析
本课题采用C/S开发模式,运用java语言J2SE版本开发,充分利用java语言的面向对象特点及其跨平台性,采用MVC分层设计模式,即“模型—视图表示—控制器”的思路来完成系统实现的。
Java平台是一种纯软件平台,它有三个版本JavaSE、JavaEE、JavaME。
JavaSE(JavaPlatform,StandardEdition)这个版本以前叫做J2SE,后来版本号从1.4直接跳到5.0,其实也就是1.5,所以就叫成JavaSE5.0。
目前Java开发人员使用较多的版本是5.0,当然还有JavaSE6.0这个更新的版本。
它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。
JavaSE还包含了支持JavaWeb服务开发的类,并为JavaEE这个版本提供基础。
一、Java语言与其他语言比较,具有以下特点:
(1)简单性
Java继承了C/C++的语法,丢弃了其中不常用又容易引起混淆的功能,特别是非面向对象的内容,取消了C语言的结构、指针、#define语句、多重继承、全局变量和函数、GOTO语句、操作符重载、自动类型转换等等。
(2)面向对象
Java是一种纯面向对象的语言,具有封装、继承和多态的特性,无全局变量或函数,可以被用于面向对象这种现代软件工程。
(3)分布式
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。
因此,Java应用程序可凭借URI,打开并访问网络上的对象,象本地一样。
(4)解释型
Java写成的源代码需要被编译成高阶的字节码,它们与机器架构无关。
然后,这种字节码在任何Java的运行环境中由Java虚拟机解释执行,保证了Java的与平台无关性和可移植性。
解释执行与及时编译技术(JIT)的完美结合,提供了相当高的运算性能。
(5)多态的支持
Java是一种非常注重对象形态转换的语言,所以在编译时期就会做形态转换检查,在执行时期,Java也会做一些形态上的检查。
(6)垃圾收集和异常处理
(7)安全性
二、Java的技术平台:
Java不仅是一种语言,更重要的是一种区别于传统系统,遵循“网络就是计算机”信条的平台技术。
Java平台将面向对象系统扩展成包括程序和数据的网络计算机(CN),而这个平台的核心就是java平台成为万能开发平台,实现了Java程序“编写一次,到处运行”[9]。
Java虚拟机(JVM)是一种抽象化的计算机,可以再上面执行Java的字节码。
它本身的设计原则是“小而简单”,目的是为了尽可能在所有的机器上都能安装。
这样的精简原则,使得它能够在现有的各种平台上都可以顺利执行,适合各种网络的环境[10]。
Java的技术平台的工作原理:
第一步:
Java用一个编译器将资源程序代码(.java)转换成可执行程序(.class),Java编译器生成的独立于处理器结构的字节码。
第二步:
字节代码用一个Java虚拟机(JVM)来执行,JVM是理想化的Java处理芯片,通常是在软件上实现而不是在硬件上实现[11]。
三、C/S与B/S结构的选择:
考试系统的研究方向主要是围绕以Client/Server(C/S)模式或Browser/Server(B/S)模式开发进行研究。
C/S模式考试系统常用于局域网范围内的考试。
考试前,先在客户机安装客户端软件,客户端软件遵循相关协议连接至服务器端[10]。
客户端发送考试请求后,由服务器把相关的考卷传送回客户端[13]。
B/S模式网络应用程序技术是考生在客户端通过浏览器向服务器发送考试请求,服务器将相关考卷发送至客户端浏览器。
C/S结构(Client/Server的简称,客户机/服务器模式)。
在上个世纪八九十年代以及八九十年代初期已经得到了大量应用,最直接的原因是可视化开发工具的推广。
最初为两层结构,随着技术的进步以及应用的需要,逐步的向三层结构发展。
C/S结构的优点:
(1)响应速度快。
C/S结构是客户端与数据库直接相连,没有中间环节,因此响应速度快。
(2)软件设计个性化,可满足用户个性化的需求。
因为C/S机构有着自己的客户端,在客户端的设计上,可以根据客户的需求进行个性化的设计,可以满足客户复杂的个性化需求。
特别是在操作界面、报表工具等方面。
(3)C/S结构充分利用客户端的硬件设施,将很多的数据处理工作在客户端完成,故数据处理能力比较强大,对一些复杂的业务流程,也容易实现。
同时,C/S结构也有它的缺点:
1、分布能力差。
成也萧何,败也萧何,因为有客户端的安装带来的一系列个性化的方便的同时,也造成了在系统部署时,对每一个用户都要安装客户端才能进行使用,如用户数量庞大分布广泛的话,此时给部署带来及大的不便。
2、维护成本高昂由于客户端数量庞大,对系统的维护和升级都是很大的考验。
3、跨平台使用难以实现C/S系统如果需跨平台使用,必须重新开发在其系统平台下的客户端才能使用。
B/S结构(Browser/Server的简称,浏览器/服务器)。
是相对于C/S的登录方式的不同而命名的。
是一种终端只是用来显示和接受输入,所有的数据存储、计算、格式化以及页面代码的生产都是在WEB服务器上。
B/S结构的优点:
1、分布性广,灵活方便只要有浏览器并且能够上网就能够登陆服务器进行信息的处理、采集工作。
不受客户端的限制。
2、维护简单方便只要在服务器端进行配置就可以完成部署。
如需升级,也只要在服务器端进行维护,客户端就自动登录最新的系统。
同时,B/S结构仍有它的缺点:
1)数据处理同步方式带来的时间余WEB是以一问一答(request/response)的方式来完成信息交互的,并且是同步方式。
如果有一问而没一答,我们就必须等待,等待答复完成才提出下一问。
举个大家最为常用的电子邮件的例子,在使用web邮箱时,你写完一封邮件提交,只有当此邮件提交完成,页面刷新到邮件提交已完成时,你才可以进入下一封邮件的书写,如遇到网络问题,前期的工作还有可能全部重新来过。
而使用本地邮件客户端(如outlook)书写邮件完成后,你可以按一下发送按钮,然后继续下一封邮件的书写,让客户端自行在后台完成邮件发送任务。
先满足你书写下一封邮件的需求,邮件的提交至少不需要马上,而可以在后台自动处理完成。
2)响应速度慢页面的动态更新,响应速度明显降低。
主要原因是在数据传输的过程中不仅要传输所处理文件的文件,还要同步传输页面的布局等界面控制信息。
3、功能弱化B/S模式下很难实现个性化的需求,对一些在C/S下很容易实现的功能,如报表工具等,在B/S下很难实现。
3)功能弱化B/S模式下很难实现个性化的需求,对一些在C/S下很容易实现的功能,如报表工具等,在B/S下很难实现。
4)无状态方式带来的会话控制成本在浏览静态页面时,各个静态页面并不构成一个需要前后关联的事务,因此不需要保存当前页面的状态,这好比你可以在一本书前后页随便翻阅。
而一旦前后处理有着明确的逻辑程序,服务器在保存数据的同时还要保存用户的状态(到逻辑的那一步),开发人员要精心设计提交的次序及信息的完整性,大费周章的进行控制。
而对C/S而言,只需全部完成后提交即可。
在线考试系统的开发首先考虑到数据的安全性和程序的方便性,该系统没有采用B/S模式而采用C/S模式[13]。
因为B/S模式不易实现考试时间的自动控制,提交试题的时候如果服务器忙则可能会造成服务器长期没有响应,或数据丢失。
而采用C/S模式则比较易于控制,而且数据可以反复提交直到提交成功,从而确保考生答案能够被提交到服务器[14]。
3.系统的详细设计
3.1用户层的设计
项目实施之前,我们对用户的工作方式、业务流程和管理模式进行了比较详细的了解和细致的分析,从总体上进行把握,再就工作流程和需求等细节问题上进行多次的相互交流,并得到用户的认可。
为了便于管理和开发,对于整个系统来说,现在我们在集中形成的用户界面上体现的主要功能为:
登录模块、题目管理模块、成绩管理模块、用户管理等。
3.2系统功能的总体逻辑层次
本课题采用C/S开发模式,采用MVC分层设计模式,即“模型M—视图表示V—控制器C”的思路来完成系统实现的。
视图:
数据的展现。
视图是用户看到并与之交互的界面。
视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。
视图可以向模型查询业务状态,但不能改变模型。
视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
模型:
应用对象。
模型是应用程序的主体部分。
模型代表了业务数据和业务逻辑;
当数据发生改变时,它要负责通知视图部分;
一个模型能为多个视图提供数据。
由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
控制器:
逻辑处理、控制实体数据在视图上展示、调用模型处理业务请求。
当用户单击视图层页面中的提交按钮来发送数据时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。
3.3设计要求
3.3.1系统稳定性
在线考试系统的用户数随着学生的日益增大而越来越多,在线考试系统对于学校管理和学生实践工作至关
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 在线 考试 系统 设计 实现 论文