用ASP实现基于B/S模式下的在线考试系统

龙源期刊网 http://www.qikan.com.cn

用ASP实现基于B/S模式下的在线考试系统

作者:赵 伟

来源:《硅谷》2009年第02期

[摘要]分析在线考试的优点,研究在线考试系统的总体设计,及在线考试系统最终的实现。

[关键词]在线考试系统 B/S模式 ASP Microsoft Office Access2003 数据库 中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0120044-01

随着Internet/Intranet的迅速发展和广泛普及,建立在其上的远程教育成为现代教育技术未来发展方向之一,在线考试作为远程教育的一个子系统也成为一个重要的研究课题。目前,网络软件运行的模式主要有Client/Server(C/S)模式和Browse/Server(B/S)模式两类。C/S模式通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势,但在维护、升级方面较麻烦,早期的软件系统多以此作为首选设计标准;B/S模式是随着Internet技术的兴起,对C/S结构的一种变化或者说改进。在此结构下,用户界面完全通过WWW浏览器实现,少部分事务逻辑在浏览器端实现,主要事务逻辑在服务器端实现。B/S结构,主要利用WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种相当实用的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构,在操作上简便,效率高,但对计算机的配置要求也很高,尤其是服务器端。

一、在线考试系统的开发/运行环境及相关技术问题介绍

(一)在线考试系统的开发环境 操作系统:Microsoft Windows XP。

开发工具:Internet Information Server、ASP Dreamweaver 8.0、Flash 8.0、PhotoshopCS2。

龙源期刊网 http://www.qikan.com.cn

数据库:Microsoft Office Access2003数据库。 (二)在线考试系统的运行环境

客户端:IE 5.0以上等可解释常规HTML码的浏览器。

服务器端:Microsoft Windows 2000以上、Internet Information Server具有Active X Server Component功能。

(三)在线考试系统的需求分析与技术问题

在线考试面向在校生,为避免他人的进入,登录考试系统需要身份验证,再根据自己的学习情况,选择训练或考试。在线考试由于是单机进行,考试地点可能在机房等机器相距密集的场所,为做到规范、公平和公正,必须保证对每位应试者:题量相等、内容不同,因此要求试卷在基于网络环境下,从服务器的数据库中随机抽取动态生成。为控制学生考试次数,在试题生成时还需要进行考试权限的验证。另外,还要求在限定的时间内完成,否则自动结束考试,交卷后自动评分、当场显示成绩及考试机会。同时为了提高学生的学习效率和考试及格率,给学生提供实时训练,及答案参考,以便学生进行自我检测和自我评估。 系统的基本功能模块的技术问题:

1.用户登录模块:要求与管理员录入的数据库进行对比验证以获取登录权限; 2.在线教学模块:利用在线新闻、教学视频等给学生提供知识点回顾、新知识介绍等; 3.模拟训练模块:给学生提供模拟考试环境,并提供参考答案;

4.综合考试模块:为学生提供在线考试,系统实现判断、单选、多选等考题的自动、随机、不重复的抽取,时间的监控与权限的控制,交卷后自动评分、即时显示成绩与考试的机会状况等;

5.成绩查询模块:为师生提供查询成绩的平台;

6.系统管理模块:为管理员和任课教师提供人员的信息管理、密码设定与修改、成绩打印等诸多方面的功能。

二、在线考试系统的设计思想、分析和具体实现

龙源期刊网 http://www.qikan.com.cn

1.基本设计思想:基于B/S模式的前提,要实现在线考试系统的设计,首先解决网页与数据库的连接问题,本系统采用ADO对象实现数据库的访问,即在ASP脚本中构造一个ADO的Connection对象去连接Microsoft Office Access2003数据库,然后通过Command和RecordSet对象实现对数据库的操作;其次利用ASP内置对象Request和Response等完成对页面的访问;同时利用Session对象完成用户在多页面间跳转时的信息共享。 2.系统设计流程图如图1所示:

3.系统主要功能随机抽取考试题部分的实现方法:本系统中的判断题、单选题和多选题的抽题部分相互独立,但抽题的算法相类似,因此下面仅以判断题为例,给出抽题的关键代码。 i1=1 i2=0 for i1=1 to 15 dimsqlstr m=19 n=1 randomize

r1=int(rnd()*m-n+1)+n

for i=1 to session(\

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4