电路网上考试系统设计

电路网上考试系统设计[java毕业论文下载]

一方案设计

1系统设计相关原理

  • ASP技术介绍

Microsoft Active Server Pages 即我们所称的ASP,其实是一套微软开发的服务器端脚本环境。Active Server Page 是创建动态网页的一个很好的工具,它起一种编程语言的作用,可以利用它编写动态产生HTML的程序代码。因此,只要用户浏览Web站点并请求一个ASP页,Web服务器就可以处理相应的ASP代码,生成HTML代码,然后将它传递到用户浏览器并显示出网页。ASP内含于IIS3.0和4.0之中,通过ASP我们可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。有了ASP就不必担心客户的浏览器是否能运行所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。以下罗列了ASP所独具的一些特点:

a.使用VBScript 、JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。

b.无须编译,容易编写,可在服务器端直接执行。

c.使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。

d.与浏览器无关,用户端只要使用可执行HTML码的浏览器,即可浏览ASP所设计的网页内容。ASP所使用的脚本语言(VBScript 、Jscript)均在WEB服务器端执行,用户端的浏览器不需要能够执行这些脚本语言。

e.ASP能与任何ActiveX scripting语言相容。除了可使用VBScript或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如REXX、Perl、Tcl等。脚本引擎是处理脚本程序的COM(Component Object Model)物件。

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

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

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

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

j.另外,ASP技术的处理速度相当快,并且其安全性也很高。ASP最重要的优点是能够建立对诸如时间、地点、用户标志、以前的选择和活动等因素敏感的页面。换句话说,可针对每个用户的个别需求,用ASP定制网页,能够满足用户的各种需求。

总之,ASP包含三方面含义:

a.Active:ASP使用了微软的ActiveX技术。ActiveX(COM)技术是现在Microsoft软件的重要基础。它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。

b.Server:ASP运行在服务器端。这样就不必担心浏览器是否支持ASP所使用的编程语言。ASP的编程语言可以是VBSCRIPT和JSCRIPT。VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。然而Netscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。Netscape浏览器也可以正常显示ASP页面。

c.Pages:ASP返回标准的HTML页面,可以正常地在常用的浏览器中显示。浏览者查看页面源文件时,看到的是ASP生成的HTML代码,而不是ASP程序代码。这样就可以防止别人抄袭程序。

由此可以看出,ASP是在IIS下开发WEB应用的一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。

运行 ASP 所需的环境如下:

Microsoft Internet Information Server version 3.0/4.0 on Windows NT Server

Microsoft Peer Web Services Version 3.0 on Windows NT Workstation

Microsoft Personal Web Server on Windows 95/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、Visual Basic、C++等编程语言之间的一种特殊的语言,尽管它更接近后者,但它却不具有编程语言复杂、严谨的语法和规则。如前所述ASP所提供的脚本运行环境可支持多种脚本语言,譬如:JScript、REXX、PERL等等,这无疑给ASP程序设计者提供了广泛的发挥余地。ASP的出现使得广大Web设计者不必在为客户浏览器是否支持而担心,实际上就算在同一个.asp文件中使用不同的脚本语言,都无须为此担忧,因为所有的一切都将在服务器端进行,客户浏览器得到的只是一个程序执行的结果,而你也只需在文件中声明使用不同的脚本语言即可。

ASP的对象和组件:

a.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本身产生的任何错误的详细内容。

b.Microsoft Data Access Component

MDAC作为操作系统的组成部分的组件,与ASP一起提供。此组件中包含一组称为ActiveX Data Object(ADO)的对象,他们对于查看不同平台上的各种数据(数据库、表单、文本文件)是必不可少的。ADO主要有3个对象,分别是Connection、Command和Recordset。

Connection对象就是使ADO与数据库之间建立一个通道,也就是实现与数据库的连接。

Command对象就是对数据库进行发号施令,比如建立新的索引,执行查询等,它可以通过标准的SQL数据库操作语言得以实现。

Recordset对象是一个数据记录集,它包含了我们检索出来的记录数据,通过它可以直接对数据库进行修改。

c.活动服务器组件

活动服务器组件是与ASP一起免费带来的组件或DLL,他们有着广泛的用途。主要包括AD Rotator、Browser Capabilities、Content Link、Content Rotator、Counters、logging Utility、MyInfo、Page Counter、permission Checker、tools等组件。由于本次设计用到的不多,在此就不详细介绍了

d.ASP脚本对象

他们分别是Dictionary、FileSystemObject和TextStream.由于本设计用到的也不多,在此就不详细介绍了。

 

  • SQL 语句介绍

SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

Structured Query Language包含4个部分:

数据查询语言DQL-Data Query Language SELECT

据操纵语言DQL-Data Manipulation Language INSERT, UPDATE, DELETE

数据定义语言DQL-Data Definition Language CREATE, ALTER, DROP

数据控制语言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK
首先介绍SQL的优点

SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。

a.非过程化语言

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。
    b.统一的语言

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:

查询数据
在表中插入、修改和删除记录
建立、修改和删除数据对象
控制对数据和数据对象的存取
保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。

c.是所有关系数据库的公共语言

由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。SQL是PostgreSQL(和大多数其它关系型数据库)用做查询语言的语言。它是可以移植的,并且容易学习使用。但是所有SQL语句都必须由数据库服务器独立地执行。这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。如果使用了 PL/pgSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。通过使用PL/pgSQL,应用可以获得可观的性能提升。

其次说明SQL的使用

  • ASP与Access数据库连接:
    <%@language=VBscript%>
    <%dimconn,mdbfilemdbfile=server.mappath("数据库名称.mdb")
    setconn=server.createobject("adodb.connection")
    conn.open"driver={microsoftaccessdriver
    (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile%>
  • ASP与SQL数据库连接:
    <%@language=VBscript%>
    <%dimconnset conn=server.createobject("ADODB.connection")
    conn.open"PROVIDER=SQLOLEDB;DATA
    SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称%>
    建立记录集对象:
    setrs=server.createobject("adodb.recordset")
    rs.openSQL语句,conn,3,2
  • SQL常用命令使用方法:
    ◇数据记录筛选:
    sql="select*from数据表where字段名=字段值orderby字段名[desc]"
    sql="select*from数据表where字段名like'%字段值%'orderby字段名[desc]"
    sql="selecttop10*from数据表where字段名orderby字段名[desc]"
    sql="select*from数据表where字段名in('值1','值2','值 3')"
    sql="select*from数据表where字段名between值1and值2"
    ◇更新数据记录:
    sql="update数据表set字段名=字段值where条件表达式" 
    sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式
    ◇删除数据记录:
    sql="deletefrom数据表where条件表达式"
    sql="deletefrom数据表"(将数据表所有记录删除)
    ◇添加数据记录:
    sql="insertinto数据表(字段1,字段2,字段3…)values(值1,值2,值3…)"
    sql="insertinto目标数据表select*from源数据表"(把源数据表的记录添加到目标数据表)
    ◇数据记录统计函数:
    AVG(字段名)得出一个表格栏平均值
    COUNT(*¦字段名)对数据行数的统计或对某一栏有值的数据行数统计
    MAX(字段名)取得一个表格栏最大的值
    MIN(字段名)取得一个表格栏最小的值
    SUM(字段名)把数据栏的值相加

引用以上函数的方法:
sql="selectsum(字段名)as别名from数据表where条件表达式"
setrs=conn.excute(sql)
用rs("别名")获取统的计值,其它函数运用同上。
◇数据表的建立和删除:
CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)……)
DROPTABLE数据表名称(永久性删除一个数据表)

d. 记录集对象的方法:
rs.movenext将记录指针从当前的位置向下移一行
rs.moveprevious将记录指针从当前的位置向上移一行
rs.movefirst将记录指针移到数据表第一行
rs.movelast将记录指针移到数据表最后一行
rs.absoluteposition=N将记录指针移到数据表第N行
rs.absolutepage=N将记录指针移到第N页的第一行
rs.pagesize=N设置每页为N条记录
rs.pagecount根据pagesize的设置返回总页数
rs.recordcount返回记录总数
rs.bof返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete删除当前记录,但记录指针不会向下移动
rs.addnew添加记录到数据表末端
rs.update更新数据表记录

 

  • VBscirpt 语言介绍

Microsoft Visual Basic Scripting Edition是程序开发语言Visual Basic家族的最新成员,它将灵活的Script应用于更广泛的领域,包括Microsoft Internet Explorer中的 Web 客户机 Script 和 Microsoft Internet Information Server 中的 Web 服务器 Script。

VBScript使用ActiveX™ Script与宿主应用程序对话。使用ActiveX Script,浏览器和其他宿主应用程序不再需要每个Script部件的特殊集成代码。ActiveX Script使宿主可以编译Script、获取和调用入口点及管理开发者可用的命名空间。通过ActiveX Script,语言厂商可以建立标准Script运行时语言。Microsoft将提供VBScript的运行时支持。Microsoft正在与多个Internet组一起定义ActiveX Script标准以使Script引擎可以互换。ActiveX Script可用在Microsoft® Internet Explorer和Microsoft® Internet Information Server中。

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

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

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

b.Function过程

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

VBScript中可使用下列循环语句:
Do...Loop:当(或直到)条件为True时循环。
While...Wend:当条件为True时循环。
For...Next:指定循环次数,使用计数器重复运行语句。
For Each...Next:对于集合中的每项或数组中的每个元素,重复执行一组语句。

在VBScript中可使用以下条件语句:
If...Then...Else 语句
Select Case 语句

 

 

 

2系统需求分析

 

 (1)系统需要解决的主要问题

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

 

 (2) 系统应该具备的基本功能

 

用户注册:用户可以进行注册,然后登录。

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

试题模型设置:设置各科目试题的每种题型的数量和分值。

试题库管理:分科目,对单选、多选两种题型试题库的管理,使试题的增删、编辑更为简便。

试卷生成:可以指定试卷的各题型的数量,从试题库里随机抽取试题生成一份原始试卷。

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

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

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

除了实现上述功能以外,在线考试系统还应该具有友好、简洁的界面,安全性要高,稳定性要强,能够满足100人以上同时及进行在线考试。

 

 

 

 

 

 

 

 

 

 

 

3系统总体设计

 (1) 运行环境与系统结构

为了保证系统运行的效率和可靠性,系统服务器端应具有较高的软硬件配置,客户端的要求不是很高。此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求如下:

软件环境:

客户端:  Windows95/98/Windows2000/WindowsXP,Internet Explorer(IE)等

服务器端:Windows NT/Windows2000/WindowsXP,Internet Information Server (IIS)4.0及其以上版本,IE等;或者Windows98,Personal Web Server(PWS),IE等。

数据库:采用access,运行于服务器端。

硬件环境:

服务器 CPU:PIII 500以上 ,内存:256M以上

客户机 CPU:P200MMX以上,内存:32M以上 

 (2) 系统结构图

              

图3.1 在线考试系统结构图

 

二方案实施

在进行了整体设计以后,就开始进行详细的设计及编码工作。也就是设计文件和把他们有机地组织在一起实现所有功能。

1 系统流程

根据系统总体设计,首先系统要有一个登录界面,用户可以从该界面登录参加考试。管理员也应该有一个进入管理登录界面的通道。此外,这个界面上还应该有一个用户注册的通道。

在考生正确输入用户名和密码以后,接着应该进入考试科目选择界面。在该界面上,考生选择参加考试的科目,这个人机交互的过程是必不可少的。

考生确定考试科目以后,进入开始考试界面,由计算机随机提取试题,显示出来组成试卷,并开始进行计时。考生再次进行考试,答完试题后交卷,进入下一个界面。

考生提交答卷后,由计算机进行处理--判卷,得出考试分数,显示出来,并把该生考试记录存入数据库。在这个界面上应该可以返回继续进行考试或回到登录界面。

以上是系统进行考试功能的部分,要对系统进行管理,如试题管理、科目管理、用户管理等就需要设计一些管理界面。下面就来逐步进行设计。

要进行管理首先要有管理员登陆验证,这里另外设计了一个界面,使它与用户登录区别开来。这个界面与用户登录界面表面上很相似,但是他们是从不同的表中提取数据进行验证的,以便于系统扩充和增加安全性。

管理员登录以后,应该有一个管理项目选择界面,其中包括管理用户选项、管理管理员选项、管理考试科目选项、管理考试纪录选项以及管理各科试题选项。

管理用户的界面可以实现用户的增加、和删除的功能,管理员在此可以对用户进行管理。

管理管理员的界面,功能和管理用户的差不多,实现对管理员的增加和删除功能。

管理考试科目界面用来增加或删除考试的科目,以方便对各科试题的管理和查询。

管理考试纪录界面可以对考生的每次考试进行纪录,管理员科可以对考生成绩、考试科目、时间及考试各相关纪录进行查询和删除。

最后是试题库管理界面,它根据各科进行分类。通过这个界面管理员可以对题库中的某科试题进行增加、修改或删除。这样就十分方便灵活的对试题库进行管理。

电路网上考试系统设计[点击下载]
  • 上一篇:
  • 下一篇:

评论