基于JavaWeb的在线考试系统的设计与实现.docx
- 文档编号:26076395
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:47
- 大小:1.50MB
基于JavaWeb的在线考试系统的设计与实现.docx
《基于JavaWeb的在线考试系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于JavaWeb的在线考试系统的设计与实现.docx(47页珍藏版)》请在冰豆网上搜索。
基于JavaWeb的在线考试系统的设计与实现
基于Java_Web的在线考试系统的设计与实现
在线考试
题目:
JavaWeb应用开发——
在线模拟考试系统的设计与实现
学院:
软件工程与服务外包学院
专业:
软件技术
学生姓名:
XXX班级/学号软工XXXXXXXXX
指导老师/督导老师:
XXX
摘要
随着网络技术的发展,远程教育和网上考试成为网络应用的一个重要方面。
近几年,在线考试特别是基于Web的在线考试系统受到越来越多的人青睐。
本次项目实训的题目是在线模拟考试系统的设计与实现,系统采用浏览器/服务器模式开发,包括登录注册、在线考试、试卷设置、试题管理、分数的统计以及成绩查询等功能。
系统运行在Windows操作系统上,以Tomcat作为Web服务器,使用SSH+JSP技术和MySQL数据库实现。
关键词:
在线考试;浏览器/服务器;JSP;MySQL;JDBC;
第一章项目概述
1.1开发背景
随着我国计算机技术和通讯技术的发展,互联网的普及程度已经很广泛了,但是,现在的教育教学检验方式,还是停留在过去的纸质考试层面在,而传统的教育教学检验方式中,要进行一次考试,至少需要经过教师出题、学生考试、教师阅卷等几步,这是一个繁杂的过程,需要大量人力、物力与时间的投入,同时也让教师的工作量越来越大;现在远程教育类学校的增多,虽然利用了网络拉近了教师与学生的距离,但学生的分布过广,导致了不易统一集中安排考试,考生成本的增加等诸多难题的出现,给校方和学生带来了很多的不便,因此,传统的考试方式已经不能适应现在新兴的教育教学方式的考试需要了。
可以解决这些诸多难题的一种方式,就是利用Internet无国界的特点,在互联网上在线考试。
在线考试系统可以减轻教师的工作负担、提高工作效率,也减少了因考试而消耗不必要的人力和物力。
在线考试的题目由计算机从题库中随机抽取,提高了考试的质量,考试的评判由计算机自动完成,这样使考试更趋于公证、客观。
随着社会的发展和我国互联网的普及,我们的生活中的已经有很多方面都运用到了网络,比如网上购物,网上交友等,甚至现在很多人看新闻都是通过网络阅读的,在阅读新闻这个事件上,已经不仅仅局限于纸质化的报纸上了;而要把考试趋于无纸化的模式,需要在线模拟考试系统来完成,这个也是现在高等教育发展的一个需求。
在国内,试题库系统理论与技术的研究在最近几年取得了很大的进步。
我国许多企业和高校都投入量大量的人力物力到各门课程的试题库中,并取得了一定的成就。
现在的生活中已经有越来越多的等级考试运用了在线考试系统,比如会计的电算化考试、计算机等级考试、银行资格证考试等,这些已经充分说明,在线考试系统是今后我们的考试生涯中的一个发展趋势。
1.2开发意义
考试是教育中一个非常重要的环节,但在以前的很长时间里,全球所有的国家都是以笔试的方式来检查焦距教学成果的,随着网络的发展,互联网已经普及的非常广泛,随着这些周围环境的改变,人们开始去寻找新的方式来去达到更客观,更方便快捷的去达到考试的目的。
近些年来,在国外,已经投入使用的考试系统有著名的TOEFL,GRE网上考试系统,还有微软、思科等大公司的国际认证考试等,这些考试系统在全球范围内有众多的使用者。
网络化考试系统对节约考试成本,实现远距离的同步考试,提高考试效率,确保考试结果的公平、公正、科学、及时等具有重要的意义,不仅可以动态地管理考试信息,而且还提高了教学的灵活性,相信随着技术的不断发展和网络覆盖面的不断扩大,在不断完善该考试系统的同时也会在更大的范围上应用。
1.3开发工具
本系统是基于Tomcat为服务器,SSH+JSP+MySQL数据库技术实现的一个简单的在线考试系统.
1.3.1动态网页开发技术—JSP(JavaServerPage)
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段和JSP标记,从而形成JSP文件。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与Javaservlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
Javaservlet是JSP的技术基础,而且大型的Web应用程序的开发需要Javaservlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
1.JSP技术的强势
(1)一次编写,到处运行。
在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比ASP/PHP的局限性是现而易见的。
(3)强大的可伸缩性。
从只有一个小的Jar文件就可以运行servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。
这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
2.JSP技术的弱势
(1)与ASP一样,Java的一些优势正是它致命的问题所在。
正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2)Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。
从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。
1.3.2数据库—MySQL
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。
MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
如雅虎、阿尔卡特—朗讯、Google公司、诺基亚公司、XX等公司就采用了MySQL数据库。
MySQL数据库可以称得上是目前运行速度最快的SQL语言数据库。
除了具有许多其它数据库所不具备的功能和选择之外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载.
MySQL数据库主要有以下特点:
1、可移植性
使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
2、可扩展性和灵活性
MySQL可以支持UNIX、Linux和SUNOS以及Windows等多种操作系统平台。
在一个操作系统中实现的应用可以很方便地移植到其他操作系统。
MySQL作为开源性质的数据库服务器,可以为那些想要增加独特需求的用户提供完全定制的功能。
3、强大的数据保护功能
MySQL有一个非常灵活且安全的权限和密码系统。
为确保只有获授权用户才能进入该数据库服务器,所有的密码传输均采用加密形式,同时也提供了SSH和SSI。
支持,以实现安全和可靠的连接。
MySQL强大的数据加密和解密功能,可以保证敏感数据不受XX的访问。
4、支持大型的数据库
虽然对于用PHP编写的网页来说,只要能够存放数百条以上的记录数据就是够了,但MySQL可以方便地支持上千万条记录的数据库。
作为一个开放源代码的数据库,MySQL可以针对不同的应用进行相应的修改。
5、超强的稳定性
MySQL拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用而不必担心其稳定性。
线程是轻量级的进程,它可以灵活地为用户提供服务,而不占用过多的系统资源。
用多线程和C语言实现的MySQL能很容易地充分利用CPU。
6、强大的查询功能
MySQL支持查询的select和where语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷、方便。
1.3.3Tomcat介绍
Tomcat服务器是一个免费的开放源代码的Web应用服务器,是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些学校及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
自从JSP发布之后,推出了各式各样的JSP引擎。
ApacheGroup在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet,这样Tomcat就诞生了。
Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的servlet和jsp容器,因此其越来越受到软件公司和开发人员的喜爱。
servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。
其次,Tomcat也是完全免费的软件,任何人都可以从互联网上自由地下载。
第二章系统分析
2.1现状分析
传统的考试方式是教师提前命题、印刷试卷、组织学生考试、学生在统一时间和地点考试、收卷后教师阅卷、成绩统计。
如图2.1
图2.1传统考试模式
这种模式存在有较多的问题:
命题:
由于是同意的时间进行考试,所以考生的试卷都是一样的,这样对教师命题带来的很大的麻烦,即:
试题太难或者太容易,都达不到考试的目的。
如果是大型的考试,比如英语四级考试,还要担心试题是否被泄漏的等问题(现在已经有类似问题的出现,才会有现在说的花卷)。
印刷试卷:
组织考试,印刷试卷费工费时,成本高,而且对于纸张资源也是一种浪费,而且印刷的时候,也会担心试题被泄漏的问题。
组织学生考试:
监考人资源的浪费,和教师资源的匮乏,如何调配也是一个难题,如果是全国统一考试,还要涉及不同区域同时考试的问题。
学生统一考试:
由于是同一时间,同一地点,同一张试题,考生作弊问题便会出现,而且是非常难解决的问题,再加上每个监考员监考的严格程度不同,这些人为因素难控制,使考试难公平,公正。
教师阅卷:
教师阅卷比较容易出错,会造成人为的不公正性。
成绩统计:
当成绩录入时,数字的混乱会导致录入者输入错误或者看错。
2.2可行性分析
可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、管理的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
该系统的可行性分析包括以下几个方面的内容。
2.2.1经济可行性
在线考试必然会在今后的教学管理上成为主要的考试形式。
开发一套能满足一般考试的需要,并实现试卷生成、评判自动化的在线考试系统。
在减少由于人为原因导致试卷阅卷的不公正的同时,也可以让教师的工作量得以减少,有更多的时间去备课教学。
本系统如果用在一些辅助教育类的网站上,那经济效果是很明显的;如果是用在学校的教学管理上,会得以发挥其潜在的经济效益,比如印刷试卷的费用等。
因此,本系统在经济上是可行的。
2.2.2技术可行性
技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。
硬件方面,硬件的更新速度之快,可靠性越来越高,目前一般的硬件平台均能满足次系统的需要。
软件方面,编程的软件以及Web服务器等均已具备,并且环境变量已经搭好,数据库用MySQL存储大量的数据,MySQL开源化,目前已经很成熟,在灵活、安全和易用方面均能提供良好的支持。
因此,系统的软件开发平台已经成熟可行。
2.3设计目标
在线考试系统的总体目标:
1.本系统提供给管理员类用户、教师类用户及学生类用户使用。
不同的用户类型所能完成的功能不同。
管理员类用户可以对于已经注册的考生及系统中已经存在的教师进行删除操作,对于未注册过的考生及系统中未存在的教师进行添加操作;教师类用户可以创建试题、删除试题、修改试题,也可进行试题维护、修改密码以及对成绩的统计;学生类用户主要是参与考试,完成试卷,查询成绩。
2.考试数据的存放和处理过程必须保密,需要一定的安全性保障若考生需要查卷,经审核方可以。
3.题目的选择具有稳定性、随机性。
稳定性就是每张试卷总体的难易程度要近似一样,保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。
4.适时的试题题库更新,试题题型包括判断题、选择题类型。
试题库的更新由管理员类用户完成。
学生类用户不允许对试题进行更新。
5.实现现代考试网络化。
2.4功能要求
系统具备的基本功能:
1.用户登录及注册-对用户进行识别、验证;没有注册的用户跳转到用户注册页面;
2.考试模块-考生选择自己想要参加的考试类别,并进行考试,考试完成以后可以获得当
考试成绩。
3.历史成绩模块-考生可以看到自己以前参加的考试成绩。
以对自己的进步状况进行一次把握。
4.试题维护模块-教师选择试题的类别,然后针对该试题分类中的所有试题进行维护,可以添加新题目,也可以对现在有的题目进行修改或者删除处理。
5.试卷设置模块-教师对题库中的题目按照一定分类标准存放,包括分类的添加、修改和删除操作等。
6.历史成绩管理模块-教师可以看到模式体分类的整体考试情况,考试成绩分布情况,可以判断出题库中的题目难以水平,并可以在以后的维护中做出适当调整。
7.考生管理-系统管理员可以对已经注册的考生进行删除操作,对于未注册的考生进行增加操作。
8.教师管理-系统管理员可以对系统已经存在的教师进行删除操作,对于未在系统中存在的教师进行增加操作。
9.修改密码模块-教师和考生可以在已经登录成功的页面点击修改密码,可以修改本人登录此考试系统的登录密码。
除了实现上述功能以外,在线考试系统还应该具有简洁、易用的界面,安全性要高,稳定性要强。
根据以上的需求分析,画出本系统的UseCase图,如图2.2所示:
图2.2在线考试系统的UseCase图
2.5系统开发环境配置
1.操作系统:
Windowsxp
2.内存:
4G
3.CPU:
2.00GHZ
4.Java平台:
JDK5.0
5.Web服务器:
Tomcat6.0
6.数据库服务器:
MySQL
7.开发平台:
MyEclipse6.0
第三章系统设计
3.1数据库设计
在对网上考试系统数据库部分进行设计的过程中,通过对系统功能进行需求分析得到系统的基本信息表,详细设计过程如下介绍。
3.1.1数据库需求分析
需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。
对于本系统而言,系统的角色分为管理员、教师、学生,这需要3个表,而考生考试,需要一个存放题库的表,考试的类别不同,也需要一个存放类别的表,考生考试完毕后,需要一个存放考试成绩的表。
综合以上分析,要实现上面的所有功能模块,数据库共要设计六个表,它们分别是:
试卷类别表、用户表、用户成绩表、教师表、管理员表、题库表。
3.1.2数据库表设计
用户信息表,用来存放考生信息,如表3-1所示:
表3-1用户信息表
字段名
类型
长度
是否为主键
可否为空
说明
user_id
int
11
是
否
用户的id
username
varchar
20
否
否
登录用户名
password
varchar
20
否
否
用户登录密码
realname
varchar
20
否
否
用户真实姓名
教师信息表,存放教师信息,如表3-2所示:
表3-2教师信息表
字段名
类型
长度
是否为主键
可否为空
说明
teacher_id
int
11
是
否
教师的id
teachername
varchar
20
否
否
教师登录名
password
varchar
20
否
否
教师登录密码
realname
varchar
20
否
否
教师真实姓名
管理员信息表,存放管理员信息,如表3-3所示:
表3-3管理员信息表
字段名
类型
长度
是否为主键
可否为空
说明
adusername
varchar
20
是
否
管理员登录名
password
varchar
20
否
否
管理员登录密码
realname
varchar
20
否
否
管理员真实姓名
题库信息表,存放考试题目以及答案等信息,如表3-4所示:
表3-4题库信息表
字段名
类型
长度
是否为主键
可否为空
说明
question_id
int
10
是
否
试题编号
category_id
int
10
否
否
试题分类编号
subject
varchar
300
否
否
题目
choice_a
varchar
100
否
否
选项A
choice_b
varchar
100
否
否
选项B
choice_c
varchar
100
否
否
选项C
choice_d
varchar
100
否
否
选项D
answer
char
10
否
否
正确答案
成绩表,存放考生考试时间以及成绩等信息,如表3-5所示
表3-5成绩表
字段名
类型
长度
是否为主键
可否为空
说明
record_id
int
10
是
否
考试记录编号
username
varchar
20
否
否
考试用户名
category_id
char
10
否
否
试题分类编号
test_time
char
14
否
否
考试时间
test_result
int
11
否
否
考试成绩
试卷类别表,存放试卷类别信息,包括试卷分类名称、试卷题目等,如表3-6所示
表3-6试卷类别表
字段名
类型
长度
是否为主键
可否为空
说明
category_id
int
11
是
否
试题分类编号
category_name
varchar
20
否
否
试题分类名称
question_number
int
10
否
否
试题数目
3.1.3数据库逻辑结构设计
1.关系图
本系统各表之间的关系如下图3-1示:
图3-1关系图
2.完整性设计
完整性要求用于描述各种信息之间的制约关系以及关联关系,各个数据项的取值范围以及各个数据项是否可以取值。
根据实际需要,采取一定的手段来满足用户的完整性需求。
域完整性约束要求属性值必须在域中。
实体完整性约束要求主键必须唯一且不能为空。
如用户信息表中的用户名设置为主键,并且要求唯一且不能为空。
3.2系统结构设计
网上考试系统是一个典型的数据库应用程序,主要有管理员、教师和学生三大模块组成,各模块功能如下:
管理员模块:
该模块包含2个功能,一个为考生管理,系统管理员可以对已经注册的考生进行删除操作,对于未注册的考生进行增加操作;另一个为教师管理,系统管理员可以对教师进行增加、删除操作。
教师模块:
该模块包含4个功能,分别为试卷设置、试题维护、历史成绩、修改密码。
教师成功登录该系统后,能够进行修改个人信息,添加、修改、删除试题、试卷类别操作,也可对考生的成绩进行统计。
学生模块:
该模块包含3个功能,分别为开始考试、历史成绩、修改密码。
学生成功登录该系统后,能够进行考试、查询成绩、修改密码。
系统功能结构如图3-2所示:
图3-2系统功能结构图
3.3用户界面设计
页面上部采用一个Logo图片和适当的标识,表明当前的系统名称。
接下来是帮助连接和退出系统的连接。
然后下部页面的主题分为左右两部分,左边是导航模块部分,其中放置迁移到不同功能模块的链接按钮,右边是页面的主要操作区域,不同页面的不同显示主要在此体现。
学生角色的模版页面如图3-3所示:
图3-3学生角色模版
每个模块都包含多个页面,再次挑选几个比较低型或者重要的页面进行详细描述。
其他的页面结构比较类似或者比较简单,不一一详述。
学生开始考试的时候,首先需要选择试卷类型,或者也可以叫做试题分类。
在此页面中采用下拉列表框的形式进行,如图3-4所示:
图3-4试题分类选择页面草图
选择试题分类以后,即是学生答题页面。
答题页面的主体应该是试题和试题的选项。
考虑到本系统需要在题目结束以后立即知道考试结果,所以决定采用所有试题的形式都是ABCD型的选择题,页面应该针对这些题目选项设置单选按钮。
在答题内容的上方,应该能够给考生信息,说明当前的题目是全部题目的第几道,以及总共有几道题,使得考生可以把握整个考试进度。
同时考虑到考生在时间允许的情况下,需要在题目间前后迁移,所以在题目的下方,还应该有前后翻页的按钮。
对应教师角色的模版略有不同,模块多了几个,而且页面顶端的标识也有所区别。
对应的模版页面如图3-5所示。
图3-11教师角色模版页面
图3-5管理员角色模版页面
第四章系统实现
本系统包括3个不同的角色,即
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JavaWeb 在线 考试 系统 设计 实现