基于ASP的网上考试系统
摘 要
随着计算机技术的发展及计算机的日益普及,网络化考试已成为大势所趋。网络化考试也越来越成为各种考试的好帮手,在电子政务蓬勃发展的时候,职称考试等考试的网络化就显得尤其的重要了。
本文首先进行系统的需求分析,得出要建的各个系统模块。其次用Microsoft ODBC数据源管理支持下的数据库Microsoft Access建立系统运行所要的后台数据库。本考试系统具有自动出题、随机出题、自动阅卷计分、在线记时考试、用户帐户管理、批量添加考生、成绩存档等功能,它将有效的提高考试效率。在本系统的设计中,尽量做到了对其的设计达到较强的移植性,使得本系统具有一定的应用前景。
关键词:考试系统;数据库管理;在线考试
The On-Line Examination System Based On ASP
Abstract
Being long with the development of the computer technology, the development of the exam online system is so fast that it will become a good helper of the multiplicity exam. Especial in the quick development of the national's information construction, the exam-system will play a important role in the construction.
First of all, it is necessarily to analyze the requirement of this system in order to constitute the module needed. Secondly, we must to create the Database of the system which supported by the Microsoft ODBC Data source. So that this system have several important functions, such as set question automation, set question randomly, count Statistic the score automatically, online test by time keeping, the management of user account etc, it improves examination efficiency with high efficient. In the designing of this system, we try our best to make the program to achieve strongly transplantation to ensure it will have a certain application foreground.
Key words: Examination System; Management of Database; On-line Examination.
目 录
论文总页数:24页
1 引言
现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证!客观!更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来!
1.1 课题背景
试题库与在线考试系统采用ASP、HTML、Frontpage2000/98、Javascript、VBScript、Java编程语言、图形编辑与数据库等工具,通过基于WEB服务器访问纯WEB页面,实现在线组卷与考试等各项相关的功能。
它是专门用于试题(卷)录入、查询、修改、删除、组卷和参加在线考试的ASP应用程序。其最大的特点是开放性、方便性和灵活性。主要是指一般的用户不仅可以轻松地向题库添加、修改和查询试题(卷),而且还可以自动新增科目并建立相应的数据表;它还允许用户根据自己的需求,从现有的试题库中灵活地抽取各类试题,以组建适合于自身所需的试卷。而且,自测试卷的难易程度和形式以及各大题分数等都由用户根据需要确定。考生通过浏览器进行有效的身份验证登录后,输入正确的试卷编号,并要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提交。一旦考生做完后便能立即看到预先记录在库中的标准答案和自己的平时成绩(正规考试试卷不得随意更改以及答案将不及时提供),并且其答案和分数将被记入库中以供审核和查阅,并作为成绩评估和试卷分析的历史数据;另外,还可完全由计算机自动按照”难度系数”灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,不妨把它称之为实时的互动的试卷。
用户对象主要是大、中、小学及职业学校等单位的教师及学生和企事业单位的教育部门(因企事业单位每年要对员工进行素质、安全教育与技能等方面的培训及考试等)。
1.2 运行环境与系统结构
“基于ASP的网上考试系统”是基于ASP开发的一套网络考试系统,正常使用该软件您必须保证您的服务器满足如下要求:
1) 硬件环境:MS WINDOWS NT PACK 4 OR LATER /WIN2000 WITH IIS 4.0 OR LATER /WIN9X+PWS
2) 数 据 库:Access2000 ( 商业版可专门定制:MS sql server7.0/sql server2000 )
3) 其 他:服务器必须安装 微软IE浏览器5.0+
本系统在WindowsXP+ACCESS2000下调试通过
1.3 系统特点
系统联为一体,界面整齐、美观,操作简单、方便。另外,支持按权限对系统进行操作,即不同类型的用户拥有相异的权限对题库执行不同的操作。主要是在首页通过两种不同的方式进入相异的操作界面,以确保整个数据库中数据的安全性及完整性。其主要特点体现在以下三个方面:
(1) 自主设计数据库 (2) 自主调用数据库 (3) 自主管理数据库
自主设计数据库是指用户能够根据自己的需要创建新科目数据库(即系统实现了自动建表的功能),让数据库真正成为用户自己的数据库。不过,只要库中已存在该科目名称及表名,则不予重建,这样就保证了数据的统一性;自主调用数据库即允许用户能自由地从数据库中抽取试题组成试卷,试卷中有几道大题和小题以及是否提供查看答案均由用户自行设置并选题。通常来说,一份高质量的试卷,需要用户反复推敲、比较和琢磨,用户就象进超市买东西一样能方便地把看中的取出来,也可反悔把不需要的退回去,并且在形成一份完整的试卷之前,允许任意调整该试题的次序。在组卷时,还可以多份试卷选取同一试题或同一知识点的试题,但严禁一套试卷中出现知识点相同(似)且难度一致的试题。不过,其最大的缺陷在于目前只实现了试卷中的客观题部分,即包括判断、单选和多选题。而且,还没有实现客观题部分和真正的多媒体试卷;自主管理数据库指一般用户具有添加、修改和检索数据的权力,实现数据库的可扩充性和开放性。而管理员则另具有删除数据的权力,从而达到了系统数据统一性和一致性的目的。
2 需求分析
2.1 问题定义
现在网络正在改变着传统的教育方式,网络教育也越来越多,就算是传统的教育方式下,把考试搬到网络上也是一种趋势。考试的无纸化网络化不仅能有效减少老师的工作量,很好的利用计算机的优势,提高工作效率,也能使考试更加公平、公正。
本原型系统主要功能如下:
- 学生可以在网上进行考试,考试结束后由计算机批改试题给出分数,并记录成绩。
- 学生在还可以在网上查询自己的考试成绩,修改密码等个人资料。
- 老师可以在网上出题,修改密码等个人资料。
- 管理员可以在网上建立学生、老师等用户。
2.2 系统目标
本网络考试系统应该能满足学校几千学生在任何地方、任何时间都能参加考试。本系统要让学生、老师和管理员在网络上可以维护自己的个人资料。学生也可以在网络上通过本系统查询自己考试的成绩;老师能通过网络生成试卷;管理员在网络上通过本系统增加学生和老师;另外为了让考试比较公平,试卷的试题由计算机随机从题库抽取。
2.3 可行性分析
2.3.1 现有的数据库应用程序的分层结构
- 传统二层结构(C/S结构)
传统的二层式程序,也就是客户/服务器(Client/Server)结构,这种程序相对简单、清楚、开发容易,其结构如图2-1。客户机都通过网络连接到同一个数据库上,不过这样结构问题很多,最主要的就是性能较差维护困难已经不适应在因特网(Internet)上使用。数据同一性和完整性难以控制。同时由于每一个客户机都必须安装特定的软件,且这种客户端软件体积还比较大,用户使用起来非常不方便,所以目前已经面临淘汰。不过这样的系统开发比较简单,对开发人员的技术要求也不高,在内部局域网上使用还有一定的市场。
图2-1 二层数据结构
- 三层数据库应用结构(B/S结构)
三层结构是目前用得最多的,这种结构比传统的C/S结构增加了一个应用程序服务器,应用程序服务器包括了统一的界面、业务规则和数据处理逻辑等等,这样客户端程序就可以做得比较小,也就是常说的瘦客户,更由于业务规则和数据处理逻辑的集中在服务器上统一管理,客户端无须进行复杂的计算,也不会因为错误的操作而影响到其他的用户,所以他的可靠性、稳定性和效率都比较好。当然开发这样的系统在技术上和成本上要求就要多一些。(其结构如图2-2)
图2-2 三层数据结构
- 多层分布式数据库系统
近年来随着因特网的快速发展,许多企业都开始上网,因此基于网络的营销系统、MIS系统、ERP系统都快速发展起来了,这个时候仅仅三层的应用程序已经不能满足实际需求了。因此又发展出来了多层分布式的数据库系统。在多层分布式系统中,人们把中间的应用服务器再拆分为很多比较小的系统,均匀分散到多台计算机中处理,这样就能得到更好的性能并且降低了程序复杂度。在多层分布式数据库系统中必须要有一个所谓的中间件来支持和管理分散的业务处理程序。
在Windows平台下微软公司推出了的Windows DNA(Distributed interNet Application Architecture,分布式网络应用结构)策略。把COM+作为Windows DNA策略中的中间件。在Windows2000以上操作系统中,COM+成为了系统的一部分。COM+为中间层提供了负载平衡、对象池(Object Pooling)、事务特性等一系列的强力支持,并且在COM+中工作的程序受到操作系统的保护,从而最大的保证了系统的安全、稳定和高效。当然开发这样的系统要求开发人员必须掌握COM(Component Object Model,组件对象模型)和COM+技术,开发难度和成本更大了。
图2-3 多层数据结构
2.3.2 网络分布式多层应用系统
近几年来因特网飞速发展,人们的生活因为网络而在慢慢的改变。现在的个人电脑(PC)上都安装了浏览器(Browser)因此人们就利用浏览器来作为客户端程序,万维网服务器(Web Server)作为中间层和客户端沟通服务器,这就是现在流行的B/S(Browser/Server)结构方式。在这种结构下,本地的计算机无须安装任何客户端程序,只要有浏览器,可以使用因特网就可以使用系统了。他不仅仅减少了开发客户端带来的成本,最关键的是,大大减少了系统维护的成本和时间,当修改系统的时候不需要对客户做任何的改动。并且客户也可以在任何计算机上使用你的系统而不要做特别的设置。
在B/S系统中以微软公司的IE浏览器、和IIS/ASP(Internet Information Server/Active Server Pages)服务器应用最为广泛,使用最方便,对中文的支持也是最好的。
但是,ASP有一个天生的缺点,就是ASP代码是采用的VBScript、JScript或者PHP等脚本语言编写,运行速度相当的慢,而且和HTML代码是混在一起的,使ASP程序员既需要考虑与数据库打交道,又需要关心如何与HTML配合,有时还需要用ASP直接生成HTML代码。这样构建起来的系统当然是不能满足中、大型网络应用的需要。
不过好在ASP可以通过脚本语言调用基于COM的程序,而得到功能和性能上的提升。在微软公司最新的IIS5.0系统上更可以让我们使用VC++、VB、Delphi等开发工具建立定制的运行于COM+环境中的ASP对象,这种对象,还可以和其他的COM+组件协同工作。这样一来我们就可以用B/S方式构建多层分布式的应用系统来满足大型网络应用。
这也就是微软公司所推出的Web分布式多层应用程序结构(其结构如图2-4)也就是我们常听到的Windows DNA策略(Windows Distributed internet Application Architecture,视窗系统分布式网络应用结构)。不过开发这样的系统需要开发人员掌握更多的技术,如:ASP、VBScript、JavaScript、HTML/DHTML、ADO、COM/DCOM、MTS/COM+等等,同时学习这么多的技术这对程序员来说是一个不小的挑战!
图2-4 Web分布式多层应用程序结构
2.3 本系统的方案选择
本系统应用于因特网,并且要满足一个学校几千学生考试的需要,因此本系统采用微软公司所推出的Web分布式多层应用程序结构才是较好的方案。但是由于能力有限,我们采用B/S结构来设计本系统
B/S结构以访问WEB数据库为中心,HTTP为传输协议,客户端通过浏览器(Brower)访问WEB服务器和与其相连的后台数据库。第一层是客户端,即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。在客户端向指定的Web服务器提出服务器请求,Web服务器用HTTP协议把所需的文件资料传给用户,客户端接受并显示在WWW浏览器上;第二层Web服务器是功能层,完成客户的应用功能,即Web服务器接受客户请求,并与后台数据库连接,进行申请处理,然后将处理结果返回Web服务器,再传至客户端;第三层数据库服务器是数据层,数据库服务器应客户要求独立地进行各种处理。与传统的C/S结构相比,B/S结构把处理功能全部移植到了服务器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统结构更经济方便。而且是维护任务层次化:管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。采用B/S结构,突破传统的文件共享模式,为网络考试系统的设计提供新的解决方案。借助ASP的WEB应用程序,用户通过Brower软件连接后台数据库并完成操作,使系统的更新数据方式为动态。
2.4 工具的选择
在设计过程我们所采用的工具为Dreamweaver MX 2004,利用这个软件进行代码和界面的设计;此外,还运用Microsoft Access进行数据库的设计与连接。
1 系统设计
1.1 系统各模块功能分析
网络考试系统的构成
1)考试考试子系统
考试子系统是网络考试系统的核心部分,它的工作流程如图3-1所示,由于采用Web技术实现,所以从理论上讲,考试可以在任何时候、任何地方进行,但是为了使考场易于组织和管理,所以本系统对考试时间作了严格的限制,因此在进入网站时首先判断当前时间是否为申请试卷时制定的考试时间,由于判断的时间是服务器端的时间,所以跟考试机器的时间无关,即使考生修改所在机器的时间,也无济于事。为了方便将学生集中起来考试有利于监考,也可以通过锁定考试中心IP地址的方式限制学生的使用的电脑。考生在这个页面输入自己的信息,如考场编号,准考证号码、密码等等,单击“登陆”后进入信息处理程序(在服务器端执行),试卷页面上的试题内容根据与现有考试中心管理员申请好的。同时在页面上动态地显示考试状态,考试开始的时间、结束的时间和剩余时间,考生在开始考试前可以浏览考试介绍,考场规则等,在正式考试前考生可以通过测试试卷(也可以直接跳过)来熟悉考试过程和考试题型,当提交测试卷后系统会根据考生的测试卷分数自动在后台随即为考生生成一份正式卷,当考试时间到或考生点击“提交试卷”按钮时,系统会自动将试卷提交,后台自动进行阅卷。
图3-1 三层数据结构
1、考生登陆:这里会首先验证考场的状态(开/关),考生的IP地址,考生登陆的时间和申请试卷(由考试中心管理员负责)时指定的考试时间是否相同,然后再验证考生的准考证编号和登陆密码。
2、考试介绍
3、考场规则
4、开始考试:正式开考前可以通过测试卷熟悉考试题型了解考试的大体方式方法(也可直接跳过),在测试或正式考试当中可以为试题加标记,以便于检查。
5、答案预览:通过预览答案,检查自己的选择答案,可以发现自己加了标记的题号,单击题号回到原题
6、提交试卷:在不同状态下提交不同的试卷(系统自动判断并自动在后台完成阅卷和自动组卷)。
7、关闭系统
2)考试中心(考场或班级)管理子系统
1、考试中心管理员登陆:
2、考生信息注册:对考生的不同信息作了不同的限制,身份证编号是考生的唯一标识,不允许重复,可以一次为考生一次申请任意多个科目的试卷,(一个科目一个考生只能申请一份试卷,第二次申请其他科目的试卷是必须提供相同的姓名和准考证编号),注意这里为考生指定考试日期。
3、考生信息查询:查询已申请了试卷的考生,可以修改考生的注册信息,打印准考证,删除考生(试卷会自动删除)。
4、试卷申请查询:查询考生申请试卷的详细情况,可以修改考生的考试日期。
5、历史信息查询:查询考生的考试成绩。
6、修改密码:修改管理员密码。
7、关闭系统
3)管理中心(管理考试中心或年级)系统流程
1、管理中心管理员登陆
2、试卷申请查询:查看该管理中心所属所有考试中心的试卷申请情况(可以查看某月份的试卷申请)
3、历史信息查询:查看该管理中心所属所有考试中心的考生考试情况(可以查看某月份的考生情况)
4、结算单查询:查看该管理中心所属所有考试中心的结算情况(可以查看某月份的)
4)考试服务+管理中心系统流程
1、管理员登陆
2、开关考试系统:用来限定考生登陆和考试中心管理员登陆
3、考试科目设置:可以添加任意科目,修改,删除并且可以指定相应的项目
4、试卷题型设置:当前仅限于单选题、多选题和判断题。可以修改相应的项目
5、管理中心管理:添加修改管理中心
6、考试中心管理:添加修改考试管理中心(隶属于某个管理中心)
7、考试题库维护:添加修改试题
8、审核提交试卷:审核试卷是否交费
9、其他项目维护:维护考试介绍,考场规则等
10、试管理中心的考生考试情况,可以删除修改某份试卷
11、历史信息查询:查询所有管理中心的试卷结算情况。
12、结算单查询:卷申请查询:查询所有管理中心的试卷申请情况,可以删除某份试卷
5)后台功能系统(整个考试系统的核心所在)
1、随机组卷:随即组题生成测试卷,再根据自动阅卷测试卷的分数自动生成正式卷,各个题型在测试卷和正式卷中的数量由考试服务中心管理员指定(在数据库中)。
2、自动阅卷:考生提交试卷(系统也会根据考试时间)系统自动进行。
1.2 数据流程图
本考试系统采用三层数据流程图(DFD)。顶层DFD对管理员和考生进行验证。二层DFD分别为管理员模块和考生用户模块。三层DFD分别是:用户管理子模块,考试管理子模块,成绩管理子模块,数据库管理子模块。接下来我们对各个模块的数据流程进行详细的叙述。
顶层DFD(如图3-2所示):
图3-2 顶层DFD图
从这副图可以很清楚的了解,考试管理模块是作为数据流程中最顶层模块的。作为数据的第一个流动模块,其主要功能是对管理员的身份以及考生的身份进行验证。如果验证成功,那么将进入系统的下一个层次的DFD数据流动。
二层DFD:
二层DFD包括了管理员用户子模块和考生用户子模块:
- 考生用户子模块以及其二层DFD图(如图3-3所示)
图3-3 二层DFD图 — 考生用户子模块
从图中可以发现,关于考生身份验证的有效性是一个核心的环节,其他的下层子模块都要基于身份验证的有效性之上。考生的信息通过验证后,可以进入用户管理子模块进行用户信息有关的工作;作为考试系统的核心部分 — 考试处理子模块也是基于考生身份有效性验证的基础上的。此外,对考生用户数据子模块而言,信息的查询等功能也将是此模块的重要组成部分。
- 管理员用户子模块以及其二层DFD图(如图3-4所示)
图3-4 二层DFD图 — 管理员用户子模块
管理员用户子模块数据流动的流程与考生用户子模块的流程具有一定的相似性,其主要区别在于用户身份的不同而导致的数据权限不同以及不同的功能模块。管理员用户管理模块可以通过对后台数据库的前台操作来进行管理,考试设置子模块将考试元素以数据访问的形式进行操作,而阅卷子模块是基于管理员用户有效性验证通过的基础上进行,其本身是考试系统的一个重要有机组成部分。
三层DFD:
在这一层表现的子模块有:帐户管理子模块,考试模块,成绩模块以及试题模块。这些底层模块是系统数据流动的终端。系统各个功能实现的具体体现都将在上述模块中表现出来。
1)帐户管理子模块(如图3-5所示)
图3-5 三层DFD图 — 帐户管理子模块
2)考试子模块(如图3-6所示)
图3-6 三层DFD图 — 考试子模块
3)成绩处理模块(如图3-7所示)
图3-7 三层DFD图 — 成绩处理模块
4)试题模块(如图3-8所示)
图3-8 三层DFD图 — 试题模块
作为第三层的DFD图是试题关于试题模块的数据流程关系,在图中我们可以清楚的了解到试卷部分为核心部分。作为考试系统,考试设置子模块将考试元素以数据访问的形式进行操作,阅卷子模块是基于管理员用户有效性验证通过的基础上进行,其本身是考试系统的一个重要有机组成部分。
1.3 数据库中的主要表结构及数据
表3-1 管理员表
字段名 |
数据类型 |
字段大小 |
是否允许为空 |
字段描述 |
Admin_name |
文本 |
50 |
否 |
管理员名(主键) |
Admin_pass |
文本 |
50 |
否 |
管理员密码 |
字段名 |
数据类型 |
字段大小 |
是否允许为空 |
字段描述 |
Stu_id |
文本 |
50 |
否 |
学号(主键) |
Stu_name |
文本 |
50 |
否 |
学生姓名 |
Stu_pass |
文本 |
50 |
否 |
学生密码 |
表3-3 试卷信息表
字段名 |
数据类型 |
字段大小 |
是否允许为空 |
字段描述 |
Coure_name |
文本 |
50 |
否 |
课程名称 |
Create_time |
文本 |
50 |
否 |
创建时间 |
Test_time |
文本 |
50 |
否 |
考试时间 |
Class_name |
文本 |
50 |
否 |
班级名称 |
IP_address |
文本 |
50 |
否 |
IP地址 |
表3-4 成绩表
字段名 |
数据类型 |
字段大小 |
是否为空 |
字段描述 |
StudentID |
文本 |
50 |
否 |
学生学号(主键) |
Stu_name |
文本 |
50 |
否 |
学生姓名 |
Course_name |
文本 |
50 |
否 |
课程名称 |
Test_time |
文本 |
50 |
否 |
考试时间 |
Stu_score |
文本 |
50 |
否 |
学生成绩 |
2 设计实现
2.1 主要界面
图4-1 考生考试登录界面
图4-2 考试试卷界面
图4-3 管理员登录界面
图4-4 管理员用户管理界面
操作:在“系统管理“界面点击“高级”按纽就可进入高级查询界面。
图4-5 查询界面