毕业设计报告与任务书范例

No:         

毕 业 设 计 报 告

课题:在线考试系统的设计与实现

系部:       软件学院       

班级:       软件081        

学号:       0718010XXX       

学生:         张  三         

指导教师:     李  四           

装订交卷日期: 2013.03.29

毕业设计报告要求双面打印,但此页为空白页,即封面的反面,为了自动双面打印使目录首页印在奇数页上,此空白页不能删。(打印前仅将这一行字删掉!)

毕业设计成绩评定表

装订顺序:(1)封面、(2)毕业设计成绩评定记录、(3)毕业设计任务书、(4)目录、(5)正文、(6)附录、(7)参考文献。

打印要求:双面打印;其中封面的反面为空白页;目录的首页、正文的首页打印在右面;正文首页的页码号从1开始编码。

成绩评定:总评成绩以优秀、良好、中等、及格、不及格五级计分制计分,平时成绩、评阅成绩、答辩成绩不受限制,但须统一。参加答辩学生的平时成绩、卷面评阅成绩、答辩成绩分别占总评成绩40%、20%和40%;未安排答辩学生的平时成绩与评阅成绩分别占总评成绩40%、60%。平时成绩、评阅成绩、答辩成绩任意一项不及格,则总评成绩不及格。                                         软件学院制

毕业设计任务书

目  录

1 绪论. 1

1.1 课题研究背景. 1

1.2 国内外发展现状. 2

1.3 论文结构. 3

2 相关技术. 3

2.1 ASP技术. 3

2.2 IIS服务器. 5

2.2.1 IIS服务器的特性. 6

2.2.2 IIS体系架构. 7

2.2.3 IIS提供的服务. 7

3 需求分析. 8

3.1 可行性分析. 8

3.2 系统的体系机构分析. 8

3.3 系统的需求分析. 8

3.4 系统的设计思想与目标. 9

4 系统概要设计. 10

4.1 系统流程. 10

4.2 系统总体结构图. 10

5 详细设计. 11

5.1 试题设计. 11

5.2 数据库设计. 15

5.3 功能的详细设计. 16

5.3.1 连接数据库实现. 16

5.3.2 注册页面的设计与实现. 16

5.3.3 登陆页面的设计与实现. 18

5.3.4 添加试题的设计与实现. 20

5.3.5 试卷页面的生成与设计. 22

5.3.6 在线考试页面的设计与实现. 24

6 结束语. 26

7 参考文献. 26

8 致谢. 27

空白页,以使正文首页印在总页序的奇数页即右面上。(双面打印前将这一行字删掉!)


1 .绪论

近几年来,随着Internet的崛起,远程教育开始发展,普及网络教育的呼声日益高涨,其势头不亚于电子商务。联合国教科文组织1998年在其一项调查报告中指出:无论是发达国家还是发展中国家,都不同程度存在教育滞后于现实需要的问题,特别是第三世界国家。而普及远程教育,尤其是网络教育,不仅是解决这一问题的有效途径,而且将成为革新传统教育模式的重要动力。中国的网络教育也随Internet的发展而同步增长,同时,网络教育也为中国的教育事业开辟了新的天地

1.1 . 课题研究背景

随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。

远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。[1]其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。[2]显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。[3]例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。

伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的在线考试系统也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。随着Internet的相关技术的发展,特别是Web技术的出现,人们开始致力于研究和开发基于Internet考试系统,这也大大推动了远程教育的发展。

如今世界上对于基于Internet的远程考试系统所进行的研究开发工作不是很长,但是基于web技术构建的在线考试系统已然成为发展的主流。数据库安全、共享、数据传输过程的安全性、访问控制技术、身份识别技术都是构建考试系统要考虑的问题。 [4]目前,一些远程教育机构已经开发出了在线考试系统,基本实现了基于Internet的B/S结构在线考试。通过Server端的后台试题库动态生成考卷和对于标准化的试题即时评定成绩。但是与传统的纸面考试相比,目前的在线测试都是基于标准化考试的,而且一般只能用于非正规的考试,因为对于很多方面考虑的还不是很完善,因而使得在线考试在近段时间很难完全替代传统的考试。

1.2 . 国内外发展现状

国际上,基于计算机的考试蓬勃发展,对于题库建设的理论研究不断深入,实用考试系统也层出不穷。[5]美国心理协会在1986年出版了关于如何开发、使用计算机化考试以及解释考分的指南,成为了考试和软件开发者的事实标准。投入实际使用的例子有,1982年采有远距离教育方式的美国学院(American College)考试使用计算机进行测试;1993年美国教育考试中心(Eraduade Record Examination简称 ETS)考试;从1994年开始,美国护理证书考试完全在计算机上进行。目前,国外许多大型测验出版机构、地区教育主管部门和专业资格认证机构都以某种测量理论为指导建立题库、设计考试系统,并进行各项相关研究。

 除了这类行业专用的大型考试系统之外,供普通教师使用的通用考试系统软件也有相应的研究和产品。如英国Question Mark Computing,Ltd公司出品的Question Mark,就是一种基于项目反应理论的,可供广大教师使用的通用的考试系统。

在我国,计算机考试系统和题库的理论研究和实践应用起步比较晚。但发展也比较迅速,研究和开发活动比较活跃。北京师范大学、华北师范大学等高等院校都有教师在进行教育测量理论应用于题库建设方面的研究。清华大学、上海交通大学、北京师范大学等高校,也有教师在组织力量致力于实用考试系统的研究和开发工作,

其中使用专用在线考试系统影响较大的考试有:

1994年开始,国家教务组织的全国计算机等级考试;

1996年,教育部考试中心举办的全国计算机应用技术证书考试(National Applide Information Technology Certificate 简称NIT);

微软授权培训中心(Microsoft Authorized Training Center 简称ATC)组织的认证考试等。[6]

 面向普通教师使用的通用题库系统也有“海北智能助教系统”和国家“九五”重点攻关项目“计算机辅助教学软件研制开发与应用”,“中小学课件的研制与开发”专题中的“通用题库生成管理系统”等。

以上考试系统各自实现了试题的计算机管理,抽题成卷,无纸化考试,自动判卷,对考试结果进行统计分析等各项功能的一部分。但也都存在一定的问题和局限性。

1.我国的专用考试系统主要针对计算机考试,其他行业和科目的考试系统太少

2.计算机在线考试系统由于操作类题目自动出题有较大的难度,基本没有实现题库化的管理。

3.系统对传统的客观题虽然一般建有题库但不大,多采用随机抽题组卷的方式,缺乏教育测量理论作为依据。

4.考试完成后,分数和试题统计分析比较简单,没有充分挖掘数据所包含的信息。

5.通过考试系统或题库系统对最终用户即教师的需求分析做的不够透彻,忽略老师们渴望能自由地操纵试题库的需求,没有完全实现用户自主初始化试题库、自主维护试题库、自主调用试题库的功能。加上软件实用水平和商品化工作方面的不足。通用系统并没有被广大教师认可和使用。

总的来说,我国在线考试系统发展比较迅速,但总体水平不高,与发达国家相比,在理论和实践上都存在一定的差距。

1.3. 论文结构

本论文第一章是绪论,主要介绍了在线考试的开发背景和国内外的发展现状;第二章是相关技术介绍,着重介绍了ASP技术、SQL语言、VBSCRIPT、IIS服务器。第三章是系统需求分析,着重分析该系统要完成的功能以及系统体系结构和系统的设计思想;第四章系统概要设计,主要是对要实现的功能做一个简单的说明,以及系统总体结构图的设计;第五章是系统的详细设计,其中包括了数据库的详细设计和功能实现的详细设计,是本论文的重点。

2.  相关技术

该在线考试与自动评分系统主要采用ASP、HTML、Access数据库、VBScript、SQL等技术和工具,整体设计遵循软件工程的方法,经过需求分析、总体设计、文档和代码的编制、和系统实现几个阶段。

2.1 . ASP技术

Microsoft Active Server Pages 即ASP,其实是一套微软开发的服务器端脚本环境。Active Server Page 是创建动态网页的一个很好的工具,它起一种编程语言的作用,可以利用它编写动态产生HTML的程序代码。因此,只要用户浏览Web站点并请求一个ASP页,Web服务器就可以处理相应的ASP代码,生成HTML代码,然后将它传递到用户浏览器并显示出网页。[7]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能与任何ActiveX scripting语言相容。除了可使用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如REXX、Perl、Tcl等。脚本引擎是处理脚本程序的COM(Component Object Model)物件。

6.ASP的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,提高程序的安全性。

7.可使用服务器端的脚本来产生客户端的脚本。

8.物件导向(Object-oriented)。

9.ActiveX Server Components(ActiveX服务器元件)具有无限可扩充性。可以使用Visual Basic 、Java 、Visual C++ 、COBOL等编程语言来编写所需要的ActiveX Server Component。

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程序代码,可以防止别人抄袭程序。

数据只可能是字符串,则VBScript将按字符串处理。当然,也可以将数字包含在引号("")中使其成为字符串。除简单数字或字符串以外,Variant可以进一步区分数值信息的特定含义。例如使用数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时,结果也总是表示为日期或时间。当然,从Boolean值到浮点数,数值信息是多种多样的。Variant包含的数值信息类型称为子类型。大多数情况下,可将所需的数据放进Variant中,而Variant也会按照最适用于其包含的数据的方式进行操作。声明变量的一种方式是使用Dim语句、Public语句和Private语句在Script中显式声明变量。

另一种方式是通过直接在Script中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行Script时出现意外的结果。因此,最好使用Option Explicit语句显式声明所有变量。在VBScript中,过程被分为两类:Sub过程和Function过程。

(1)Sub过程

Sub过程是包含在Sub和End Sub语句之间的一组VBScript语句,执行操作但不返回值。Sub过程可以使用参数(由调用过程传递的常数、变量或表达式)。

(2)Function过程

Function过程是包含在Function和End Function语句之间的一组VBScript语句。Function过程与Sub过程类似,但是Function过程可以返回值。Function过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果Function过程无任何参数,则Function语句必须包含空括号()。Function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是Variant。

1  VBScript中可使用下列循环语句:

☆Do...Loop:当(或直到)条件为True时循环。

☆While...Wend:当条件为True时循环。

☆For...Next:指定循环次数,使用计数器重复运行语句。

☆   For Each...Next:对于集合中的每项或数组中的每个元素,重复执行一组语句。

2  在VBScript中可使用以下条件语句:

☆If...Then...Else 语句

☆Select Case 语句

2.2 . IIS服务器

IIS是Internet Information Server的缩写,是微软公司主推的服务器,最新的版本是Windows2000里面包含的IIS 5,IIS与WindowNT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet站点。

IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议),FTP(Fele Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。

IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JScript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器。

IIS支持服务器应用的Microsoft BackOffice系列,Microsoft BackOffice系列包括以下内容:

1.Microsoft Exchange Server 客户/服务器通讯和群组软件;

2.Mirrosoft Proxy Server 代理服务器;

3.用于连接IBM企业网络的Microsoft SNA Server;

4.用于集中管理分布式系统的Microsoft Systems Management Server;

已有管理工具。

IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。用于32位Windows应用程序的Internet扩展可以把FTP,SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(Multipurpose Internet Mail Extensions,多用于Internet邮件扩展),它可以为Internet应用程序的访问提供一个简单的注册项。

IIS的一个重要特性是支持ASP。IIS 3.0版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。对于诸如VBScript,JScript开发软件,或者由Visual Basic,Java,Visual C++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持。

2.2.1. IIS服务器的特性 

 1. IIS可以赋予一部主机电脑一组以上的IP地址,而且还可以有一个以上的域名作为Web网站,您可以利用TCP/IP内容设置两组以上的IP地址给它,除了为网卡再加进一组IP地址之外,必须在负责这个点的DNS上为这组IP地址指定另一个域名,完成这些步骤以后,在Internet Service Manage中就会出现一个虚拟Web服务器,虚拟服务器(Virtual Server)必须有它自己的主目录(home directory),对于IIS来说,所有服务器都是它的虚拟服务器。

2. 在互联网上,有很多网站需要多部服务器才能够应付来自用户端的请求,这就需要利用DNS所具有的功能,将一组以上的IP指定给同一个域名,每当这个网站接到服务要求,由DNS负责进行解析,它会指定域名的下一组IP地址给它,若要求采用这套做法,服务器的内容必须逐一复制到每一部服务器上。

3. 为了存取后端数据库,IIS支持以下三种方式:

IDC:Internet Data Connector

ADO:ActiveX Data Object

ADC:Advanced Data Connector

这三种存储方式各有其特点,这里特别强调的是这三种数据库存取方式的后端数据库都必须提供ODBC界面才可以。

2.2.2 . IIS体系架构

 IIS和Windows NT Server是紧密的结合在一起的,IIS的组成元件是以服务程序的形式在后台执行的,用户端利用TCP/IP协议连接上IIS,TCP/IP协议是有以下比较重要的四层(Layer)所组成的:

1. Link Layer:作为Windows NT操作系统和网卡以及网络驱动程序之间的界面。

2. Network Layer:负责控制资料包在网络上的移动,IP(Internet Protocol)即位于这一层。

3. Transport Layer:负责用户端到服务器之间的信息的移动,TCP(Transmission Control Protocol)即位于此层。

4. Application Layer:管理较低层和应用程序之间的连接端口,Socket即位于此层。

作为MMC(Microsoft Management Console)的一部分,Internet Service Manager(ISM)主要负责IIS提供服务的一些设置组态的管理,Internet Service Manager可以用来增强信息服务器的配置和性能,Internet Service Manager可以帮助用户在网络中任何一台运行Windows NT Server网络操作系统的计算机上,配置和监视所有的Internet服务。

Internet Service Manager位于Microsoft Internet Server组中。通过选择Internet Service Manager超文本管理器,用户可以采用HTML界面使用Internet Service Manager。对HTML管理平台版本唯一的限制是,不能通过这个界面结束或者启动服务器上的Internet服务。

2.2.3 . IIS提供的服务

IIS主要集成了Windows NT Server网络操作系统的三个Web服务器功能,这些功能是通过标准HTTP协议传输数据的,所有的IIS服务(WWW,FTP和SMTP)都是单进程多线程的体系结构,用以优化性能。WWW使用的客户/服务器协议是HTTP,这意味着客户和服务器需要交互作用,以执行特定的任务,例如:用户在Web上的HTML页面上单击一个超级连接,结果屏幕上现有的页面会被新的页面所代替,IIS通过Windows Sockets来支持HTTP,目前的IIS支持HTTP 1.1版本。

FTP是在TCP/IP网络上两个计算机之间传输文件时使用的协议,IIS通过Windows Sockets来支持FTP,尽管现在使用FTP用户界面的人越来越少,但是这个协议仍然将在一段时间内用来传输文件,因为它几经被Internet用户广为接受,FTP使用TCP作为它的客户和服务器之间进行所有通信和交换的传输协议,而IIS则是以Windows Sockets与TCP打交道的。

所有标准Internet服务(如FTP和HTTP)都位于称为Inetinfo(Internet Information Services Application,Internet信息服务应用)的进程中,除了这些Internet服务外,该进程还包含了共享线程池,缓存,纪录和SNMP服务。

HTTP和FTP运行与同一进程中,因此它们可以共享缓存中的数据,例如文件句柄,账号信息以及日志文件数据等。[11]可以使用纪录跟踪正在访问节点的那些用户,并控制什么时候可以访问节点,对用户进行跟踪可以帮助确定安全性和性能问题,跟踪信息可以直接纪录到日志文件,这样可以脱机进行处理,以获得更好的性能,同样也可以纪录到数据库中,以

3 . 需求分析

 要实现一个在线考试系统,首先应该进行需求分析,这样才能令设计出的软件满足用户的各项功能。

3.1. 可行性分析

也称为可行性研究,在系统调查的基础上,针对系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价。

3.2 . 系统的体系机构分析

首先,因为考试是面向特定的某些对象的,所以考试者进入系统应该进行身份验证。考试者进入考试系统后,应该能根据自己的需要选择考试科目,所以该系统还应具有考试科目选择的功能。在线考试于一般的单机考试是不同的。鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的,但试题并不相同。在线考试基于网络环境,试卷应该从服务器的数据库随机抽取试题后动态生成的。另外,系统还应该对考试时间进行控制,时间到了会要求考试者交卷。考试者选择答案提交后,应该由计算机自动判卷,得到成绩后显示出来。考试完毕后,可以返回登录界面或继续考试。此外,应该能够方便、快捷的对在线考试系统管理,此外,用户还应能进行远程注册。

3.3 .系统的需求分析

用户登陆:用户通过用户名和密码进行登录。

用户信息的管理:管理员可以增删用户

试题库管理:可以增加、修改、删除试题。

试卷生成:从试题库里随机抽取试题生成一份原始试卷。

在线考试:系统严格控制整个考试过程,实行时间的监控与权限的控制,考生需要在限定的考试时间内交卷。

计算机自动阅卷:本系统只考虑客观题,要求计算机能自动阅卷,然后马上显示出考生分数。

成绩查阅:考生考完以后,管理员应该能对所有纪录进行查询,并应该可以删除指定纪录。

3.4 . 系统的设计思想与目标

该系统是专门用于用户注册、登录、参加在线考试以及管理员进行试题录入、修改、删除、成绩查询、管理用户的ASP.net应用程序。它应该具有开放性、方便性和灵活性。考生进行有效的身份验证登录后,要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提示。一旦考生做完交卷后便能立即看到自己的考试成绩,并且其分数将被记入库中以供审核和查阅;另外,还可完全由计算机自动灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,而且,不同的考生生成的试题是不同的。

4 .系统概要设计

4.1 . 系统流程

   用户登录过程是一个验证过程,应用程序首先从数据库获取该用户的信息,如用户名称和用户角色等,然后再根据用户的角色显示用户的下一步操作页面。如果考生登录,显示生成试卷等待页面和在线答题页面;如果教师登录,显示题库管理页面;如果系统管理员登录,显示系统维护页面。

4.2 .系统总体结构图

5. 详细设计

5.1. 试题设计

  

      <body>

<% if request.cookies("logok")="yes"  then%>

<table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" height="25">

  <tr>

    <td width="100%">当前位置:<a href="news.asp">系统管理</a> &gt; 题库管理</td>

  </tr>

</table>

<table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse" id="AutoNumber2" bgcolor="#99CCFF" width="100%">

  <form name="viewaddform" method="POST" action="admindatabase.asp">

    <tr>

      <td><select size="1" name="subjectview">

      <option selected>--选择科目--</option>

      <% sql="select * from exam_subject"

      set rs=server.createobject("adodb.recordset")

      rs.open sql,conn,3,2

      do while not rs.eof %>

      <option value="<%=rs("exam_subject")%>"><%=rs("exam_subject")%></option>

      <% rs.movenext

      loop

      rs.close %></select><select size="1" name="typeadd">

      <option selected>--题型--</option>

      <option value="单选题">单选题</option>

      <option value="多选题">多选题</option>

      <option value="判断题">判断题</option>

      </select><input type="submit" value="浏 览" name="I3" onClick="viewit(this.form)" class="s02"><input type="submit" value="添加题目" name="I6" onClick="addit(viewaddform)" class="s02"><input type="text" name="mykey" size="10" value="--关键字--" onFocus="this.select()" class="s01"><input type="submit" value="查 询" name="I7" onClick="searchit(this.form)" class="s02"></td>

    </tr>

  </form>

</table>

<form name="viewdatabase" method="post">

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber4" height="30">

  <tr>

    <td>

    <p align="right">

    <input type="checkbox" name="chkall" value="on" onClick="CheckAll(this.form)" style="font-size: 9pt; color: #000000">全部选择/取消<input type="submit" value="删除" name="I3" onClick="delit(this.form)" class="s02">

    </td>

  </tr>

</table>

<table border="1" cellpadding="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0" width="100%" id="AutoNumber1">

  <tr>

    <td width="30" align="center" bgcolor="#E1E1E1" height="20"> </td>

    <td width="30" align="center" bgcolor="#E1E1E1"><b>序号</b></td>

    <td align="left" bgcolor="#E1E1E1" width="120"> <p align="center">&nbsp;<b>科目名称</b></td>

    <td align="left" bgcolor="#E1E1E1"> <p align="center"><b>题目内容</b></td>

    <td align="left" bgcolor="#E1E1E1" width="30"> <p align="center"><b>操作</b></td>

  </tr>

  <%

subjectview=request("subjectview")

typeadd=request("typeadd")

mykey=request("mykey")

if subjectview="--选择科目--" or subjectview="" then

  subjectview="%"

end if

if typeadd="--题型--" or typeadd="" then

  typeadd="%"

end if

if mykey= "--关键字--" or mykey="" then

  mykey="%"

end if

sql="select * from exam_database where subject like '"& subjectview &"' and type like '"& typeadd &"' and question like '" & mykey &"'"

set rs=server.createobject("adodb.recordset")

rs.open sql,conn,3,2

on error resume next

rs.PageSize = 10

Page = CLng(Request("Page"))

If Page < 1 Then Page = 1

If Page > rs.PageCount Then Page = rs.PageCount

i=page+(page-1)*9

rs.AbsolutePage = Page

For iPage = 1 To rs.PageSize

%>

  <tr>

    <td align="center" bgcolor="#E1E1E1"> <input type="checkbox" name="id" value="<%=rs("id")%>"></td>

    <td align="center"><%=i%> </td>

    <td align="left"><%=rs("subject")%> </td>

    <td align="left"><%=rs("question")%> </td>

    <td align="left"> <p align="center"><a href="javascript:editit(<%=rs("id")%>)">

        <img border="0" src="images/edit.gif" alt="查看/编辑"></a></td>

  </tr>

  <%

rs.MoveNext

If rs.EOF Then Exit For

i=i+1

Next

%>

  <caption>

  </caption>

</table>

</form>

<div ALIGN="right">

  <table>

    <form ACTION="<%=Myself%>?sujectview=<%=subjectview%>&typeadd=<%=typeadd%>&mykey=<%=mykey%>%&gt;" METHOD="GET">

      <tr>

        <td>

        <p ALIGN="right"><%If Page <> 1 Then ' 如果不是位于第一页%>

        <a href="<%=Myself%>?Page=1&sujectview=<%=subjectview%>&typeadd=<%=typeadd%>&mykey=<%=mykey%>">

        第一页</a>

        <a HREF="<%=Myself%>?Page=<%=(Page-1)%>&sujectview=<%=subjectview%>&typeadd=<%=typeadd%>&mykey=<%=mykey%>">

        上一页</a>

        <%                                      

End If                                        

If Page <> rs.PageCount Then ' 如果不是位于最后一页                                        

%> <a HREF="<%=Myself%>?Page=<%=(Page+1)%>&sujectview=<%=subjectview%>&typeadd=<%=typeadd%>&mykey=<%=mykey%>">

        下一页</a>

        <a HREF="<%=Myself%>?Page=<%=rs.PageCount%>&sujectview=<%=subjectview%>&typeadd=<%=typeadd%>&mykey=<%=mykey%>">

        最后一页</a> <% End If %> <font SIZE="2">输入页次:</font><input NAME="Page" SIZE="3" CLASS="s01">

        <font SIZE="2">页次:</font><font COLOR="Red" SIZE="2"><%=Page%>/<%=rs.PageCount%></font></p>

5.2 数据库设计

数据库需求分析

网络考试系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询操作上,包括用户信息、试卷信息、学生成绩信息和试题库信息,各部分的数据内容又有着内在的联系,针对该系统的数据特点,可以总结出如下的需求。

1.系统用户分为管理员、教师和学生。

2.用户信息记录用户的名称、密码和身份。

3.成绩信息记录了学生的成绩信息。

4.试卷信息记录了所有已经存在的试卷信息。

5.试题库信息记录了试卷的内容。

5.3 功能的详细设计

5.3.1 连接数据库实现

<%set conn=server.createobject("adodb.connection")

'连接SQL数据库

'strcnn="driver={sql server};server=server;uid=sa;database=exam"

'strcnn="dsn=网上考试系统;uid=sa;pwd="

'strcnn="provider=sqloledb;database=exam;uid=sa;"

'连接access数据库

'strcnn= "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("exam.mdb")

strcnn="provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("exam.mdb")

conn.open strcnn

%>

5.3.2注册页面的设计与实现

<table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2" bgcolor="#66CCFF">

  <tr>

    <td height="371" style="border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 0; border-top-style: solid; border-top-width: 0; border-bottom: 1px solid #000000" align="center" valign="middle">

      <table width="400" border="1" height="183">

        <tr>

          <td height="34" align="center" valign="middle" bgcolor="#0099FF" colspan="2">&nbsp;<font color="#9900CC" size="5"><b><font size="4">欢迎注册网上考试系统</font></b></font></td>

        </tr>

        <tr>

          <td bgcolor="#0099FF" height="121" align="left" valign="top" colspan="2">

            <form name="form1" method="post" action="insertdate.asp" onSubmit="return submitit();" >

              姓名:<input type="text" name="s_name" size=11 class="s01">

              **<br>

              学号:<input type="text" name="s_id" size=6 class="s01">

              **<br>

                       班级:<input type="text" name="s_class" size=12 class="s01"><br>

              性别:<input type="radio" name="radiobutton" value="radiobutton">

              男<input type="radio" name="radiobutton" value="radiobutton">女<br> 

                       密码:<input type="password" name="s_pws" size=6 class="s01">

              **<br>

                       确认密码:<input type="password" name="s_password" size=6 class="s01">

              **<br> 

                       请选择你的职业:

                       <select size="1" name="selectedit">

                         <option value="学生">学生</option>

                            <option value="计算机">计算机</option>

                            <option value="电子">电子</option>

                            <option value="教师">教师</option>

                            <option value="工人">工人</option>

                       </select><br> 

              住址:<input type="text" name="s_add" size=50 class="s01">

              <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                      

              <input type="submit" name="ok" value=" 确 定 " class="s02">

              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                       <input type="reset" name="caler" value=" 清 空 " class="s02">

              <br>             

            </form>

          </td>

        </tr>

        <tr>

          <td bgcolor="#0099FF" width="321">

            <div align="center"> </div>

          </td>

          <td bgcolor="#0099FF" width="81">

            <div align="center"><font color="#FFFF00"><font size="4"><a href="logindefault.asp"><font face="楷体_GB2312" color="#660066" size="3">返回</font></a></font><b></b></font></div>

          </td>

5.3.3 登陆页面的设计与实现

 

form method="POST" action="checkusr.asp" onSubmit="return check(this);">

  <table border="0" cellpadding="2" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">

    <tr>

      <td colspan="2" bgcolor="#6699CC" height="55"></td>

    </tr>

    <tr>

      <td colspan="2">

      <p align="center">

      <img border="0" src="images/login.jpg" width="120" height="30"></td>

    </tr>

    <%

if request("temp")="error" then

%>

    <tr>

      <td colspan="2">

      <p align="center"><font color="#FF0000">用户名或者密码错误!</font></td>

    </tr>

    <%

end if

%>

<%

if request("temp")="nota" then

%>

    <tr>

      <td colspan="2">

        <p align="center"><font color="#FF0000" onMouseOver="MM_showHideLayers('Layer1?fraRightFrame2','','show')">你<code>不是系统管理员</code>!</font>

      </td>

    </tr>

    <%

end if

%>

    <tr>

      <td>

         <p align="right">&nbsp;考&nbsp;&nbsp;&nbsp; 号:</td>

      <td><input type="text" name="userid" size="10" class="s01"></td>

    </tr>

    <tr>

      <td>

      <p align="right">&nbsp;密&nbsp;&nbsp;&nbsp; 码:</td>

      <td><input type="password" name="pwd" size="10" class="s01"></td>

    </tr>

    <tr>

      <td colspan="2">

        <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>

    </tr>

    <tr>

      <td colspan="2"> <p align="center">

          <input border="0" value="登 陆" name="I1" type="submit" class="s02">

          &nbsp;&nbsp;

          <input type="reset" value="重 置" name="B1" class="s02">

      </td>

    </tr>

  </table>

</form>     

5.3.4 添加试题的设计与实现

 

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1" height="100%" bgcolor="#336699">

  <tr>

    <td width="238"> <img border="0" src="images/EXAMbanner.jpg" width="282" height="60"></td>

    <td valign="bottom" width="60">

    <p align="center"><a class="toolbar" href="relogin.asp">重新登陆</a></td>

    <td valign="bottom" width="2">

    <p align="center">

    <img height="14" width="2" border="0" src="images/separator.gif"></td>

    <td valign="bottom" width="60">

    <p align="center"><a class="toolbar" href="adminsubject.asp">科目管理</a></td>

    <td valign="bottom" width="2">

    <p align="center">

    <img height="14" width="2" border="0" src="images/separator.gif"></td>

    <td valign="bottom" width="60">

    <p align="center"><a class="toolbar" href="admindatabase.asp">题库管理</a></td>

    <td valign="bottom" width="2">

    <p align="center">

    <img height="14" width="2" border="0" src="images/separator.gif"></td>

    <td valign="bottom" width="60">

    <p align="center"><a class="toolbar" href="admincreatepaper1.asp">试卷生成</a></td>

    <td valign="bottom" width="2">

    <p align="center">

    <img height="14" width="2" border="0" src="images/separator.gif"></td>

    <td valign="bottom" width="60">

    <p align="center"><a class="toolbar" href="searchscore.asp">查询成绩</a></td>

    <td valign="bottom" width="2">

    <p align="center">

    <img height="14" width="2" border="0" src="images/separator.gif"></td>

    <td valign="bottom" width="60">

    <p align="center"><a class="toolbar" href="postnews.asp">信息发布</a></td>

    <td valign="bottom" width="2">

    <p align="center">

    <img height="14" width="2" border="0" src="images/separator.gif"></td>

    <td valign="bottom" width="60">

    <p align="center"><a class="toolbar" href="news.asp">考试新闻</a></td>

    <td valign="bottom" width="2">

    <p align="center">

    <img height="14" width="2" border="0" src="images/separator.gif"></td>

    <td>

    <p align="right"> </td>

  </tr>

</table>

5.3.5 试卷页面的生成与设计

   第一步:

第二部:

第三部:

5.3.6 在线考试页面的设计与实现

      

在用户完成考试点击了交卷后,利用下面代码把用户所做的分数显示出来

<td width="100%" height="30" style="border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 0; border-top-style: solid; border-top-width: 0; border-bottom: 1px solid #000000">

    <img border="0" src="images/result.jpg"></td>

  </tr>

  <tr>

    <td width="100%" height="30">祝贺您,您已经成功完成考试</td>

  </tr>

  <tr>

    <td width="100%" height="30">开始答题的时间是:<%=rs("starttime")%></td>

  </tr>

  <tr>

    <td width="100%" height="30">结束答题的时间是:<%=rs("endtime")%></td>

  </tr>

  <tr>

    <td width="100%" height="30">本次考试的分为:<b><font color="#FF0000" size="3"><%=rs("score")%></font></b>分</td>

  </tr>

  <tr>

    <td width="100%" style="border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 0; border-top: 1px solid #000000; border-bottom-style: solid; border-bottom-width: 0" height="60">

    <p align="center"><a href="selectsubject.asp">参加其他科目的考试</a></td>

  </tr>

</table>

6 结束语

经过三个多月的设计和开发,在线考试系统基本开发完毕。该系统是专门用于用户注册、登录、参加在线考试以及管理员进行试题录入、修改、删除、成绩查询、管理用户的ASP应用程序。

在本次设计中,我系统的学习了ASP编程,掌握了ASP的基础知识、开发环境、内置对象及其脚本语言。同时,还学习了数据库的相关知识和SQL数据库查询语句,可以使用ADO对象与数据库配合工作,进行网络数据库编程。

由于这是我第一次接触ASP这门技术,知识水平有限,再加上做设计的时间有限,在系统中有不足之处,比如:界面不美观;安全性问题考虑不详细;运行速度慢等。

7 参考文献

[1] 李虹 车宏军 计算机化的考试的研究和发展[J] 中国科学院 2000.3

[2] 张丽萍 朱延衔 朱斌 基于浏览器方式的考试系统的实现[D] 大连海事大学学报 2000.26(3)

[3] 于兆勤 基于INTERNET的考试系统的研究与开发[D] 广东广播大学学报 20##年(4)

[4] 邹显春等 一种基于internet的开放式模型研究[C] 西南师范大学学报(自然科学版) 2001.4

[5] James Herman Web Based Net Management Is Coming[J] Data Communications 1997.10

[6] 吕俊 WWW环境下在线考试系统的设计与实现[J] 电子计算机与外部设备1999 (3)

[7] 杨拥民 基于B/S模式的远程故障诊断系统[J] 机电一体化 2000.6

[8] 汪晓平 钟军 《ASP网络开发技术》[M] 北京:人民邮电出版社 20##年12月,45-76

[9] 陈世明 江高举 《ASP从入门到精通》[M] 北京:中国铁道出版社 20##年6月,13-45

[10] (美)普瑞格 《中文版Access 2003宝典》[M] 赵传启等译 北京:电子工业出版社 20##年5月,23-47

[11] 太平洋电脑网  http://www.pconline.com.cn

[12] 王丽娜 肖京 通用智能题库系统研究[C] 东北大学学报(自然科学版) NO.2 1999年

[13] 罗秀川 面向中小学的通用的题库生成管理系统的设计与实现[D] 北京师范大学硕士学位论文 1998年7月

[14] 唐文胜 黄小兵 计算机考试系统中操作系统试题评分的一种方法[J] 计算机与现代化 1996.6

[15] 林必英等 WEB数据库的存取技术[C] 东北电力大学学报 1999.10

8 致谢

毕业设计的整个过程中,指导老师一直在帮助我、支持我,帮我找资料,在我遇到困难的想办法帮我解决;另外,其他同学也给了我很多帮助,在此一并向他们表示衷心的感谢!

相关推荐