远程教育在线考试系统毕业论文.docx
《远程教育在线考试系统毕业论文.docx》由会员分享,可在线阅读,更多相关《远程教育在线考试系统毕业论文.docx(42页珍藏版)》请在冰豆网上搜索。
远程教育在线考试系统毕业论文
摘要
该系统是专门用于用户注册、登录、参加在线考试,以及管理员进行试题录入、修改、删除、成绩查询、管理用户的ASP应用程序。
它具有开放性、方便性和灵活性,采用B/S模式设计。
试卷全部为客观题,具有用户注册、多用户同时在线考试、动态随机出题、时间控制、自动判卷,试题录入、修改题库、用户管理、科目管理、管理员管理、分数管理等重要功能。
管理员不仅可以轻松地向题库添加、修改和查询试题,而且还可以自动新增科目并建立相应的数据;它还允许用户根据自己的需求,选取考试科目。
考生进行有效的身份验证登录后,选择考试科目,并要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提示。
一旦考生做完交卷后便能立即看到自己的考试成绩,并且其分数将被记入库中以供审核和查阅;另外,还可完全由计算机自动灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,而且,不同的考生生成的试题是不同的。
用户可以是学校等单位的教师及学生和企事业单位的培训部门(因企事业单位每年要对员工进行素质、安全教育与技能等方面的培训及考试等)。
ABSTRACT
ThissystemisanASPapplicationusedexclusivelyfortheusersregister,loggingin,attendingtheon-lineexamination,andforthemanagerproceedingtorecordtestquestions,modify,delete,scoresearch,manageusers.ItisdesignedbyB/Smodelandhasthecharacteristicsofopening,convenienceandflexibility.Testpaperisallforobjective.Thissystemhastheimportantfunctionsoftheusersregister,themultiuserson-lineatthesametimetoexamine,thedynamicandrandommakingoutquestions,timecontrol,judgingautomaticallypaper,testquestionsrecording,modifyingquestionstoreroom,usermanagement,subjectmanagement,categorymanagement,administratormanagement,etc.
Administratorcannotonlyeasilyappend,modifyandinquirequestionsinstoreroom,butalsoaddautomaticallythenewsubjectandestablishhomologousdata;Italsoallowstheuserstoselectexaminationcategoryaccordingtotheirownneeds.Afterproceedingvalidverificationregistering,theexamineechoicesexaminationcategoryandstarttestinprescriptivetime.Whenattainingprescriptivetime,thesystemwillgivetoahintautomatically.Oncetheexamineehandsinhispapertheexaminationscorewillbeshownimmediately,andhisscorewillberecordedintostoreroomforcheckingandinquery;Moreover,thetestpapercanbemadeofvariousquestionswhicharesingledoutfromstoreroombythecomputervividlyandrandom.Itscontentswouldchangealongwiththechangesesofquestionsinstoreroom.Otherwise,eachtestpaperismadeoutfordiffentexaminee.Userscanbeteachersandstudentsinshchool,andalsobetrainingsectioninenterprise(Theemplyeesinenterpriseneedtobetestedandtrainedfordiathesis,safetyeducationandworkingskillseachyear).
目录
前言5
第一章系统设计相关原理7
1.1ASP技术介绍7
1.2SQL语句介绍11
1.3VBScript介绍15
第二章需求分析18
2.1系统需要解决的主要问题18
2.2系统应该具备的基本功能18
第三章系统总体设计20
3.1基本简介20
3.2运行环境与系统结构20
3.3详细设计21
3.3.1试题设计21
3.3.2数据库中表的设计22
3.3.3用户、管理员权限25
3.3.4功能模块详细设计25
3.3.5在线考试系统考试模块框图27
第四章系统实现28
4.1系统流程图设计28
4.2各文件功能介绍及详解30
4.3调试过程中遇到的主要问题和解决办法37
4.4系统测试及实现后主要界面38
参考文献47
结束语48
前言
随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。
现在,计算机硬件技术的发展已经达到了相当高的水平。
但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。
远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。
其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。
在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。
例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。
在线考试是现阶段研究开发的一个热点。
它是建立在国际互联网上的应用系统,客户端的配置可以极为简单,使考试不受地域的局限。
一个完备的在线考试系统可以使用户在网上学习过后及时检验自己的学习效果,已发现自己的不足,使得学习效率得到很大提高。
在线考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在网络上自动完成。
只要形成一套成熟的题库就可以实现考试的自动化。
这样一来,教师所要做的只是精心设计题目、维护题库,而不是组织考试,从而大大减轻了教师的负担,这表明其经济性是相当可观的。
为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来!
目前,网络应用软件运行的模式主要有二类:
Client/server模式,Browser/Web模式。
前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展起来的一种技术,它与客户/服务器方式类似,客户端是一个标准的浏览器,服务器端是WebServer,而WebServer与数据库和应用服务器的紧密结合,使得这种模式的应用范围不断扩大,它已不仅仅用于网上查询,有很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。
另外,考试系统的软件也必将不断的更新;同时软件产品本身就要经过一个不断自我完善的过程。
基于上述考虑,用Browser/Web模式来设计考试系统比较合适,服务器端我们采用Access数据库系统和ASP组件来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程,同时可进行远程系统维护和管理。
利用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,应用ActiveServerPage技术,我开发了基于B/S模式多用户在线考试系统这一程序。
它运用方便、操作简单,效率很高(同时,它要求计算机配置也很高,尤其是服务器端)。
现阶段虽只实现了试卷的客观题部分,但已具有用户注册、多用户同时在线考试、动态随机出题、时间控制、自动判卷,试题录入、修改题库、用户管理、科目管理、管理员管理、分数管理等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,同时也大大减轻了教师出题、出题和判卷等繁重的工作量。
第一章系统设计相关原理
该在线考试系统主要采用ASP、HTML、Access数据库、VBScript、SQL等技术和工具,整体设计遵循软件工程的方法,经过需求分析、总体设计、文档和代码的编制、模块测试和系统实现几个阶段。
下面就对这几种技术和方法做一个概述。
1.1ASP技术介绍
MicrosoftActiveServerPages即我们所称的ASP,其实是一套微软开发的服务器端脚本环境。
ActiveServerPage是创建动态网页的一个很好的工具,它起一种编程语言的作用,可以利用它编写动态产生HTML的程序代码。
因此,只要用户浏览Web站点并请求一个ASP页,Web服务器就可以处理相应的ASP代码,生成HTML代码,然后将它传递到用户浏览器并显示出网页。
ASP内含于IIS3.0和4.0之中,通过ASP我们可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。
有了ASP就不必担心客户的浏览器是否能运行所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。
当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
以下罗列了ASP所独具的一些特点:
1.使用VBScript、JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。
2.无须编译,容易编写,可在服务器端直接执行。
3.使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。
4.与浏览器无关,用户端只要使用可执行HTML码的浏览器,即可浏览ASP所设计的网页内容。
ASP所使用的脚本语言(VBScript、Jscript)均在WEB服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。
5.ASP能与任何ActiveXscripting语言相容。
除了可使用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如REXX、Perl、Tcl等。
脚本引擎是处理脚本程序的COM(ComponentObjectModel)物件。
6.ASP的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
7.可使用服务器端的脚本来产生客户端的脚本。
8.物件导向(Object-oriented)。
9.ActiveXServerComponents(ActiveX服务器元件)具有无限可扩充性。
可以使用VisualBasic、Java、VisualC++、COBOL等编程语言来编写你所需要的ActiveXServerComponent。
10.另外,ASP技术的处理速度相当快,并且其安全性也很高。
ASP最重要的优点是能够建立对诸如时间、地点、用户标志、以前的选择和活动等因素敏感的页面。
换句话说,可针对每个用户的个别需求,用ASP定制网页,能够满足用户的各种需求。
总之,ASP包含三方面含义:
1.Active:
ASP使用了微软的ActiveX技术。
ActiveX(COM)技术是现在Microsoft软件的重要基础。
它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。
ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。
只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。
2.Server:
ASP运行在服务器端。
这样就不必担心浏览器是否支持ASP所使用的编程语言。
ASP的编程语言可以是VBSCRIPT和JSCRIPT。
VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。
然而Netscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。
而在服务器端,则无需考虑浏览器的支持问题。
Netscape浏览器也可以正常显示ASP页面。
3.Pages:
ASP返回标准的HTML页面,可以正常地在常用的浏览器中显示。
浏览者查看页面源文件时,看到的是ASP生成的HTML代码,而不是ASP程序代码。
这样就可以防止别人抄袭程序。
由此可以看出,ASP是在IIS下开发WEB应用的一种简单、方便的编程工具。
在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。
运行ASP所需的环境如下:
☆MicrosoftInternetInformationServerversion3.0/4.0onWindowsNTServer
☆MicrosoftPeerWebServicesVersion3.0onWindowsNTWorkstation
☆MicrosoftPersonalWebServeronWindows95/98
与一般的程序不同,ASP程序无须编译。
ASP程序的控制部份,是使用VBScript、JScript等脚本语言来设计的,当执行ASP程序时,脚本程序将一整套命令发送给脚本解释器(即脚本引擎),由脚本解释器进行翻译并将其转换成服务器所能执行的命令。
当然,同其他编程语言一样,ASP程序的编写也遵循一定的规则,如果你想使用你所喜爱的脚本语言编写ASP程序,那么你的服务器上必须要有能解释这种脚本语言的脚本解释器。
当你安装ASP时,系统提供了两种脚本语言:
VBSrcipt和JScript,而VBScript则被作为系统默认的脚本语言。
ASP程序其实是以扩展名为.asp的纯文本形式存在于WEB服务器上的,可以用任何文本编辑器打开它,ASP程序中可以包含纯文本、HTML标记以及脚本命令。
只需将.asp程序放在Web服务器的虚拟目录下(该目录必须要有可执行权限),就可以通过WWW的方式访问ASP程序了。
要学好ASP程序的设计,必须掌握脚本的编写,那么究竟什么是脚本呢?
其实脚本是由一系列的脚本命令所组成的,如同一般的程序,脚本可以将一个值赋给一个变量,可以命令Web服务器发送一个值到客户浏览器,还可以将一系列命令定义成一个过程。
要编写脚本,你必须要熟悉至少一门脚本语言,如VBScript。
脚本语言是一种介于HTML和诸如JAVA、VisualBasic、C++等编程语言之间的一种特殊的语言,尽管它更接近后者,但它却不具有编程语言复杂、严谨的语法和规则。
如前所述ASP所提供的脚本运行环境可支持多种脚本语言,譬如:
JScript、REXX、PERL等等,这无疑给ASP程序设计者提供了广泛的发挥余地。
ASP的出现使得广大Web设计者不必在为客户浏览器是否支持而担心,实际上就算在同一个.asp文件中使用不同的脚本语言,都无须为此担忧,因为所有的一切都将在服务器端进行,客户浏览器得到的只是一个程序执行的结果,而你也只需在文件中声明使用不同的脚本语言即可。
ASP的对象和组件:
1.ASP有7个固有对象
这7个固有对象分别是Request、Response、Server、Application、Session、ASPError和ObjectContext。
Request对象用来处理用户做出的请求,就是处理用户要求浏览器查看特定的网页或Web应用时做出的请求。
此请求可以HTML的形式输入或仅以URL的形式作出。
Response对象用来处理从Web服务器向用户发送信息并对此信息进行控制。
Serve对象用来代表服务器自身。
因此它提供几个与Web服务器可能要完成的任务相关的常用功能,诸如建立新对象和设置脚本的超时特性等。
还有通过将不合法字符转化为合法字符,把字符串转换为URL和HTML正确的使用格式的方法。
Application对象用来代表应用,可用它来管理诸如应用目录这一类的东西。
Session对象用来代表用户会话,并存储该会话的信息。
可利用Session对象来管理如Web服务器在用户“请求”之间等待的时间等。
ObjectContext对象用来管理事务处理。
它目前已经集成到Windows2000操作系统中了。
它包含了所有ASP其他对象,可通过ObjectContext引用ASP的每个对象。
ASPError对象包含ASP脚本或asp.dll本身产生的任何错误的详细内容。
2.MicrosoftDataAccessComponent
MDAC作为操作系统的组成部分的组件,与ASP一起提供。
此组件中包含一组称为ActiveXDataObject(ADO)的对象,他们对于查看不同平台上的各种数据(数据库、表单、文本文件)是必不可少的。
ADO主要有3个对象,分别是Connection、Command和Recordset。
Connection对象就是使ADO与数据库之间建立一个通道,也就是实现与数据库的连接。
Command对象就是对数据库进行发号施令,比如建立新的索引,执行查询等,它可以通过标准的SQL数据库操作语言得以实现。
Recordset对象是一个数据记录集,它包含了我们检索出来的记录数据,通过它可以直接对数据库进行修改。
3.活动服务器组件
活动服务器组件是与ASP一起免费带来的组件或DLL,他们有着广泛的用途。
主要包括ADRotator、BrowserCapabilities、ContentLink、ContentRotator、Counters、loggingUtility、MyInfo、PageCounter、permissionChecker、tools等组件。
由于本次设计用到的不多,在此就不详细介绍了
4.ASP脚本对象
他们分别是Dictionary、FileSystemObject和TextStream.由于本设计用到的也不多,在此就不详细介绍了。
1.2SQL语句介绍
SQL全称是“结构化查询语言(StructuredQueryLanguage)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。
SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。
如今无论是像Oracle,Sybase,Informix,SQLserver这些大型的数据库管理系统,还是像VisualFoxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
StructuredQueryLanguage包含4个部分:
☆数据查询语言DQL-DataQueryLanguageSELECT
☆据操纵语言DQL-DataManipulationLanguageINSERT,UPDATE,DELETE
☆数据定义语言DQL-DataDefinitionLanguageCREATE,ALTER,DROP
数据控制语言DQL-DataControlLanguageCOMMITWORK,ROLLBACKWORK
▪1.2.1SQL的优点
SQL广泛地被采用正说明了它的优点。
它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。
1.非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。
SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。
所有SQL语句接受集合作为输入,返回集合作为输出。
SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法。
这种特性使用户更易集中精力于要得到的结果。
所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。
查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。
2.统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。
基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。
SQL为许多任务提供了命令,包括:
☆查询数据
☆在表中插入、修改和删除记录
☆建立、修改和删除数据对象
☆控制对数据和数据对象的存取
☆保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
3.是所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。
所有用SQL编写的程序都是可以移植的。
SQL是PostgreSQL(和大多数其它关系型数据库)用做查询语言的语言。
它是可以移植的,并且容易学习使用。
但是所有SQL语句都必须由数据库服务器独立地执行。
这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。
所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。
如果使用了PL/pgSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。
通过使用PL/pgSQL,应用可以获得可观的性能提升。
1.2.2SQL的使用
1.ASP与Access数据库连接:
<%@language=VBscript%>
<%
dimconn,mdbfile
mdbfile