基于Web的网络在线考试系统的设计与实现毕业设计.docx
《基于Web的网络在线考试系统的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Web的网络在线考试系统的设计与实现毕业设计.docx(101页珍藏版)》请在冰豆网上搜索。
基于Web的网络在线考试系统的设计与实现毕业设计
基于Web的网络在线考试系统的设计与实现毕业设计
基于Web的网络在线考试系统的设计与实现
1概述
1.1课题背景与意义
1.1.1课题开发背景
传统的考试从出题、组卷、印刷,到试卷分发、答题、收卷,再到判卷、公布成绩,整个过程都需要人工参与,周期长,工作量大,容易出错,还要有适当的保密工作,使得整个考试的成本较大。
所以,实现无纸化、网络化、自动化的计算机考试系统,具有深远的现实意义和实用价值。
网络考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程。
因此网络考试系统是电子化教学不可缺少的一个重要环节。
网络考试系统的实现技术有多种,可以采用传统的客户机/服务器型的MIS型架构,Web技术超越了传统的"客户机/服务器"两层结构,采用了三层体系结构:
用户界面层/事务层/数据库层,因此Web结构有着更好的安全性,在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,试题存放在数据库服务器上,当然,事务层和数据库可以是同一台机器(如果条件允许,还是应该把这两层分开在不同的计算机上),所以,本文所讨论的考试系统采用Web技术实现。
1.1.2课题开发意义
用Browser/Web模式来设计考试系统比较合适,服务器端我们采用SQLSERVER数据库系统和JSP组件来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程,同时可进行远程系统维护和管理。
利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,应用JAVAServerPage技术,开发了基于B/S模式多用户在线考试系统这一程序。
它运用方便、操作简单,效率很高(同时,它要求计算机配置也很高,尤其是服务器端).基于Web技术的网络考试系统可以借助于遍布全球的因特网进行,因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。
试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机判卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序等操作。
考生通过姓名、准考证号码和口令进行登录,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。
因此,采用网络考试方式将是以后考试发展的趋势。
2开发工具与环境
2.1课题开发工具与环境
2.1.1JAVA和JSP技术简介
a)将内容的生成和显示进行分离
用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息)。
生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。
由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
b)可重用组件
大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans)来执行应用程序所要求的复杂的处理。
开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。
基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
c)采用标识
Web页面开发人员不会都是熟悉脚本语言的编程人员。
JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。
标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
d)适应平台
几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。
从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。
e)数据库连接
Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。
Sun公司还开发了JDBC-ODBCbridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。
2.2SQLServer2000服务器
2.2.1SQLServer概述
SQLServer是美国Microsoft公司开发的一个关系型数据库管理系统,是目前世界上最著名的关系数据库管理系统之一。
它在性能和可扩展方面确立了世界领先的地位,是一套完全的数据库和数据分析解决方案,使用户可以快速创建下一代的可扩展电子商务和数据仓库解决方案。
MicrosoftSQLServer2000在数据库服务器自动调整和自动管理技术方面在数据库领域中处于领先地位,使客户可以集中精力处理商业战略上的问题,而不是去细微调整数据库服务器的各项参数。
2.2.2SQLServer的主要功能
a)数据库管理功能
作为数据库管理系统,SQLServer自然应该具有数据库管理功能。
它的数据库由包含数据的表集合和其他对象(如视图、索引、存储过程和触发器)组成,目的是为执行与数据有关的活动提供支持。
存储在数据库中的数据通常与特定的主题或过程相关。
b)数据仓库功能
SQLServer2000提供了一套全新的综合分析服务系统。
分析服务为商业活动提供了集成的OLAP服务和数据挖掘功能。
OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。
数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势。
SQLServer针对包括集成数据挖掘、OLAP服务、安全性服务及通过Internet对多维数据集进行访问和链接分析提供新的数据仓库功能。
c)电子商务
SQLServer不仅提供电子商务所需的可伸缩性与可扩展性之外,还提供了丰富的数据库编程能力,以确保系统的协同工作和灵活性。
SQLServer2000不仅支持集中化数据库管理功能,而且还最大程度地实现了管理与优化工作的自动化,从而,减轻了有关管理人员的负担。
d)完备的Web功能
SQLServer2000允许通过HTTP协议,在Web上进行高性能、基于标准的安全访问。
基于Web的客户端拥有访问关系型数据存储和访问分析服务的能力。
e)分布式数据复制功能
它可以将一个数据库中的数据复制到通过局域网、广域网或Internet网络连接的不同地点服务器或同一服务器中的不同数据库中,并能够自动保持这些数据同步,使各个数据库中具有相同的数据。
2.3Tomcat5.5.17.0服务器架构
Tomcat5.5.17.0由Apache组织开发的一种常用Web服务器,提供Web服务。
一种JSP引擎,本身具有Web功能,可以作为独立的Web服务器使用。
但是,在作为Web服务器方面,Tomcat处理静态HTML页面时不如Apache迅速,也没有Apache健壮,一般选用Tomcat与Apache结合的方式,让后者对网站的静态页面的请求提供服务,而Tomcat作为专用的JSP引擎,提供JSP解析,得以更好的性能。
2.3.1JDK的安装与配置
a)找到path变量后单击[编辑]按钮;弹出[编辑系统变量]对话框。
在[变量值]文本框中输入“c:
\jdk\bin”,然后单击[确定]按钮。
同时新建classpath变量。
b)在[系统变量]选项组中单击[新建]按钮,在[变量名]文本框中输入“classpath”,在[变量值]文本框中输入“c:
\jdk\lib\tools.jar;c:
\jdk\lib\dt.jar;”然后单击[确定]按钮。
c)用同样的方法把c:
\jdk添加到JAVA_HOME环境变量中。
2.3.2Tomcat的安装与配置
在这里我们设默认安装目录为c:
\Tomcat安装完毕,更改环境变量,用同样的方法把c:
\Tomcat添加到TOMCAT_HOME环境变量中。
启动Tomcat,在浏览器的[地址]下拉列表框中输入“http:
//localhost:
8080/”,如果看到的是在左上方有一只可爱的小猫,则表示Tomcat安装成功。
2.4总体开发
在线考试系统采用了三层的模式架构:
JSP-JavaBean-SqlServer2000开发,即前端由JSP网页实现表现逻辑,中间使用JavaBean的组件实现系统内部复杂的业务逻辑,后端使用SqlServer2000数据库实现数据逻辑。
系统采用的开发工具是:
Myeclipse,Dreamweaver2004网页编辑工具;采用的数据库是:
SQLServer2000;采用的服务器是:
ApacheTomcat5.5.17.0。
其中Java中连接数据库的技术是JDBC。
3系统分析
3.1需求分析
随着社会经济的发展,人们对教育越来越重视。
考试是教育中的一个重要环节,近几年来随着考试的类型不断增加以及考试要求不断提高,传统的考试方式要求教师打印考卷、监考、批卷、使教师的工作量与来越大,并且这些环节由于全部由人工完成,非常容易出错。
因此,许多学校或考试机构建立网络在线考试网站来降低管理成本和减少人力物力的投入,同时,为考生提供更全面、更灵活的服务。
考生希望对自己的学习情况进行客观、科学的评价;教务人员希望有效地改进现有的考试模式,提高考试效率。
为了满足考生和教务人员的要求,网络在线考试系统应包含在线考试、成绩查询等功能,以满足用户的需求。
3.2可行性研究
可行性分析的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。
通过分析解决方法的利弊,来判定系统目标和规模是否现实,系统完成后所能带来的效益是否达到值得去投资开发这个系统的程度。
网络在线考试系统的可行性可从以下几个方面考虑。
a)经济可行性
定期的组织考试是各个院校及时掌握学生学习成绩的有效方式,利用网络在线考试系统,一方面可以节省人力资源,降低考试成本;另一方面,在线考试系统能够快速的进行考试和评分,体现出考试的客观和公正性。
b)技术可行性
开发一个网络在线考试系统,涉及到最核心的技术问题就是如何实现在不刷新页面的情况下实时显示考试时间及剩余考试时间,并做到到达考试结束时间自动提交试卷的功能。
如果在Ajax技术出现以前,要实现这些功能会比较麻烦,但现在通过Ajax技术可以轻松实现这些功能,这为网络在线考试系统的开发提供了技术保障。
3.3系统目标
根据前面所做的需求分析和用户的需求可知,网络在线考试系统属于中小型的软件,在系统实施后,应达到以下目标:
a)具有空间性。
被授权的用户可以在异地登录网络在线考试系统,而无需到指定地点进行考试。
b)操作简单方便、界面简洁美观。
c)系统提供考试时间倒计时功能,使考生实时了解考试剩余时间。
d)随机抽取试题。
e)实现自动提交试卷的功能。
当考试时间到达规定时间时,如果考生还未提交试卷,系统将自动交卷,以保证考试严肃、公正地进行。
f)系统自动阅卷,保证成绩真实准确。
g)考生可以查询考试成绩。
3.4系统功能结构
根据网络在线考试系统的特点,可以将其分为前台和后台两个部分进行设计。
前台主要用于考生注册和登录系统、在线考试、查询成绩以及修改个人资料等;后台主要用于管理员对考生信息、课程信息、考题信息和考生成绩信息等进行管理。
网络在线考试系统的前台功能如图3-1所示:
图3-1网络在线考试系统的前台功能结构
网络在线考试系统的后台功能结构如图3-2所示:
图3-2网络在线考试系统的后台功能结构
3.5业务流程图
网络在线考试的系统流程如图3-3所示:
图3-3系统流程图
3.6开发环境
在开发网络在线考试系统时,需要具备下面的软件环境:
服务器端:
a)操作系统:
WindowsXP。
b)Web服务器:
Tomcat5.5。
c)Java开发包:
JDK1.5以上。
d)数据库:
SQLServer2000。
e)浏览器:
IE6.0。
f)分辨率:
最佳效果为1024*768像素。
客户端:
a)浏览器:
IE6.0。
b)分辨率:
最佳效果为1024*768像素。
4数据库设计
4.1数据库分析
由于网络在线考试系统对于数据的安全性及完整性要求比较高,并且为了增加程序的适用范围,还要保证系统可以拥有存储足够多数据的能力。
SQLServer2000是一种高性能的关系型数据库管理系统,它在SQLServer7.0的基础上又扩展了系统性能、可靠性、安全性和易用性,逐渐成为在线事务进程和数据仓库等最好的数据库平台。
综上所述,本系统采用SQLServer2000数据库。
4.2数据库概念设计
根据对系统所做的需求分析和系统设计,规划出本系统中使用的数据库实体分别为考生档案实体、管理员档案实体、课程档案实体、套题实体、考试题目实体和考生成绩实体。
a)考生档案实体
考生档案实体包括编号、姓名、密码、性别、注册时间、提示问题、问题答案、专业和身份证号属性。
考生档案实体的E-R图如图4-1所示:
图4-1考生档案实体E-R图
b)管理员档案实体
管理员档案实体包括编号、管理员名、管理员密码属性。
管理员档案实体的E-R图如图4-2所示:
图4-2管理员档案实体E-R图
c)课程档案实体
课程档案实体包括课程编号、课程名、添加时间属性。
课程档案实体的E-R图如图4-3所示:
图4-3课程档案实体E-R图
d)考试题目实体
考试题目实体包括编号、问题类型、所属课程、所属套题、选项A、选项B、选项C、选项D、添加时间、正确答案和备注等属性。
考试题目实体的E-R图如图4-4所示:
图4-4考试题目实体E-R图
e)套题实体
套题实体包括编号、套题名称、所属课程、和添加时间属性。
套题实体的E-R图如图4-5所示:
图4-5套题实体E-R图
f)考生成绩实体
考生成绩实体包括编号、准考证号、所属课程、单选题分数、多选题分数、合计分数、添加时间属性。
考生成绩实体的E-R图如图4-6所示:
图4-6考生成绩实体的E-R图
4.3数据库逻辑结构
a)tb_manager(管理员信息表)
管理员信息表用来保存管理员信息,该表的结构如表4-1所示:
表4-1tb_manager表的结构
字段名
数据类型
是否为空
是否主键
默认值
描述
id
bigint(8)
No
Yes
ID号
name
varchar(30)
No
Null
管理员名
pwd
varchar(30)
No
Null
管理员密码
b)tb_Student(考生信息表)
考生信息表用来保存考生信息,该表的结构如表4-2所示:
表4-2tb_Student表的结构
字段名
数据类型
是否为空
是否主键
默认值
描述
id
bigint(8)
No
Yes
ID号
name
varchar(20)
No
Null
姓名
pwd
varchar(20)
No
Null
密码
sex
varchar
(2)
No
Null
性别
joinTime
datetime(8)
No
getdate()
注册时间
question
varchar(50)
No
Null
提示问题
answer
varchar(50)
No
Null
问题答案
prefesion
varchar(30)
Yes
Null
专业
cardNo
varchar(18)
No
Null
身份证号
c)tb_stuResult(考生成绩信息表)
考生成绩信息表用来保存考生成绩,该表中的所属课程字段whichLesson与tb_Lesson表中的Name字段相关联,并且设置为级联更新。
考生成绩信息表的结构如表4-3所示:
表4-3tb_stuResult表的结构
字段名
数据类型
是否为空
是否主键
默认值
描述
id
bigint(8)
Yes
ID号
stuId
varchar(16)
准考证号
whichLesson
varchar(60)
所属课程
resSingle
int(4)
单选题分数
resMore
int(4)
多选题分数
resTotal
int(4)
允许为空
合计分数
joinTime
datetime(8)
getdate()
添加时间
d)tb_TaoTi(套题信息表)
套题信息表用来保存套题信息,该表中保存着所属套题ID,套题名称,套题所属课程以及套题的添加时间信息。
该表的结构如表4-4所示:
表4-4tb_TaoTi表的结构
字段名
数据类型
是否为空
是否主键
默认值
描述
id
bigint(8)
Yes
Yes
ID号
name
varchar(50)
套题名称
LessonId
bigint(8)
所属课程
joinTime
datetime(8)
getDate()
添加时间
e)tb_Lesson(课程信息表)
课程信息表用来保存课程信息,该表中保存着所属课程的ID,课程名以及课程的添加时间信息。
该表的结构如表4-5所示:
表4-5tb_Lesson表的结构
字段名
数据类型
是否为空
是否主键
默认值
描述
id
bigint(8)
No
Yes
ID号
name
varchar(60)
No
Null
课程名
joinTime
datetime(8)
No
Null
添加时间
f)tb_Questions(考试题目信息表)
考试题目信息表用来保存考试题目信息。
考试题目信息表的结构如表4-6所示:
表4-6tb_Questions表的结构
字段名
数据类型
是否为空
是否主键
默认值
描述
id
bigint(8)
Yes
ID号
subject
varchar(50)
问题
type
char(6)
类型
joinTime
datetime(6)
getdate()
添加时间
LessonId
int(4)
所属课程ID
taotiId
bigint(8)
所属套题ID
optionA
varchar(50)
选项A
optionB
varchar(50)
选项B
optionC
varchar(50)
选项C
optionD
varchar(50)
选项D
answer
varchar(50)
正确答案
note
varchar(50)
允许为空
备注
4.4数据表之间的关系设计
本系统设计了如图4-7所示的数据表之间的关系,该关系实际上也反映了系统中各个实体之间的关系。
图4-7数据表之间的关系图
5详细设计
5.1前台首页模块设计
5.1.1前台首页概述
考生通过“考生登录”模块的验证后,可以登录到网络在线考试的前台首页,如图5-1所示。
前台首页主要用于实现前台功能导航,在该页面中只包括在线考试、成绩查询、修改个人资料和退出4个导航链接。
图5-1前台首页的运行效果
5.1.2前台首页技术分析
由于本系统的前台首页主要用于进行系统导航,所以在实现时,采用了为图像设置热点的方法,这样可以增加页面的灵活度,使页面不至于太枯燥。
下面将对如何设置图像的热点进行详细介绍。
为图像设置热点,也可以称作图像映射,是指一幅图像可以建立多个超链接,即在图像上定义多个区域,每个区域链接到不同的地址,这样的区域称为热点。
图像映射有服务器端映射(Server-side-ImageMap)和客户端映射(Client-side-ImageMap)两种。
目前使用最多的是客户端映射,因为客户端映射使图像上对应的坐标以及超链接的URL地址都在浏览器读入,省去和服务器之间互传坐标和URL的时间。
在HTML文件中,使用标记
…
在标记中设置属性usemap,确定创建图像热点。
标记
表5-1标记
标记
描述
name
图像映射的名称
shape
定义图像热点的名称
coords
设定热点区域的图标
href
设定热点区域的超链接地址
alt
设定热点区域超链接描述文字
在标记
5.1.3前台首页的实现过程
a)在页面中插入要设置热点的图片,并设置其usemap属性,代码如下:
b)在标记中间插入设置热点区域的代码,具体代码如下:
action=stuResultQueryS&ID=${student}">
action=modifyQ