首页 -> 2007年第2期

运用ASP设计网络考试系统思路浅探

作者:崔明山




  [摘 要] 本文讨论了运用ASP设计网络考试系统主要技术和过程。网络考试系统采用Browser/Server模式,Windows下的ASP编程技术、ADO技术、Access数据库。实现了用户管理、试题管理、随机组卷、在线考试、自动阅卷、成绩查询等功能。教师利用该系统能实现对考试的自动化管理,提高教学效率。
  [关键词] 网络考试 ASP B/S ADO
  
  随着计算机网络技术的日趋成熟,网络考试这一新颖的方式被广泛应用。网络考试与传统的考试形式相比,减少了出卷,批改试卷,安排考场等工作所需的精力和时间,具有组织考试简单方便的优点。当前还没有一个能适合各种各样考试的通用网络考试系统,但如果掌握了ASP技术,完全可以自己开发设计出适合教学要求的网络考试系统。本文结合笔者平时开发系统的经验,对运用ASP设计网络考试系统的思路进行探讨。
  
  一、网络考试系统的结构
  
  现在常见的网络开发模式分为:C/S (Clint/Server) 模式及B/S(Browser/Server)模式。C/S (Clint/Server) 模式主要是运用于以局域网为基础的环境下,它受到地域的限制。而B/S(Browser/Server)模式通过Internet进行通信,可以不受地域的限制,但是它不能进行联机事务处理,而且在大量数据处理的情况下,速度较慢。从目前的开发技术来看,Browser端作为信息收集源,特别是大量的数据录入工作还不能完全取代Client端的用户界面。
  对于本文中实现的考试系统,其功能目标是实现将现有的纸张答题式考试向基于网络的无纸张考试系统的转变,实现题库管理、试卷管理、在线考试、分数查询等功能以及对用户信息的管理。由于系统对数据收集的实时性并不高,因此采用Browser/Server模式结构来进行设计是合理可行的。
  采用B/S模式的网络考试系统基于Web技术开发,用户界面均以网页形式显示。整个系统按客户端浏览器层、中间Web服务器层、数据库存取层三层结构来设计。系统结构如图1所示:
  
  第一层是客户端浏览器,它是用户与系统的接口。浏览器将从Web服务器下载得到的Web页转化成用户界面显示在用户端,同时它接收用户的输入,并向Web服务器提出进一步的处理请求。
  第二层是Web服务器,它根据客户端的请求启动相应的程序来完成有关的事务处理,并将处理结果以HTML代码的形式返回给客户端浏览器,实现用户界面的显示。Web服务器主要事务包括:用户的验证和登记、试卷的随机产生、自动阅卷、保存成绩等。Web服务器还要实现与数据库的连接,通过ADO技术实现对数据库的查询、更新等操作。
  第三层是数据库服务器,它负责网络考试系统试题库的管理。
  B/S的三层结构使得开发的应用程序只需编写一次就能随处运行,对软件功能的扩展仅仅需要对服务器端软件进行修改就能使所有用户同时升级至新功能。
  
  二、系统实现的功能
  
  通过分析平时测验以及期中、期末考试的流程,网络考试系统主要由以下几个功能模块构成:
  1.用户登录验证模块。主要功能是识别用户输入的用户名和密码,对用户的身份作出判断,将用户的浏览器导向对应的页面。如果是考生,通过密码验证后,浏览器显示考试模块的主界面;如果是管理员,浏览器显示管理模块的主界面;如果验证不通过,提示用户重新输入。
  2.考生考试模块。考生登录验证通过后显示科目选择界面,根据考生选择的科目,服务器端调用随机抽题程序,组成一份完整的试卷并返回客户端显示供考生在线考试,同时开始考试计时。当考生完成考试点击交卷或考试时间到自动交卷时,服务器调用阅卷程序进行试卷批改同时计算总分存入数据库。
  3.考试管理模块。由以下几个小模块组成:
  (1)用户管理:实现用户(考生和管理员)的增加、修改、删除。
  (2)题库管理:新增、修改、删除试题库中的题目以及新增、修改、删除考试科目以及每科的题型。
  (3)试卷管理:查询、删除参加在线考试考生的试卷。
  (4)成绩管理:查询、删除学生成绩。
  4.帮助模块。显示系统的功能以及使用方法。
  
  三、系统实现的主要技术
  
  1.ASP技术。
  ASP(Active Server Pages)是Microsoft 公司推出的Web应用程序开发技术。当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。用户端不用进行任何配置便可浏览。由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。
  2. 数据库技术。
  设计的网络考试系统是为了用于平时的教学,要存储的数据量并不是太大。因此系统采用ACCESS数据库就能满足要求。整个系统的数据库分别由用户表、试题表、成绩登记表、科目表组成、试卷表。用户表存储所有用户(考生和管理员)的基本信息,试题表存储了所有考题,成绩登记表存储考生考过科目的分数及相应开始与结束时间, 科目表存储当前系统提供考试的科目名称以及各种题型的分值,试卷表存放在线考试考生的试卷。
  3. ADO技术。
  ADO(ActiveX Data Objects)是一种操作Microsoft所支持的数据库的技术。在ASP中,ADO可以看作是一个服务器组件,更简单点说,是一系列的对象,应用这些功能强大的对象,即可完成对数据库复杂的操作。本系统中页面的实现大量地用到了ADO技术。
  
  四、主要功能模块的设计
  
  1.数据库连接和存取的设计。
  ASP程序利用ADO对象通过ODBC驱动程序与数据库连接,实现对数据库的存取等操作。主要分三个步骤:先创建ADO对象,然后通过ADO对象的方法连接或操作数据库,最后要关闭对象。用于数据库连接的是CONNECTION对象,用于存取数据的是RecordSet对象。用CONNECTION对象的Execute方法执行SQL语句可以实现对数据库的查询、插入、更新等操作,查询得到的数据保存在RecordSet对象中。
  连接数据库代码:
  set Conn=Server.createObject(“ADOBD.CONNECTION”)&&创建链接对象“conn”
  connstr=“DBQ=”+server.mappath(“试题库.mdb”)+“;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)}”
  conn.open connstr&&打开链接
  这段代码可以放在一个单独的文件conn.asp中,在其它要连接数据的程序中包含文件conn.asp即可。
  操作数据库代码举例:
  set rs= server.createobject(“adodb.recordset”) &&创建RecordSet对象“rs”
  sqlstr=“SELECT * FROM student”&&SQL语句
  Set rs=Conn.Execute(sqlstr)&&执行SQL语句并将得到的数据放到“rs”中
  

[2]