張立新
摘 要:本文介紹了基于ASP技術(shù)的新疆旅游專(zhuān)題學(xué)習(xí)網(wǎng)站建設(shè)的背景、設(shè)計(jì)思路、功能模塊和部分模塊的實(shí)現(xiàn)方法。網(wǎng)站實(shí)現(xiàn)的功能主要包括課程信息、教學(xué)內(nèi)容、學(xué)習(xí)導(dǎo)航、學(xué)習(xí)交流、制作群體和引用說(shuō)明等。網(wǎng)站基于Windows Server 2003+IIS6.0平臺(tái),利用ASP技術(shù)編寫(xiě)代碼,數(shù)據(jù)庫(kù)采用高性能的MS SQL Server 2000。靜態(tài)網(wǎng)頁(yè)使用HTML和JavaScript,動(dòng)態(tài)網(wǎng)頁(yè)則使用ASP,在核心的數(shù)據(jù)庫(kù)使用部分,則使用ASP的ADO操作數(shù)據(jù)庫(kù)。其中,本文重點(diǎn)介紹了在線考試模塊的實(shí)現(xiàn)技術(shù)。
關(guān)鍵詞:新疆旅游 專(zhuān)題學(xué)習(xí)網(wǎng)站 ASP
中圖分類(lèi)號(hào): G434文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1673-8454(2009)17-0023-04
一、網(wǎng)站設(shè)計(jì)思路與開(kāi)發(fā)背景
新疆旅游專(zhuān)題學(xué)習(xí)網(wǎng)站是我中心2007年承接的校內(nèi)課題,下面以它為例談?wù)剬?zhuān)題學(xué)習(xí)網(wǎng)站的設(shè)計(jì)思想和開(kāi)發(fā)背景。
1.選題
“新疆旅游”是高校旅游專(zhuān)業(yè)學(xué)生的一門(mén)必修課,該課程是對(duì)旅游專(zhuān)業(yè)知識(shí)的有力補(bǔ)充,更是新疆旅游實(shí)訓(xùn)與實(shí)踐的基礎(chǔ)課程,因而在旅游專(zhuān)業(yè)教學(xué)中占有重要地位。該課題就目前我們所了解的情況來(lái)看,在新疆高校中尚屬首例。建設(shè)本專(zhuān)題學(xué)習(xí)網(wǎng)站的主要意義是以點(diǎn)帶面,以新疆旅游這門(mén)課程為試點(diǎn),推動(dòng)和促進(jìn)學(xué)校的教學(xué)改革,實(shí)現(xiàn)信息技術(shù)與新疆旅游課程的整合。
2.適用對(duì)象
該學(xué)習(xí)網(wǎng)站適用于旅游管理專(zhuān)業(yè)、酒店管理專(zhuān)業(yè)大專(zhuān)生在教師的指導(dǎo)下進(jìn)行課堂學(xué)習(xí),同時(shí)可滿足師生在課余時(shí)間進(jìn)行交流和學(xué)生自學(xué)。
3.教學(xué)目標(biāo)
新疆旅游課程作為旅游管理專(zhuān)業(yè)的核心課程,要求學(xué)生掌握新疆地理、歷史、人文及旅游景點(diǎn)相關(guān)知識(shí)。同時(shí),該課程還具有一層深遠(yuǎn)的意義:讓每一個(gè)新世紀(jì)的大學(xué)生了解自己的家鄉(xiāng),激發(fā)熱愛(ài)家鄉(xiāng)、熱愛(ài)祖國(guó)的美好感情,培養(yǎng)學(xué)生的民族自豪感和榮譽(yù)感。在學(xué)習(xí)的過(guò)程中,逐漸熟悉自己的家鄉(xiāng),樹(shù)立扎根邊疆、振興新疆旅游事業(yè)的堅(jiān)定信念。
4.開(kāi)發(fā)背景
新疆旅游是一門(mén)主題式的教學(xué)課程,在教學(xué)過(guò)程中應(yīng)體現(xiàn)學(xué)生自主學(xué)習(xí)、協(xié)作學(xué)習(xí)和探究學(xué)習(xí)的過(guò)程,實(shí)現(xiàn)學(xué)生與學(xué)生、學(xué)生與教師、學(xué)生與課堂多元評(píng)價(jià)體系,但長(zhǎng)期以來(lái)缺少這樣一個(gè)平臺(tái)來(lái)實(shí)現(xiàn)這一目標(biāo)。同時(shí),在教學(xué)過(guò)程中我們發(fā)現(xiàn),由于學(xué)生人數(shù)多,不便于集中管理。除了課堂的面授教學(xué)外,存在師生見(jiàn)面機(jī)會(huì)較少、教學(xué)日常通知不能及時(shí)發(fā)布、學(xué)生在學(xué)習(xí)過(guò)程中有問(wèn)題不能及時(shí)求教教師,教學(xué)資源不易共享等問(wèn)題。
新疆旅游專(zhuān)題學(xué)習(xí)網(wǎng)站開(kāi)發(fā)的目的是為給新疆旅游課程的教學(xué)提供一個(gè)輔助性的網(wǎng)絡(luò)教學(xué)平臺(tái),以改變傳統(tǒng)的教學(xué)模式,提高新疆旅游課程的教學(xué)質(zhì)量。通過(guò)這一平臺(tái),教師可以發(fā)布公告、提供學(xué)習(xí)資源,師生可以在BBS中就學(xué)習(xí)問(wèn)題共同探討,學(xué)生還可以進(jìn)行在線學(xué)習(xí)和測(cè)試,對(duì)自己的學(xué)習(xí)效果進(jìn)行評(píng)價(jià)。
二、網(wǎng)站主要功能模塊和主要頁(yè)面設(shè)計(jì)
1.網(wǎng)站的主要功能模塊
考慮到實(shí)際教學(xué)過(guò)程中主要存在著教師授課、實(shí)踐教學(xué)、學(xué)生自學(xué)、師生交流等方面的需要,新疆旅游專(zhuān)題學(xué)習(xí)網(wǎng)站設(shè)計(jì)了六個(gè)主要的功能模塊,分別為課程信息、教學(xué)內(nèi)容、學(xué)習(xí)導(dǎo)航、學(xué)習(xí)交流、制作群體和引用說(shuō)明。其中,為了方便師生交流和學(xué)習(xí)者在自我評(píng)價(jià)過(guò)程中進(jìn)行身份識(shí)別,學(xué)習(xí)交流和教學(xué)內(nèi)容中的在線測(cè)試兩個(gè)子模塊需要對(duì)用戶進(jìn)行身份驗(yàn)證,其他模塊均為匿名訪問(wèn)。專(zhuān)題學(xué)習(xí)網(wǎng)站的功能結(jié)構(gòu)如圖l所示。
(1)課程信息
從課程描述、課程計(jì)劃、課程大綱、教學(xué)對(duì)象和課程學(xué)時(shí)等五個(gè)方面展開(kāi),對(duì)新疆旅游課程進(jìn)行了概述,學(xué)生可通過(guò)此模塊從總體上了解課程的教學(xué)目標(biāo)等概要信息。
(2)教學(xué)內(nèi)容
從網(wǎng)絡(luò)教材、電子教室、授課錄像、相關(guān)資源、圖像資源、在線測(cè)試和復(fù)習(xí)思考七個(gè)方面依據(jù)教學(xué)大綱要求對(duì)新疆旅游課程展開(kāi)介紹,學(xué)習(xí)內(nèi)容圖文并茂,編排生動(dòng),突出重點(diǎn),激發(fā)了學(xué)生的學(xué)習(xí)積極性。
(3)學(xué)習(xí)導(dǎo)航
給出了整個(gè)網(wǎng)站的結(jié)構(gòu),方便學(xué)生隨時(shí)進(jìn)行網(wǎng)站導(dǎo)航和瀏覽。
(4)學(xué)習(xí)交流
我們通過(guò)開(kāi)辟討論區(qū)來(lái)加強(qiáng)老師和學(xué)生的交流,可先讓老師當(dāng)版主來(lái)確定要討論的多個(gè)主題,對(duì)這部分有興趣的學(xué)生可以在此討論,學(xué)生可以利用所學(xué)知識(shí),充分發(fā)表自己的觀點(diǎn),遇到問(wèn)題也可以通過(guò)提問(wèn)討論,將一些課堂上沒(méi)有解決的問(wèn)題放在這里來(lái)解決。論壇分為師生課程教學(xué)交流、教改研究與效果反饋、課程學(xué)習(xí)與心得交流、戶外郊游、疑難解答五個(gè)版面,所有的任課教師出任各個(gè)版面的版主,對(duì)帖子進(jìn)行管理。
(5)制作群體
給出了網(wǎng)站制作團(tuán)隊(duì)的名單。
(6)引用說(shuō)明
給出了專(zhuān)題學(xué)習(xí)網(wǎng)站相關(guān)的資源鏈接,對(duì)本網(wǎng)站進(jìn)行必要的外部資源補(bǔ)充。
2.主要頁(yè)面設(shè)計(jì)
網(wǎng)站主頁(yè)面采用上左右結(jié)構(gòu),上方為主要的菜單導(dǎo)航條,左側(cè)為次要菜單導(dǎo)航條,右側(cè)為內(nèi)容區(qū)。學(xué)生機(jī)房使用的計(jì)算機(jī)顯示器分辨率大多為800×600(單位:像素),除去瀏覽器邊框以后可視范圍為778×423,網(wǎng)站主要頁(yè)面都采用一個(gè)寬度為778像素的表格來(lái)控制頁(yè)面尺寸。
3.系統(tǒng)的開(kāi)發(fā)工具及實(shí)現(xiàn)
(1)系統(tǒng)的開(kāi)發(fā)工具
網(wǎng)站前臺(tái)采用ASP技術(shù),后臺(tái)數(shù)據(jù)庫(kù)使用MS SQL Server 2000。頁(yè)面相關(guān)部分使用Dreamweaver 2008設(shè)計(jì),而網(wǎng)站與數(shù)據(jù)庫(kù)的連接使用ASP提供的ADO(ActiveX Data Objects)技術(shù)實(shí)現(xiàn)。ASP是Active Server Pages(活動(dòng)服務(wù)器頁(yè)面)的簡(jiǎn)稱(chēng),它是Microsoft推出的服務(wù)器端腳本編寫(xiě)環(huán)境,使用它可以創(chuàng)建和運(yùn)行動(dòng)態(tài)、交互的Web服務(wù)器應(yīng)用程序。通過(guò)ODBC(Open Database Connectivity)接口,不僅可以訪問(wèn)Access、FoxPro、SQL Server等數(shù)據(jù)庫(kù),而且還可以使用提供了ODBC驅(qū)動(dòng)程序的第三方產(chǎn)品。ADO是ASP內(nèi)置的Active X服務(wù)器組件,它提供高效連接ODBC數(shù)據(jù)庫(kù)或OLE(Object Linking and Embedding)DB數(shù)據(jù)源的功能,可以把它與ASP結(jié)合起來(lái),建立提供數(shù)據(jù)庫(kù)信息的網(wǎng)頁(yè)內(nèi)容,對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢、插入、更新和刪除。腳本語(yǔ)言則使用了VBScript(Visual Basic Script)。
(2)部分模塊的系統(tǒng)實(shí)現(xiàn)
由于篇幅有限,本文僅重點(diǎn)介紹教學(xué)內(nèi)容模塊中的在線測(cè)試子模塊的系統(tǒng)實(shí)現(xiàn)。在線測(cè)試子模塊實(shí)現(xiàn)在線考試的功能,在線考試是專(zhuān)題學(xué)習(xí)網(wǎng)站中必不可少的功能之一,其功能模塊主要包括注冊(cè)和登錄、在線考試、在線管理(包括用戶管理和試卷管理)和在線閱卷。這里主要介紹其中的“在線考試”模塊的設(shè)計(jì)。
1)數(shù)據(jù)庫(kù)設(shè)計(jì)
根據(jù)系統(tǒng)功能設(shè)計(jì)的要求,同時(shí)考慮到新疆旅游課程的老師自己已在以前的教學(xué)中用Microsoft Excel建設(shè)了單選、多選和判斷題題庫(kù),為繼續(xù)方便老師的使用和維護(hù),并使老師能及時(shí)更新題庫(kù),我們以此Excel工作簿來(lái)作為在線考試系統(tǒng)的數(shù)據(jù)庫(kù)(這里起名為test.xls),主要包括四個(gè)工作表,即四個(gè)數(shù)據(jù)表:單選、多選、判斷和用戶表。其數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如表1所示。
2)數(shù)據(jù)庫(kù)連接和數(shù)據(jù)庫(kù)操作
數(shù)據(jù)庫(kù)連接通過(guò)ADO對(duì)象模型中的Connection對(duì)象進(jìn)行。首先建立一個(gè)Connection對(duì)象實(shí)例。
Set conn=Server.CreateObject (“ADODB.Connection”)
然后使用Connection對(duì)象的Open方法打開(kāi)數(shù)據(jù)庫(kù)(這里是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'"
如果打開(kāi)的是Access 數(shù)據(jù)庫(kù),則用如下語(yǔ)句打開(kāi)數(shù)據(jù)庫(kù):
Conn.Open “Driver={Microsoft Access Driver(*.mdb)};Dbq=” & Server.MapPath(“test.mdb”)
當(dāng)需要進(jìn)行數(shù)據(jù)表(這里是Excel工作表)操作的時(shí)候,建立一個(gè)Recordset對(duì)象:
Set rs=Server.Createobject(“Adodb.Recordset”)
使用連接對(duì)象的Execute方法對(duì)數(shù)據(jù)表(Excel工作表)進(jìn)行操作,其主要語(yǔ)法為:
Set rs=Conn.Execute(sql),使用SQL語(yǔ)句操作數(shù)據(jù)表,并將結(jié)果返回給一個(gè)Recordset對(duì)象rs。
操作結(jié)束后,關(guān)閉數(shù)據(jù)庫(kù)(Excel工作簿)和記錄集對(duì)象:
rs.Close
Set rs=Nothing
Conn.Close
Set Conn= Nothing
3)為方便用戶的使用,這里容許用戶隨意輸入班級(jí)和姓名進(jìn)行登錄和測(cè)試。登錄進(jìn)去后,用戶可選擇單選、多選和判斷題的題目數(shù)量,然后由系統(tǒng)進(jìn)行隨機(jī)抽題后呈現(xiàn)給用戶指定數(shù)目的題型,用戶可在限定時(shí)間內(nèi)完成測(cè)試并提交,系統(tǒng)可立即進(jìn)行評(píng)分,并給出評(píng)分結(jié)果,同時(shí)給出正確答案。
①生成試卷
對(duì)登錄進(jìn)來(lái)的用戶,系統(tǒng)自動(dòng)按各單選、多選和判斷題試題類(lèi)型的默認(rèn)題目數(shù)量隨機(jī)生成試卷。用戶也可以重新指定各單選、多選和判斷題的題目生成數(shù)量。
在這里,可設(shè)計(jì)一個(gè)隨機(jī)抽取試題的函數(shù),傳入?yún)?shù)為試卷類(lèi)型(單選、多選或判斷題)、隨機(jī)抽題的數(shù)目和抽取的字段名,返回值為一個(gè)逗號(hào)隔開(kāi)的按指定數(shù)目從該題型中隨機(jī)抽取的不重復(fù)題號(hào)列表字符串(如:“,32,8,21,65,”)。其基本思路如下:
a. 根據(jù)傳入?yún)?shù)里的試卷類(lèi)型和抽取的字段名確定從指定的工作表中提取指定字段的值,即生成相應(yīng)的select 查詢字符串;
b. 確定工作簿中的相關(guān)工作表類(lèi)型中可供選擇的題目的數(shù)目(總記錄數(shù));
c. 后面要使用隨機(jī)變量,必須知道它的取值范圍,所以根據(jù)傳入?yún)?shù)確定隨機(jī)抽題的數(shù)目,如果大于總記錄數(shù),則隨機(jī)抽題的數(shù)目賦值為總記錄數(shù),如果小于等于0,則賦值為某個(gè)常數(shù)值(如5);
d. 按照上述步驟最終確定的隨機(jī)抽題數(shù)目,掃描工作表的題號(hào)字段,通過(guò)產(chǎn)生不重復(fù)隨機(jī)數(shù)的算法,從所有有效的題目中,生成一個(gè)逗號(hào)隔開(kāi)的不重復(fù)題號(hào)列表字符串。
完整函數(shù)代碼如下:
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
‘產(chǎn)生隨機(jī)數(shù)
Randomize
RndNumber = Int(Rnd * rndMax)
‘保證產(chǎn)生的隨機(jī)數(shù)不重復(fù)
If (InStr(1,str1,"," & RndNumber & ",") = 0) Then
str1 = str1 & RndNumber & ","
cnt1 = cnt1 - 1
RsExcel.MoveFirst
RsExcel.MoveRndNumber
‘生成一個(gè)逗號(hào)隔開(kāi)的按指定數(shù)目從該題型中隨機(jī)抽取的不重復(fù)題號(hào)列表字符串
str = str & Cstr(RsExcel(mField)) & ","
recno = recno + 1
End If
Loop
RsExcel.Close
Set RsExcel = Nothing
GetRndNumberStr=str
End Function
②接下來(lái),可通過(guò)如下SQL語(yǔ)句調(diào)用該隨機(jī)抽題函數(shù),從指定試題庫(kù)(單選、多選和判斷題)中查找所有題號(hào)在返回的隨機(jī)抽取的題號(hào)字符串里的試題,并讀取試題內(nèi)容顯示在頁(yè)面上,生成指定題型和數(shù)目的試卷。
sqlExcel = "SELECT * FROM [試題庫(kù)$] WHERE ((InStr(1,′" & GetRndNumberStr("單選",30,"題號(hào)") & "′,(′,′ & [題號(hào)] & ′,′)))<>0)"
三、總結(jié)
新疆旅游專(zhuān)題學(xué)習(xí)網(wǎng)站投入使用后運(yùn)行穩(wěn)定,響應(yīng)速度較快。使用此專(zhuān)題學(xué)習(xí)網(wǎng)站學(xué)生不僅可以瀏覽教學(xué)課件,
還可以進(jìn)行課后練習(xí)和模擬測(cè)驗(yàn)。由于模擬測(cè)驗(yàn)是采用隨機(jī)抽題的方式組卷,因此其與靜態(tài)試卷表單相比,具有組卷方式靈活、試題更新方便等特點(diǎn)。另外,互動(dòng)空間的各交流版面也為師生提供了一個(gè)課后交流的場(chǎng)所。學(xué)生在學(xué)習(xí)中遇到了問(wèn)題可以及時(shí)獲得解答,大大提高了學(xué)生學(xué)習(xí)的興趣。
參考文獻(xiàn):
[1]龐婭娟.ASP網(wǎng)絡(luò)編程自學(xué)手冊(cè)[M].北京:人民郵電出版社,2008.3.
[2]王晶. ASP網(wǎng)站建設(shè)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2007.6.
[3]劉煬.ASP網(wǎng)絡(luò)程序設(shè)計(jì)[M].合肥:合肥工業(yè)大學(xué)出版社,2007.2.
[4]薛小龍.ASP典型系統(tǒng)實(shí)戰(zhàn)與解析[M].北京:電子工業(yè)出版社,2007.1.
[5]陶國(guó)榮.ASP動(dòng)態(tài)商業(yè)網(wǎng)站建設(shè)案例[M].北京:人民郵電出版社,2006.12.