张立新
摘 要:本文介绍了基于ASP技术的新疆旅游专题学习网站建设的背景、设计思路、功能模块和部分模块的实现方法。网站实现的功能主要包括课程信息、教学内容、学习导航、学习交流、制作群体和引用说明等。网站基于Windows Server 2003+IIS6.0平台,利用ASP技术编写代码,数据库采用高性能的MS SQL Server 2000。静态网页使用HTML和JavaScript,动态网页则使用ASP,在核心的数据库使用部分,则使用ASP的ADO操作数据库。其中,本文重点介绍了在线考试模块的实现技术。
关键词:新疆旅游 专题学习网站 ASP
中图分类号: G434文献标识码:B 文章编号:1673-8454(2009)17-0023-04
一、网站设计思路与开发背景
新疆旅游专题学习网站是我中心2007年承接的校内课题,下面以它为例谈谈专题学习网站的设计思想和开发背景。
1.选题
“新疆旅游”是高校旅游专业学生的一门必修课,该课程是对旅游专业知识的有力补充,更是新疆旅游实训与实践的基础课程,因而在旅游专业教学中占有重要地位。该课题就目前我们所了解的情况来看,在新疆高校中尚属首例。建设本专题学习网站的主要意义是以点带面,以新疆旅游这门课程为试点,推动和促进学校的教学改革,实现信息技术与新疆旅游课程的整合。
2.适用对象
该学习网站适用于旅游管理专业、酒店管理专业大专生在教师的指导下进行课堂学习,同时可满足师生在课余时间进行交流和学生自学。
3.教学目标
新疆旅游课程作为旅游管理专业的核心课程,要求学生掌握新疆地理、历史、人文及旅游景点相关知识。同时,该课程还具有一层深远的意义:让每一个新世纪的大学生了解自己的家乡,激发热爱家乡、热爱祖国的美好感情,培养学生的民族自豪感和荣誉感。在学习的过程中,逐渐熟悉自己的家乡,树立扎根边疆、振兴新疆旅游事业的坚定信念。
4.开发背景
新疆旅游是一门主题式的教学课程,在教学过程中应体现学生自主学习、协作学习和探究学习的过程,实现学生与学生、学生与教师、学生与课堂多元评价体系,但长期以来缺少这样一个平台来实现这一目标。同时,在教学过程中我们发现,由于学生人数多,不便于集中管理。除了课堂的面授教学外,存在师生见面机会较少、教学日常通知不能及时发布、学生在学习过程中有问题不能及时求教教师,教学资源不易共享等问题。
新疆旅游专题学习网站开发的目的是为给新疆旅游课程的教学提供一个辅助性的网络教学平台,以改变传统的教学模式,提高新疆旅游课程的教学质量。通过这一平台,教师可以发布公告、提供学习资源,师生可以在BBS中就学习问题共同探讨,学生还可以进行在线学习和测试,对自己的学习效果进行评价。
二、网站主要功能模块和主要页面设计
1.网站的主要功能模块
考虑到实际教学过程中主要存在着教师授课、实践教学、学生自学、师生交流等方面的需要,新疆旅游专题学习网站设计了六个主要的功能模块,分别为课程信息、教学内容、学习导航、学习交流、制作群体和引用说明。其中,为了方便师生交流和学习者在自我评价过程中进行身份识别,学习交流和教学内容中的在线测试两个子模块需要对用户进行身份验证,其他模块均为匿名访问。专题学习网站的功能结构如图l所示。
(1)课程信息
从课程描述、课程计划、课程大纲、教学对象和课程学时等五个方面展开,对新疆旅游课程进行了概述,学生可通过此模块从总体上了解课程的教学目标等概要信息。
(2)教学内容
从网络教材、电子教室、授课录像、相关资源、图像资源、在线测试和复习思考七个方面依据教学大纲要求对新疆旅游课程展开介绍,学习内容图文并茂,编排生动,突出重点,激发了学生的学习积极性。
(3)学习导航
给出了整个网站的结构,方便学生随时进行网站导航和浏览。
(4)学习交流
我们通过开辟讨论区来加强老师和学生的交流,可先让老师当版主来确定要讨论的多个主题,对这部分有兴趣的学生可以在此讨论,学生可以利用所学知识,充分发表自己的观点,遇到问题也可以通过提问讨论,将一些课堂上没有解决的问题放在这里来解决。论坛分为师生课程教学交流、教改研究与效果反馈、课程学习与心得交流、户外郊游、疑难解答五个版面,所有的任课教师出任各个版面的版主,对帖子进行管理。
(5)制作群体
给出了网站制作团队的名单。
(6)引用说明
给出了专题学习网站相关的资源链接,对本网站进行必要的外部资源补充。
2.主要页面设计
网站主页面采用上左右结构,上方为主要的菜单导航条,左侧为次要菜单导航条,右侧为内容区。学生机房使用的计算机显示器分辨率大多为800×600(单位:像素),除去浏览器边框以后可视范围为778×423,网站主要页面都采用一个宽度为778像素的表格来控制页面尺寸。
3.系统的开发工具及实现
(1)系统的开发工具
网站前台采用ASP技术,后台数据库使用MS SQL Server 2000。页面相关部分使用Dreamweaver 2008设计,而网站与数据库的连接使用ASP提供的ADO(ActiveX Data Objects)技术实现。ASP是Active Server Pages(活动服务器页面)的简称,它是Microsoft推出的服务器端脚本编写环境,使用它可以创建和运行动态、交互的Web服务器应用程序。通过ODBC(Open Database Connectivity)接口,不仅可以访问Access、FoxPro、SQL Server等数据库,而且还可以使用提供了ODBC驱动程序的第三方产品。ADO是ASP内置的Active X服务器组件,它提供高效连接ODBC数据库或OLE(Object Linking and Embedding)DB数据源的功能,可以把它与ASP结合起来,建立提供数据库信息的网页内容,对数据库进行查询、插入、更新和删除。脚本语言则使用了VBScript(Visual Basic Script)。
(2)部分模块的系统实现
由于篇幅有限,本文仅重点介绍教学内容模块中的在线测试子模块的系统实现。在线测试子模块实现在线考试的功能,在线考试是专题学习网站中必不可少的功能之一,其功能模块主要包括注册和登录、在线考试、在线管理(包括用户管理和试卷管理)和在线阅卷。这里主要介绍其中的“在线考试”模块的设计。
1)数据库设计
根据系统功能设计的要求,同时考虑到新疆旅游课程的老师自己已在以前的教学中用Microsoft Excel建设了单选、多选和判断题题库,为继续方便老师的使用和维护,并使老师能及时更新题库,我们以此Excel工作簿来作为在线考试系统的数据库(这里起名为test.xls),主要包括四个工作表,即四个数据表:单选、多选、判断和用户表。其数据项和数据结构如表1所示。
2)数据库连接和数据库操作
数据库连接通过ADO对象模型中的Connection对象进行。首先建立一个Connection对象实例。
Set conn=Server.CreateObject (“ADODB.Connection”)
然后使用Connection对象的Open方法打开数据库(这里是Excel工作簿):
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False; Data Source=" & Server.MapPath(“test.xls”) & ";Extended Properties='Excel 8.0;HDR=Yes'"
如果打开的是Access 数据库,则用如下语句打开数据库:
Conn.Open “Driver={Microsoft Access Driver(*.mdb)};Dbq=” & Server.MapPath(“test.mdb”)
当需要进行数据表(这里是Excel工作表)操作的时候,建立一个Recordset对象:
Set rs=Server.Createobject(“Adodb.Recordset”)
使用连接对象的Execute方法对数据表(Excel工作表)进行操作,其主要语法为:
Set rs=Conn.Execute(sql),使用SQL语句操作数据表,并将结果返回给一个Recordset对象rs。
操作结束后,关闭数据库(Excel工作簿)和记录集对象:
rs.Close
Set rs=Nothing
Conn.Close
Set Conn= Nothing
3)为方便用户的使用,这里容许用户随意输入班级和姓名进行登录和测试。登录进去后,用户可选择单选、多选和判断题的题目数量,然后由系统进行随机抽题后呈现给用户指定数目的题型,用户可在限定时间内完成测试并提交,系统可立即进行评分,并给出评分结果,同时给出正确答案。
①生成试卷
对登录进来的用户,系统自动按各单选、多选和判断题试题类型的默认题目数量随机生成试卷。用户也可以重新指定各单选、多选和判断题的题目生成数量。
在这里,可设计一个随机抽取试题的函数,传入参数为试卷类型(单选、多选或判断题)、随机抽题的数目和抽取的字段名,返回值为一个逗号隔开的按指定数目从该题型中随机抽取的不重复题号列表字符串(如:“,32,8,21,65,”)。其基本思路如下:
a. 根据传入参数里的试卷类型和抽取的字段名确定从指定的工作表中提取指定字段的值,即生成相应的select 查询字符串;
b. 确定工作簿中的相关工作表类型中可供选择的题目的数目(总记录数);
c. 后面要使用随机变量,必须知道它的取值范围,所以根据传入参数确定随机抽题的数目,如果大于总记录数,则随机抽题的数目赋值为总记录数,如果小于等于0,则赋值为某个常数值(如5);
d. 按照上述步骤最终确定的随机抽题数目,扫描工作表的题号字段,通过产生不重复随机数的算法,从所有有效的题目中,生成一个逗号隔开的不重复题号列表字符串。
完整函数代码如下:
Function GetRndNumberStr(mSheetName,mcnt1,mField)
‘变量声明
Dim str,str1,cnt,cnt1,rndMax,RndNumber, recno
Dim SheetName,RsExcel,sqlExcel
‘1部分
SheetName=mSheetName
sqlExcel="select " & mField & " from [" & SheetName & "$] "
Set RsExcel = Server.CreateObject("ADODB.Recordset")
Set RsExcel.ActiveConnection = Conn_Excel
RsExcel.LockType = adLockOptimistic
RsExcel.CursorType = adOpenKeySet
RsExcel.Open sqlExcel, Conn_Excel
‘2部分
RsExcel.MoveLast
cnt = RsExcel.RecordCount
‘3部分
mcnt1=Clng(mcnt1)
cnt=Clng(cnt)
cnt1 = cnt
rndMax = cnt
recno = 0
if mcnt1>cnt then
mcnt1=cnt
end if
if mcnt1<=0 then
mcnt1=5
end if
cnt1=mcnt1
‘4部分
str = ","
str1 = ","
Do Until cnt1 = 0 or recno>cnt
‘产生随机数
Randomize
RndNumber = Int(Rnd * rndMax)
‘保证产生的随机数不重复
If (InStr(1,str1,"," & RndNumber & ",") = 0) Then
str1 = str1 & RndNumber & ","
cnt1 = cnt1 - 1
RsExcel.MoveFirst
RsExcel.MoveRndNumber
‘生成一个逗号隔开的按指定数目从该题型中随机抽取的不重复题号列表字符串
str = str & Cstr(RsExcel(mField)) & ","
recno = recno + 1
End If
Loop
RsExcel.Close
Set RsExcel = Nothing
GetRndNumberStr=str
End Function
②接下来,可通过如下SQL语句调用该随机抽题函数,从指定试题库(单选、多选和判断题)中查找所有题号在返回的随机抽取的题号字符串里的试题,并读取试题内容显示在页面上,生成指定题型和数目的试卷。
sqlExcel = "SELECT * FROM [试题库$] WHERE ((InStr(1,′" & GetRndNumberStr("单选",30,"题号") & "′,(′,′ & [题号] & ′,′)))<>0)"
三、总结
新疆旅游专题学习网站投入使用后运行稳定,响应速度较快。使用此专题学习网站学生不仅可以浏览教学课件,
还可以进行课后练习和模拟测验。由于模拟测验是采用随机抽题的方式组卷,因此其与静态试卷表单相比,具有组卷方式灵活、试题更新方便等特点。另外,互动空间的各交流版面也为师生提供了一个课后交流的场所。学生在学习中遇到了问题可以及时获得解答,大大提高了学生学习的兴趣。
参考文献:
[1]庞娅娟.ASP网络编程自学手册[M].北京:人民邮电出版社,2008.3.
[2]王晶. ASP网站建设技术[M].北京:机械工业出版社,2007.6.
[3]刘炀.ASP网络程序设计[M].合肥:合肥工业大学出版社,2007.2.
[4]薛小龙.ASP典型系统实战与解析[M].北京:电子工业出版社,2007.1.
[5]陶国荣.ASP动态商业网站建设案例[M].北京:人民邮电出版社,2006.12.