S模式的在线考试系统的ASP实现方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于B /S 模式的在线考试系统的ASP 实现方案
何仁刚,姚笑秋!
(浙江海洋学院,浙江
舟山316004)
[摘
要]本文设计了一个基于w eb 的在线考试系统,介绍了采用A SP 技术的实现方案,并详细讲解
了采用A SP 技术实现系统中的数据库连接、随机抽题、自动评卷等技术要点。

[关键词]B /S 模式;A SP ;ADO ;
自动出卷;自动评卷[中图分类号]TP391.76[文献标识码]A [文章编号]1672-9706(2005)01-0070-04
The l m p le m entation of o nli ne e xa m i n g S y ste m based on b /S M ode
~E ren -g an g ;
YAO x iao -C i u (Zhe j ian g O cean uni versit y ,Zhoushan 316004,Chi na )
[Abstract ]T his t hesis desi g ns an exa m i n g -onli ne s y ste m based on t he w eb ,i ntroduces t he i m p le m enta-tion o f t he s y ste m w it h A SP ,
and ex p lai ns t he details about connecti n g database ,selecti n g C uestion at random ,
correcti n g exa m i nation p a p er autom aticall y ,etc .[K e y words ]B row ser /S erver m ode ;acti ve server p a g es ;acti ve x data ob j ect ;autom atic p roble m buil d-i n g ;autom atic score 1
引言
随着I nternet /I ntranet 技术的不断发展,基于B /S 模式的交互式应用程序得到了极大的应用。


此,基于w eb 的开发技术不断出现。

同时,数据库技术与w eb 技术的结合,使得w eb 应用系统功能变得更为强大。

利用这一技术,我们开发了基于w eb 的无纸化客观题考试系统。

相对于传统的试卷测试来说,该系统则有效的解决了传统考试方式所带来的弊端,将传统的有纸化测试分解为试卷生成、考试、批改等诸多环节一次性完成的无纸化测试。

在系统的实现方法上我们采用的是A SP 技术。

A SP (A cti ve S erver Pa g es )是M icroso ft 推出的一种
用于W eb 服务器应用开发的技术,
它通过提供VB scri p t 或者Jscri p t 脚本环境,可用来创建动态、交互的w eb 应用程序。

A SP 文件的后缀为.as p 。

当客户端发出请求访问某个as p 文件时,w eb 服务器响应
~TTP 请求,
并调用as p .dll 对所请求的as p 文件进行解释执行,若操作涉及到数据库的操作,则通过数据库引擎连接后台的数据库服务器,进行相应的数据库操作,并最终将执行的结果再反馈至客户端。

2
系统设计2.1
系统实现平台该系统采用B /S 模式。

因此,
所在的客户端只需要系统自带的浏览器,而无需再安装任何客户端软件。

用户只需要通过浏览器登录到考试系统服务器,即可完成管理员对系统的维护和学生的考试工作。

系统开发环境:程序开发采用M acrom edia D rea mw aver u ltradev4.0,
后台数据库系统采用SGL S erver2000。

2.2
系统实现模型该系统主要包括学生管理模块,考试模块,评分模块,试题维护模块。

各模块主要功能如下:(1)学生管理模块实现学生成绩维护,学生账号维护等。

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
!收稿日期:2005-01-20;修回日期:2005-03-07
作者简介:何仁刚(1979-)
,男,湖北荆州人,浙江海洋学院信息学院教师。

姚笑秋(1980-)
,女,浙江衢州人,
浙江海洋学院信息学院教师。

(2)考试模块主要完成考生登录,
自动随机出卷的工作。

(3)评分模块主要完成自动阅卷,
考分反馈的工作。

(4)试题维护模块主要是管理员完成课程维护,课程试题维护等。

系统各功能模块关系如图1所示。

图1
系统功能模块关系图
3
系统实现3.1数据库结构设计
该系统数据库主要包括课程信息表(sub j ect ),课程试题库表(C uestion )
,学生信息表(st udent ),学生成绩表(score ),管理员账户表(ad m i n )
等。

而这些表中的核心是课程试题库表的设计。

该试题库表(C uestion )
主要字段如表1所示。

表1
试题库表的设计字段名类型含义NO i nt
试题编号C uestion varchar (100)问题内容sub j ect i d i nt 所属课程编号answ er varchar (20)
试题答案C t yp e i nt 试题类型d ifficult y i nt 记录试题的难度系数
be lon g i nt 所属章节score i nt 试题分值havese lected
i nt
试题是否被选中
3.2实现过程中的若干问题
3.2.1A SP 连接到后台数据库的方法
ADO (A cti veX D ata O b j ect )
是一组优化的访问数据库的专用对象集,它为A SP 提供了完整的站点数据库访问解决方案。

ADO 对象在服务器端执行,并向客户端提供含有数据库信息的内容,客户端也可以根据指定的权限返回参数来对数据库进行读写等操作。

因为ADO 是通过ODBC 或OLEDB 驱动来对数据库进行访问的,
所以它可以连接类型的数据库,如A ccess 、S@L S erver 、O racle 、I nf or m i x 等。

在使用ADO 之前要先在ODBC 中添加相应的数据库驱动程序,并创建相应的D SN 。

另外一种方式是可以直接指定其数据库驱动器而不必创建其ODBC 数据
源。

利用ADO 对象集合中的C onnection 对象,
来建立和数据库的连接。

其相应的A SP 代码如下: %
var conn ;var db p at h ;
conn =S erver .C reateO b j ect (“ADODB.C onnection ”);db p at h =S erver .m a p Pat h (“/exa m.m db ”
);conn.O p en (“D ri ver ={m icroso ft A ccess D ri ver ( .m db )};DB@=”+db p at h )
;%
若将该文件保存为conn.as p ,则在需要建立数据库连接的页面只需要引用该文件,如 !———!
何仁刚,姚笑秋:基于B /S 模式的在线考试系统的A SP
实现方案
i nclude file =“conn.as p ”
———!。

3.2.2
随机抽题问题随机抽题需要解决2个方面的问题:一是如何实现试题的随机抽取,二是如何保证不会抽出重复的考题。

要实现随机抽取试题,需要得到一个随机数。

我们所用的方法是利用Jscri p t 中随机数生成函数
M at h.random ()。

若生成N !M (N ,M 为整型数)之间的随机数,其公式为M at h .random ()"
(M-N )+N 。

然后根据随机数在题库中抽取相应的题目,
如var N =0,M=2,random I D ;
random I D=M at h .random ()"(M-N )+N ;
这样random I D 就是0!20之间的一个随机数了。

得到随机数后,再将记录集指针移动至随机指定的记录。

为了保证不会抽到重复的题目,在该题库表中采用了一个字段haveselected ,
用来标记该题是否已经被抽取。

在进行一次试题的抽取之前,每道题的haveselected 字段值初始值都为0,当该题被抽取以
后,将其值改写为1,
表明该题已经被抽取。

然后在完成一次抽题之后,要将所有题目的haveselected 字段的值还原为初始状态0。

主要代码如下所示:
#%
s C l =“select "from C uestion Where m y t yp e =1and haveselected =0”
;//选择没有被抽过的题型为1的题目
rs.O p en (s C l ,conn ,3,3);While (i #nu m ber )//进行某种题型的一次抽题,并且题目个数为nu m ber {var N =0,M=20;var random I D ;
random I D=p arseI nt (M at h .random ()"(M-N )+N )
;if (!rs.EOF ){rs.M ove (random I D );rs (“haveselected ”)=1}
//标记该题已经抽取......}
%!
抽题完成以后,再将各题的haveselected 字段复原。

主要代码如下所示:#%
rs =S erver .c reateO b j ect (
“ADODB.recordset ”);s C l =“select "from C uestion Where haveselected =1”;rs.O p en (s C l ,conn ,3,3)
;While (!rs.EOF &&!rs.BOF ){rs (“haveselected ”)=0;rs.U p date
();rs.M ove N ext ()
;}rs.close
();%!
3.2.3捕捉随机考题的题号问题
在该系统中,每位考生的题目都是随机抽取,每一份试卷都不会雷同。

因此,在系统进行试卷批改之前,必须能够分辨出每份试卷相应的考题。

在该系统中,考生的答案都是通过表单的形式递交到服务器进行处理,因此如何记录每位考生所递交的考题是问题的关键所在。

我们的实现方法是:将随机抽出的所有考题的考题号暂时保存到一个字符串变量(S tri d )中,然后将S tri d 作为一个表单对象———隐藏文本框的初始值递交到服务器。

在服务器端的成绩批改页面,再将隐藏文本框的值(捕捉到的该份试卷的所有题号)一一拆分出来,并且自动保存到数组,此时数组的内容就是每个考题的考题号,这样即可对随
机生成的考题号一一捕捉。

具体方法就是利用j scri p t 中内置的S tri n g 对象,
通过其s p lit 方法将其分割出来。

如系统随机抽取的试题号码为:2,13,56,23,3。

那么S tri d 字符串的值就为:2,13,56,23,3。

考生递交这些考题后,再利用s p lit 方法这个字符串进行拆分,就可以得到每个考题的题号,进而才能进行$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$安徽电气工程职业技术学院学报第十卷第一期
批改。

主要代码如下所示:
!%
s C l =“select "from C uestion Where m y t yp e =1and haveselected =0”
rs.O p en (s C l ,conn ,3,3)While (i !nu m ber ){var N =0,M=20;var random I D ;
random I D=M at h .random ()"(M-N )+N ;
if (!rs.eOF ){rs.M ove (random );rs (“haveselect ”)=1;
}stri d =stri d +S tri n g (rs (“NO ”))+“,
”;//将题号记录下来}
%#!f or m action =“result .as p ”#!i n p ut t yp e =“hi dden ”na m e =“arra y i d ”value =“!%=stri d %#”#!
/f or m #//将stri d 作为隐藏文本框的初始值递交然后在result .as p 页面上,将获得的题号字符串一一拆分出来。

!%
stri n g i d =S erver .~TM Le ncode (R e C uest (“arra y i d ”));m y i d =stri n g i d.s p lit (
“,”);//所有的题号保存到了m y i d 数组里面%#
3.2.4自动阅卷的实现问题
通过3.2.3得到随机抽取的每道题目的题号以后,
再进行批改就非常简单了。

只需要循环将学生递交的每道题的答案和该题的ansW er 字段进行比较。

若两者相一致,则成绩加上该题相应的分值。

主要代码如下:
!%
stri n g i d =S erver .~TM Le ncode (R e C uest (“arra y i d ”));m y i d =stri n g i d.s p lit (
“,”);var len =m y i d.len g t h ;f or (i =0;i !len -1;i ++){rs =S erver .c reateO b j ect (
“ADODB.R ecordset ”);var s C l =“select "from C uestion Where NO=”+m y i d [i ];rs.O p en (s C l ,conn )
;if (rs (“ansW er ”)==R e C uest (“NO ”+m y i d [i ]
))score +=rs (“score ”
);//若答案正确,加上该题的分值。


%#4结束语
本文较为详细的介绍了利用A SP 技术开发基于B /S 模式的在线考试系统的设计和若干实现技术细节。

同时,该系统在我校开始小范围应用,它为学生在网络上进行学习和考试提供了良好的平台,帮助我校学生在课外自学和辅助教师教学中取得了良好的效果。

参考文献:[1]程永敬.A SP 数据访问高级编程[M ].北京:机械工业出版社,2001.[2]董英斌,竹翠.基于网络的新型计算机考试系统[J ].计算机工程杂志,2001,27(8).[3]邓文渊,陈惠贞.A SP 与网络数据库技术[M ].北京:中国铁道出版社,2003.
[责任编辑:程
蓓]
何仁刚,姚笑秋:基于B /S 模式的在线考试系统的A SP $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$实现方案。

相关文档
最新文档