基于WEB的在线考试系统论文.docx
《基于WEB的在线考试系统论文.docx》由会员分享,可在线阅读,更多相关《基于WEB的在线考试系统论文.docx(64页珍藏版)》请在冰豆网上搜索。
![基于WEB的在线考试系统论文.docx](https://file1.bdocx.com/fileroot1/2023-2/11/119408ab-b955-443d-aa34-09adc911a6a3/119408ab-b955-443d-aa34-09adc911a6a31.gif)
基于WEB的在线考试系统论文
毕业论文(设计)
题目基于Web考试系统设计与实现
学生姓名袁成
学号2007*******
院系计算机与软件学院
专业网络工程
指导教师田伟
二O一一年五月二十日
声明
本人郑重声明:
1、持以“求实、创新”的科学精神从事研究工作。
2、本论文是我个人在导师指导下进行的研究工作和取得的研究成果。
3、本论文中除引文外,所有实验、数据和有关材料均是真实的。
4、本论文中除引文和致谢的内容外,没有抄袭其他人或其他机构已经发表或撰写过的研究成果。
5、其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意。
作者签名:
日期:
基于Web考试系统设计与实现
袁成
南京信息工程大学计算机与软件学院网络技术与工程系,南京210044
摘要:
本文在对现行考试现状分析的基础上,概括了在线考试系统的重大理论意义和现实意义。
介绍了基于Web考试系统的功能需求及其分析,完成了考试系统的数据库设计,最后对系统各个模块进行了设计和实现。
系统主要包括在线考试、学生成绩管理、考试试题管理、用户管理等功能,实现对学生基本信息和成绩的录入、修改、删除、查询,考试试题的显示,录入、修改、删除、查询,用户的添加、修改、删除等操作。
关键词:
web;struts;在线考试系统;题库;
1绪论
随着科技的发展,网络技术已经深入到人们的日常生活中[1]。
现在很多国内外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。
普及远程教育,尤其是网络教育,带来了教育方式的一次重大变革,而网络考试则是其中一个重要的方向。
本论文是结合一个基于Web考试系统设计与实现完成的,全文共分为6部分,记录总结了系统的开发过程。
第一部分是论文的概况,概述了考试系统的背景及本文研究的意义。
第二部分是系统设计的相关技术,讲述了系统开发过程中用到的技术与工具。
第三部分到第五部分是软件工程的内容,第三部分是需求分析。
第四部分数据库设计,第五部分详细设计以及实现。
第六部分是对本文已完成工作的总结以及不足之处的分析总结。
1.1课题开发背景
在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式。
传统的考试从出题、组卷、印刷,到试卷分发、答题、收卷,再到判卷、公布成绩,整个过程都需要人工参与,周期长,工作量大,容易出错,还要有适当的保密工作,使得整个考试的成本较大。
所以,实现无纸化、网络化、自动化的计算机考试系统,具有深远的现实意义和实用价值。
在线考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程。
因此在线考试系统是电子化教学不可缺少的一个重要环节。
在线考试系统分类有多种,以题库构成为标准可以把计算机考试系统分为三种:
(1)不以题库为基础的考试,试卷以单份为主,多用于心理测验和调查研究;
(2)题库由试卷库构成,试卷库指多份试卷随机抽取一份给学生考试;
(3)题库由试题库构成,试题库指海量试题,海量试题按照一定组卷方案组卷。
对在线考试系统的分类还有很多方法。
按题量是否按定长可分为定长和不定长的考试系统;按采用的测试理论可分为基于经典测试理论和基于项目反应理论的考试系统;按是否是自适应考试可分为传统的和自适应的考试系统,自适应组卷指依靠大型题库,自行适应被测试人员水平,灵活实施测试难度。
考试系统的实现技术也有多种,可以采用传统的客户机/服务器型的C/S模式,也可采用浏览器/服务器(Browser/Server)模式,然而Web技术超越了传统的“客户机/服务器”两层结构,采用了三层体系结构:
用户界面层/事务层/数据库层,因此Web结构有着更好的安全性,在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,试题存放在数据库服务器上,当然,事务层和数据库可以是同一台机器(如果条件允许,还是应该把这两层分开在不同的计算机上),所以,本文所讨论的考试系统采用Web技术实现。
1.2课题开发意义
用B/S模式来设计考试系统,它运用方便、操作简单,效率很高(同时,它要求计算机配置也很高,尤其是服务器端)。
基于Web技术的网络考试系统可以借助于遍布全球的因特网进行,因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。
试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机判卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、分析等操作。
学生通过学号和口令进行登录,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。
因此,在线考试方式的优点主要体现在以下几个方面:
(1)出卷方便快捷。
通过现成的题库系统,只要通过一定的约束条件,软件会自动生成符合要求的试卷,简便、快捷、公平;
(2)阅卷准确快速。
通过计算机阅卷,可以大大减轻教师阅卷的工作量,提高教师的工作效率,同时提高阅卷的准确性,而教师只需评判主观题;
(3)成绩分析统计科学直观。
成绩分析统计由计算机自动完成,可以方便地统计及格率、优秀率和各阶段分值的人数等。
在线考试方式的优越性较之传统方式,既灵活方便,又高效可靠,还能及时反馈教学情况,减少诸多中间环节,提高教学效率。
2系统设计相关技术
基于Web考试系统的开发运用到了许多相关技术,本系统采用Struts1.2+SQLServer2000+Tomcat进行开发。
本章主要对开发本考试系统的相关技术进行简单的阐述。
2.1Web技术
Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上[2]。
Web就是一种超文本信息系统,其中超文本连接是Web的一个主要的概念,它使得文本不再是固定的线性的。
你可以从中获取更多的信息。
可以转到别的主题上。
想要了解某一个主题的内容只要在这个主题上点一下,就可以跳转到包含这一主题的文档上。
正是这种多连接性我们才把它称为Web。
Web的特点如下:
(1)Web便于图形化,易于导航
Web之所以非常流行,其中一个很重要的原因就在于它可以在同一页上同时显示色彩丰富的图形和文本的性能。
Internet上的信息在Web之前只有文本形式。
有了Web之后Internet可以提供将图形、音频、视频信息集合于一体的特性。
同时,Web是非常易于导航的,可以实现从一个连接跳到另一个连接,这样就可以在各页各站点之间进行浏览了。
(2)Web与系统平台无关
无论你的系统平台是什么,你都可以通过Internet访问WWW。
因为每个系统平台对浏览WWW是没有什么限制的。
无论从UNIX平台、Windows平台还是别的什么平台我们都可以访问WWW。
对WWW的访问是通过一种叫做浏览器(browser)的软件实现的。
如Microsoft的Explorer、NCSA的Mosaic等。
(3)Web是分布式的
大量的图形、音频和视频信息会占用相当大的磁盘空间,我们甚至无法预知信息的多少。
对于Web没有必要把所有信息都放在一起,信息可以放在不同的站点上。
只需要在浏览器中指明这个站点就可以了。
使在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息是一体的。
(4)Web是动态的
最后,由于各Web站点的信息包含站点本身的信息,信息的提供者可以经常对站上的信息进行更新。
如某个协议的发展状况,公司的广告等等。
一般各信息站点都尽量保证信息的时间性。
所以Web站点上的信息是动态的,经常更新的。
这一点是由信息的提供者保证的。
2.2B/S模式以及优势
伴随着Internet的迅速发展,计算机技术正在由基于C/S(Client/Server客户端/服务器)模式的应用系统转变为基于B/S(Browser/Server浏览器/服务器)模式的应用系统。
过去,网络软件的开发都采用C/S(Client/Server)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然会引起以下问题:
安装,维护和升级困难。
由于客户端的硬件配置可能存在差异,软件环境也可能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。
在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。
由于以上C/S模式的客户端程序在部署和维护时面临的问题,人们逐渐接受了基于浏览器(Brower)/服务器(Server)结构的系统,即B/S模式。
在此模式中,最核心的一点就是用人们熟悉的浏览器取代了原来的客户端程序。
B/S模式虽然只对C/S模式做了少许变动,但带来了巨大的好处:
应用程序在部署,升级,维护时,只需要在服务器端进行配置就可以了;所有的配置工作都集中在服务器端,提高了系统的安全性,但此时服务器端对硬件和软件性能要求很高。
虽然B/S模式带来了很大的好处,但由于在客户端能够利用的编程对象仅仅是浏览器,因此,原来在C/S模式下很容易实现的一些客户端功能,在B/S模式下,却变得很难实现。
尽管如此,B/S模式仍是很多应用系统的首选。
2.3Struts技术
Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术实现的。
它是Apache软件基金会旗下Jakarta项目组的一部分[3]。
由于Struts的简单易用,敏捷迅速,能充分满足应用开发的需求,所以在Web开发中颇受关注。
Struts把Servlet、JSP、自定义标签和消息资源整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大地节省了时间。
2.3.1Struts框架的概念和体系结构
Struts体系结构实现了MVC设计模式的概念,它将Model、View和Controller分别映射到Web应用中的组件。
Model由代表系统状态和商业逻辑JavaBeans来构建,View是由JSP和struts提供的自定义标签来实现,Controller负责控制流程,由ActionServlet和ActionMapping来完成。
所以Struts主要包含如下四个部分:
(1)视图:
Struts的视图就是一组JSP文件。
在这些JSP文件中没有业务逻辑,也没有模型信息,这些标签可以是标准的JSP标签或客户化标签,如Struts标签库中的标签。
Struts自身包含了一组可扩展的自定义标签库,可以简化创建用户界面的过程。
(2)模型:
模型表示应用程序的状态和业务逻辑。
在Struts中,系统的状态主要由ActiomFormBean体现,对于业务逻辑通常由JavaBean或EJB组件来实现。
(3)控制器:
控制器接收客户端的请求,决定执行何种业务逻辑功能来响应请求,然后调用适当的视图将最终结果呈现给用户。
控制器由两个配置文件web.xml、struts-config.xml和两个类Aetionservlet类、Action类和来实现。
(4)配置文件struts-config.xml:
当ActionServlet接收HTTP请求信息时,如何决定把用户请求转发给哪个Action对象呢?
这就需要一些描述用户请求路径和Action映射关系的配置信息。
在Struts中,这些配置映射信息都存储在特定的XML文件Struts—config.xml中,在该配置文件中,每一个Action的映射信息都通过一个(action)元素来配置。
这些配置信息在系统启动时会被读入内存,供Struts在运行期间使用,在内存中,每一个(action)元素都对应一个ActionMapping类的实例。
2.3.2Struts框架的核心组件
Struts框架的核心组件包括ActionServlet、Action、ActionMapping、ActionForward、ActionForm等。
(1)ActionServlet
ActionServlet是Struts框架中最核心的组件,扮演的角色是控制器。
负责接收请求,封装数据,选择视图,读取配置文件。
可以同时响应多个用户请求。
在Web容器启动的时候,ActionServlet被初始化,加载struts-config.xml配置文件。
(2)Action
Action类是用户请求和业务逻辑之间的桥梁,其功能就是将请求与业务逻辑分开。
这样的分离,使得客户请求和Active类之间可以有多个点对点的映射,而且Active类通常还提供了其它的辅助功能,比如:
认证、日志、数据验证。
Action中最常用的方法是execute(struts1.0,execute对应的方法为perform)。
控制器收到客户的请求后将请求转发给一个Action实例,如果这个实例不存在,控制器器会首先创建一个,然后调用这个Action实例的execute方法。
(3)ActionMapping
ActionMapping帮助控制器将请求映射到操作。
用配置文件struts-config.xml告诉控制器将信息转发到与之相应的Action类去处理。
这些配置文件在系统启动的时候被读入内存,供Strutsframework在运行期间使用,当struts配置文件修改的时候需要重新启动Web容器。
每一个元素都与一个ActionMapping实例对应。
(4)ActionForm
ActionForm用于显示模块数据,为Action的操作提供与客户表单相映射的数据(如果在客户指定的情况下,还包括对数据的校验)。
ActionForm负责对系统数据状态的保持,而Action则负责根据业务逻辑的需要,对数据状态进行修改,在改变系统状态后,ActionForm则自动的回写新的数据状态并保持。
(5)ActionForward
ActionForward用于指示操作转移的对象,该对象代表控制器跳转的目的地,其转向的各种属性都可以在配置文件中设置,大大提高了组件复用、维护的性能,也是Struts框架的一个亮点。
2.3.3Struts1.x的工作流程图
Struts1.x工作流程图如图2-1所示。
图2-1Struts1.x工作流程图
2.4Web服务器Tomcat
随着交互式Web应用的出现,Sun公司提出了基于Java技术的动态Web技术:
JSP(JavaServerPage)技术和Servlet技术[3]。
为了解决传统的Web服务器对JSP和Servlet提高支持,随即出现了Tomcat。
Tomcat在众多支持JSP程序开发的应用服务器中,用户较受欢迎也较为流行的一种Web服务器。
由于该服务器拥有先进的技术和十分稳定的性能,而且其代码完全免费,深受使用Java编程用户的喜爱,在软件开发业界得到了一定的认可。
Tomcat服务器的代码是开源的。
在Tomcat中部署应用程序简单而且容易操作,首先,将导出已做好的系统放到安装Tomcat路径的webapps目录下;之后,启动的Tomcat服务器时会自动到该目录下检测此文件。
Tomcat服务器带有一个manager应用,如果用户要访问它,必须输入合法有效的用户名和密码(注:
一般为Tomcat系统安装时自己设定)。
如果要运行系统,首先,启动Tomcat,然后,在浏览器中输入Tomcat的导航页面,一般情况为http:
//localhost:
8080/进入到Tomcat页面,再进入到Manager页面中,点击相应系统的文件夹即可运行。
2.5数据库SQLServer2000
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的一个版本,通常直接简称为SQLServer。
SQLServer数据库管理系统是由多个应用组件构成,是现在较为流行的中大型数据库。
较先前开发的其它版本数据库相比,SQLServer2000有以下一些特性:
(1)支持Internet集成
SQLServer2000数据库引擎对XML提供完整的支持。
它还具有满足目前最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全性。
而且,SQLServer2000数据库管理系统中,SQLServer2000程序设计模型与WindowsDNA构架集成,用以支持Web应用程序的开发。
此外SQLServer2000还带有的强大的EnglishQuery组件和Microsoft搜索服务功能,使得用户在Web应用程序中使用此数据库管理系统时能体验其友好的查询功能和强大的搜索功能。
(2)强大的可伸缩性和可用性
SQLServer2000支持同一个数据库引擎可以在不同的系统或硬件平台上工作,系统平台如:
微软开发WindowsXP、Windows2000等;硬件平台如PC机、大型多处理器服务器等。
特别是SQLServer2000企业版,组件更全,功能更强大,支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。
(3)企业级数据库管理功能
SQLServer2000数据库管理系统中的关系数据库引擎,能够适应非常复杂的数据环境。
它的最大特点就是充分保护数据完整性,并且支持上千个多线程用户前提下保证开销最小。
SQLServer2000还支持数据库分布式查询,使您得以引用来自不同数据源的数据,就如同是自己数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。
特别是SQLServer2000中的复制功能,可以管理和维护多个数据复本,而且确保单独的数据复本保持同步。
(4)易于安装、部署和使用
SQLServer2000数据库管理系统中所包含的一系列管理和开发工具均可在很多站点上进行安装、统一部署、有效管理和使用。
3.需求分析
需求分析是软件开发人员在准确理解用户的要求,并进行细致地调查分析的基础上,将用户非形式的需求陈述转换为完整的需求定义,再由需求定义转换到相应的形式化功能规格说明的过程[4]。
这个阶段不是具体地解决问题,而是准确地确定为了解决这个问题,目标系统必须做什么,即是确定目标系统必须具备哪些功能。
需求分析是设计一个好的、能满足用户需求的系统软件的基础。
3.1考试系统的目标与任务
通过对现有的考试系统的优缺点分析,在详细了解日常运作以及实行网上考试系统的一些实际要求后,系统需满足一下要求:
(1)准确率
这是衡量系统性能的重要指标,在考试、计时、评判、计分等方面应确保准确无误,否则既影响考试的客观公正性,也会丧失使用者(特别是考生)对考试系统的信任。
(2)灵活性
便于老师组织考试,题库能随时更新,教师能够方便快捷的查看学生的考试成绩。
(3)可扩展性
指当问题规模变化时,系统能进行相应的扩展。
使用功能的可扩展性,即考试科学不仅是一科,而是可以扩展到若干科。
譬如,一个系统进行若干个学科的考试。
(4)易用性
系统的安装、配置、维护应该简单方便,具有良好的用户接口,且能够方便地进行系统移植。
所以使用基于Web即游览器形式的考试系统,方便用户。
(5)通用性
要求系统能尽可能兼容标准化考试,较为真实的贴近现实中的考试,尽可能使系统能运用于各个大学的考试中。
(6)安全性
系统本身有安全性能的要求,做好用户的登录认证功能,使得拥有相应角色的用户只能在其权限范围内操作。
3.2系统功能需求
在线考试系统是网络教学的一个重要组成部分,它可以提供一种学生对所学课程进行自我评价的手段,从而找出差距进行重点学习,也可以为老师提供一种评价学生对课程掌握程度的手段,为今后教学提供具有重要参考价值的各种数据。
一个完备的考试系统要能够充分利用网络优势,适合网络教学的考试模式和考试环境;有效管理和使用网络资源,更好地指导学生进行学习;形成一套完整的考试体系和质量评价体系。
应具备以下功能。
3.2.1用户登录
用户提供登录名和相应密码进行登录,经过验证后根据用户的不同权限跳转到主页面后将显示不同的功能模块。
登录后的用户信息一直保留到用户关闭当前浏览器即在session中的有效保存时间,或者通过安全退出链接进行退出。
系统的用户为特定的学生用户所以不采用注册方式,而是管理员输入方式。
3.2.2题库管理
教师用户对题库有权限的限制即教师只能对自己所教课程的题库进行管理,教师可根据自己的权对自己所教科目添加试题,教师也可以在自己权限内修改或删除试题。
试题类型要具有多样性(例如单选题,多选题,填空题,简答题)。
3.2.3成绩查询与统计
用户可以在自己的权限内查询相关人员的成绩信息,例如学生只能对自己的成绩查询,教师只能对自己所教专业的学生相应课程的成绩查询,而管理员则有最高权限可查询全部学生的信息。
此外,教师和管理员可以进行简单的成绩统计,例如及格率,优秀率等。
3.2.4在线考试
学生能够方便快捷的在线进行考试。
在线考试时能够现实考试的时间以及剩余时间以提示学生尽快答题。
此外,每位学生必须只能参加本专业相关课程的考试,还有参加完该门考试的同学不得重复考试。
3.2.5教师授课
系统应具有教师授课功能,即教师对某一班级教授某门课程。
3.2.6评分系统
考试系统能根据答案库中的(客观题)标准答案自动评出客观题分数,自动保存结果,得出考生的考试成绩。
由于主观题在答题时一般采用语言叙述的方式,而每个人对知识的理解程度不同,表达方式也不一致,即便学生的答案准确,也很难与标准答案完全一致。
所以考试系统对于主观题能采用教师在线阅卷方式即手动评分。
3.3系统功能需求分析
综合考虑系统的功能需求,将根据系统的用户及系统的参与者进行系统的功能需求分析。
3.3.1系统的参与者
通过系统功能需求分析,本系统采用三级管理模型进行设计。
最高级别是系统管理员,拥有整个考试系统的绝对权限,可以对教师信息、学生信息、课程、授课等进行管理,负责整个考试统的正常运行;第二级是教师用户,题库的维护、阅卷和成绩查询等权限;权限最低的一级是考生,只被允许参加考试、查询成绩和资料修改。
这样的一种系统结构满足了不同对象的功能需求,有效地提高了系统的安全性,也保证了在线考试系统的正常运行与管理分工明确。
3.3.2系统管理员
(1)管理员信息管理:
对管理员信息的管理,包括添加、删除、和修改功能。
(2)教师信息管理:
实现对教师信息的添加、删除、查看、修改功能。
(3)考生信息管理:
实现对考生的添加、删除、查看、修改功能。
(4)考生成绩管理:
查看所有考生的成绩以及所有班级某一课程的成绩统计。
(5)课程信息管理:
实现课程的添加、删除、修改等功能。
(6)专业信息管理:
对专业的管理,包括添加、删除和修改专业。
(7)教师授课管理:
添加、删除教师授课信息,哪位教师对什么专业教什么课程。
3.3.3教师
(1)试题添加:
为题库添加新试题;
(2)试题查询:
设置查询条件,查询题库中的试题;
(3)试题维护:
修改或删除题库中的试题;
(4)阅卷评分:
教师为待判试卷的主观题进行评分;
(5)成绩查询:
查看所教授的考生的成绩以及授课班级某一课程的成绩统计。
(6)个人资料修改。
3.3.4学生
(1)在线考试:
选择对应课程在题库中抽题进行考试。
(2)成绩查询:
查询考试成绩。
(3)修改个人资料:
修改自己个人可以修改的部分信息。
3.4可行性研究
可行性分析的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。
通过分析解决方法的利弊,来判定系统目标和规模是否现实,系统完成后所能带来的效益是否达到值得去投资这个