【文章內(nèi)容簡(jiǎn)介】
生用戶能做些什么?這是學(xué)生功能要研究與討論的。理解這些也是實(shí)現(xiàn)學(xué)生功能的前提 學(xué)生首先通過系統(tǒng)登錄驗(yàn)證,證明是一個(gè)合法的系統(tǒng)用戶。選擇“學(xué)生進(jìn)入在線考試―― 考試”,得到如下一個(gè)頁(yè)面,通過管理員給予 的用戶名及密碼登錄,成功過后,就可以進(jìn)行考試,成績(jī)查詢等功能 ,該功能效果如圖 6 所示: 圖 6 學(xué)生測(cè)試 以下代碼實(shí)現(xiàn)學(xué)生身份的驗(yàn)證: %if username and password then set rs=(select * from user where user=39。amp。 username amp。 39。) 39。39。判斷是否存在該用戶 if not ( and ) then39。判斷是否有該權(quán)限 if rs(passwd)=password then session(password)=rs(passwd) 39。//為真則將該用戶的該權(quán)限放入 SESSION 中 驗(yàn)證成功過后才能夠進(jìn)行下一步的操作。 ( 2) 學(xué)生在線考試 學(xué)生通過身份驗(yàn)證后,就擁有進(jìn)行在線考試以及其它的一些操作的權(quán)力,考試題目是以選擇題的形式存儲(chǔ)在數(shù)據(jù)庫(kù)當(dāng)中的。通過調(diào)用數(shù)據(jù)庫(kù)中的內(nèi)容,學(xué)生能夠在線完成考試并查看相應(yīng)的得分。其實(shí)現(xiàn)的效果如圖 7 所示: 圖 7 學(xué)生測(cè)試 % sql=select * from test //從題庫(kù)中調(diào)出試題。 sql,conn,3,3 do while not RANDOMIZE RandomValue = INT(10*RND)+1 rs(count)=rs(count)+RandomValue loop sql=select top 100 * from test order by count desc39。//提取試題,降序排列 Set rs = (sql) % 得到權(quán)限后通過上面這段代碼就可以從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)。 對(duì)于考試,得到數(shù)據(jù)后,考試就算進(jìn)入正式開始,但怎樣確定何時(shí)該交卷呢?此精品課程網(wǎng)站自定義了一個(gè)腳本函數(shù)實(shí)現(xiàn)考試定試。 通過使用 (update()。,1000)這個(gè)函數(shù)我們就要可以為考試設(shè)定一個(gè)時(shí)間那么時(shí)間一到,題目就將失效,不能再答題,作為答題錯(cuò)誤計(jì)算。下面代碼完成考試的時(shí)間設(shè)置: %if (sec)=5 then 39。//在此設(shè)定時(shí)間 時(shí)間已到。 end if% % i=i+1 loop % 上面這一段代碼完成設(shè)定每題的時(shí)間的??梢匀我飧摹_@由老師根據(jù)不同題目的難度來決定。下面一段代碼實(shí)現(xiàn)的是考題正確性判斷。 % id=request(id) % %if request(id) then sql=select 1 * from test where id like39。 amp。idamp。 39。//通過題目的 ID號(hào)查找 else sql=select top 1 * from test end if sql=select * from test where id like39。amp。idamp。39。 sql,conn,1,1 if and then 沒有這個(gè)信息 ... else % 考試完成后學(xué)生可以馬上查看自己的成績(jī),成績(jī)是通過查找用戶名來得到的。通過對(duì)比上傳的考試數(shù)據(jù)與數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)進(jìn)行比較后得出答題成績(jī)。并給出最終的結(jié)果,不及格,及格,好,優(yōu)等評(píng)定。下面一段代碼所完成的功能是實(shí)現(xiàn)在成績(jī)的 評(píng)定。 % sql=select * from test sql,conn,3,3 dim score rsCount=0 ycorrect=0 rs(ans) rsCount=rsCount + 1 if (rsCount)=rs(ans) then ycorrect=ycorrect + 1 end if loop score=int(ycorrect/rscount*100)//計(jì)算成績(jī) % ( 3) 用戶密碼修改功能的實(shí)現(xiàn)。 許多時(shí)候用戶容易忘記自己的密碼,對(duì)于這種初始密碼由管理員賦予的情況,選擇一個(gè)方便自己記憶的密碼將是一種好的選擇。因此需要設(shè)計(jì)密碼的修改功能。不是任何人都可以修改別人的密碼,要完成修改密碼功能就必須是在合法身份被驗(yàn)證通過的前提下才能實(shí)現(xiàn),如果誰(shuí)都能更改別人的密碼,那么系統(tǒng)就將缺少安全性保證。下面的這段代碼完成學(xué)生用戶在線考試功能中密碼的修改。 if (gn)=pass then user=Replace(Trim((user)),39。,39。39。) pass=Replace(Trim((pass)),39。,39。39。) new_pass=Replace(Trim((new_pass)),39。,39。39。) sql2=select * from teacher where password=39。amp。 pass amp。39。 if then rs2(username)=user 。 其界面效果如圖 8 所示: 圖 8 用戶更改密碼 教師功能的實(shí)現(xiàn) 教師用戶也是精品課程網(wǎng)站的主要用戶,與學(xué)生用戶相比。教師所具備的特點(diǎn)是:教師要能夠更改題庫(kù)中的題目,還要能增加,刪除題目等,其具體功能實(shí)現(xiàn)如下面小節(jié)中所示的那樣。 ( 1)教師登錄功能以及密碼修改功能的實(shí)現(xiàn) 教師登錄功能與學(xué)生過程基本相同,密碼修改功能也一樣,因此這里不再過多敘述。 ( 2)題庫(kù)的修改級(jí)代碼的實(shí)現(xiàn)。 當(dāng)一個(gè)用戶以教師身份進(jìn)入在線考試功能模塊。那么在這個(gè)模塊中,此用戶將擁有出題的權(quán)力,修改題庫(kù)的權(quán)力,刪除題目的權(quán)利,下面這段 代碼實(shí)現(xiàn)的是教師功能中添加題目這一子功能。 % question=request(text1)a=request(text2)b=request(text3) c=request(text4) d=request(text5) ans=request(text6) sql=select * from test where question=39。amp。questionamp。39。 sql,conn,1,1 if or then sql=insertintotest(question,a,b,c,d,ans) values(39。amp。questionamp。39。,39。amp。aamp。39。,39。amp。bamp。39。,39。amp。camp。39。,39。amp。damp。39。,39。amp。ansamp。39。)//更新題庫(kù) set rs=nothing % 從上面的代碼可知試題被添加到題庫(kù)中,更新后,學(xué)生再?gòu)念}庫(kù)中讀取試題,并完成考試,其添加試題的效果如圖 9 所示。 圖 9 老師添加試題 ( 3)題庫(kù)題目刪減的代碼實(shí)現(xiàn)及效果展示 由于有些題目過時(shí)不在適合學(xué)生的教學(xué)的要求,但它們卻占用了寶貴的系統(tǒng)資源, 因此就把這些過時(shí)的題目從題庫(kù)中移出。以達(dá)到釋放資源的目的,教師將成為這個(gè)權(quán)力的所有者。下面的代碼就是在線考試系統(tǒng)完成題目移出功能的代碼。 % loop end if set rs=nothing set conn=nothing % 當(dāng)題目被移出后在改新數(shù)據(jù)庫(kù)中的題目,題目就被刪除了。教師用戶還可以通過查找特定題目,然后改掉認(rèn)為有錯(cuò)的題目。對(duì)于教師功能就介紹到些 。 下一節(jié)要介紹的是在線聊天功能模塊的實(shí)現(xiàn)。更改數(shù)據(jù)庫(kù)中試題的界面效果如圖 10 所示。 圖 10 查看試 題答案 在線交流 在線交流平臺(tái)是師生間溝通交流的一個(gè)絕佳的平臺(tái)。當(dāng)學(xué)生遇到問題的時(shí)候,可以通過這個(gè)平臺(tái)把自己遇到的問題及困難提交上去讓大家討論,同時(shí)如果別的同學(xué)也有相同的疑問,就會(huì)主動(dòng)去關(guān)注大家對(duì)這個(gè)問題的討論。老師能夠從大家的討論了解到學(xué)生有那些問題是急需解決的。大家不以實(shí)名方式發(fā)言,這樣使得學(xué)生沒有后顧之憂、能夠暢所欲言,因此精品課程網(wǎng)站選擇留言板作為在線交流的平臺(tái)。與在線考試系統(tǒng)不同,此留言板不要求再一次的驗(yàn)證用戶是學(xué)生還是老師。用戶只要點(diǎn)擊進(jìn)出就行,可以隨便輸入你認(rèn)為喜歡的名字,不會(huì)怕事后會(huì) 被人指責(zé)等(這是很多的人都有的顧慮)。在這個(gè)功能模塊中,只有系統(tǒng)的管理員才須要驗(yàn)證。因?yàn)楣芾韱T要?jiǎng)h除那些不適合發(fā)表的言論,比如帶有人身攻擊性質(zhì)的留言。 用戶留言及查看留言的代碼實(shí)現(xiàn) 普通用戶,無論是學(xué)生還是老師只要登錄了系統(tǒng)就可以進(jìn)行留言操作不用別的權(quán)限。它不像以 T 開頭的好些文件那樣。要求很嚴(yán)格的驗(yàn)證機(jī)制才能擁有某一項(xiàng)權(quán)限,所以它的代碼也不像在線考試模塊那樣的復(fù)雜。 下面將看到的是在線交流功能的界面。與別的功能不同的是作者使用一種分格的視圖來完成這個(gè)界面的制作。頁(yè)面效果如圖 11 所示。 圖 11 在線交流界面 對(duì)在線交流功能重點(diǎn)還是介紹一下其的管理員功能。因?yàn)楣芾韱T功能要完成更多的操作,擁有更高的權(quán)限,而其它用戶功能非常簡(jiǎn)單,所以需要對(duì)管理員身份進(jìn)行驗(yàn)證。 管理員功能的實(shí)現(xiàn)過程 對(duì)于在線聊天這個(gè)功能模塊來說。管理員具有最大的權(quán)限,管理員可以刪除留言、備份以及恢復(fù)留言等功能,下面就來介紹一下這些功能是如何實(shí)現(xiàn)的。 ( 1) 管理員驗(yàn)證過程的代碼實(shí)現(xiàn)及效果圖 因?yàn)楣芾韱T具有的權(quán)限太高,因此必須設(shè)計(jì)一個(gè)能夠驗(yàn)證管理員身份的辦法。如果無法限制非管理員用戶的權(quán)限,那么誰(shuí)都可以把別人的留言給更改或刪 除,從而造成一些人的留言被惡意的更改或刪除。與前面看到的那些驗(yàn)證一樣。這里也是把管理員的相關(guān)信息傳到后臺(tái)去,讓后臺(tái)去處理。下面的代碼段所實(shí)現(xiàn)的就是管理員的驗(yàn)證功能 %selectname,passwordfromathoritywherename=39。amp。(name)amp。39。 and password=39。amp。((password))amp。39。,conn,1 set rs=nothing set conn=nothing () % 當(dāng)管理員把自己的信息輸入后, form就會(huì)把了輸入的數(shù)據(jù)傳給上面的這些代碼 讓它們?nèi)シ謩e用戶到底是不是管理員,管理員登錄的視圖效果如圖 12 所示: 圖 12 管理員界面 ( 2) 管理員刪除留言功能 對(duì)于管理員來說有時(shí)候需要決定哪些留言是不允許發(fā)表的,比如帶有明顯的人身攻擊性質(zhì)的留言是不被允許發(fā)表的,遇到這樣的留言時(shí)管理員就要把它屏蔽掉,以免產(chǎn)生不好的影響。下面的代碼段被用來實(shí)現(xiàn)這個(gè)操作。 !include file= delete from message,conn,3,3 set conn=nothing (scriptalert( 已清空所有留言 )。 navigate()/script) 這樣,一些不應(yīng)該發(fā)表的留言就被系統(tǒng)管理員給禁止了。 ( 3)管理員備份及恢復(fù)留言的代碼 不是所有的留言都是刪除就可以了 。有時(shí)候還得想辦法恢復(fù)這些留言 ,如何來完成這個(gè)恢復(fù)操作呢?首先必須要備份、當(dāng)須要恢復(fù)留言的時(shí)候就把這個(gè)備份中的文件讀出來,再顯示出來就可以了。 因此首先要做的是備份留言然后就可以恢復(fù)留言,下面兩段代碼就是實(shí)現(xiàn)留言備份功能和留言恢復(fù)功能: Set fs = CreateObject() 39。BFdE=(Bfile) BFdE=(Bfolder)39。查看備份目錄是否存在 OFE=(originalfile)39。查看原數(shù)據(jù)庫(kù)是否存在 set fs=nothing 然后才有機(jī)會(huì)完成恢復(fù)操作,其實(shí)現(xiàn)的效果如圖 13 及圖 14 所示: 圖 13 留言備份 圖 14 留言恢復(fù) 以上為在線交流的功能簡(jiǎn)介。在下一節(jié)中介紹在線視頻功能的設(shè)計(jì)與實(shí)現(xiàn) 在線視頻及流媒體的實(shí)現(xiàn) 在線視頻設(shè)計(jì)主要目的是提供給用戶一個(gè)利用多媒體技術(shù)來學(xué)習(xí)知識(shí)的工具。流媒體技術(shù)利用聲、光、電等媒介促使用 戶更好的接受知識(shí),其克服了傳統(tǒng)教學(xué)方式所帶有的弊病,使得教學(xué)變的更加的生動(dòng)、有趣并且適當(dāng)?shù)臅r(shí)候還可以寓教于樂。在線視頻使用戶能夠在休息中就能學(xué)習(xí)知識(shí)、它的實(shí)現(xiàn)簡(jiǎn)單,這里也就不再過多的敘述。 流媒體技術(shù)簡(jiǎn)介 流媒體 (Streaming Media)指在數(shù)據(jù)網(wǎng)絡(luò)上按時(shí)間先后次序傳輸和播放的連續(xù)音 /視頻數(shù)據(jù)流。以前人們?cè)诰W(wǎng)絡(luò)上觀看電影或收聽音樂時(shí),必須先將整個(gè)影音文件下載并存儲(chǔ)在本地計(jì)算機(jī)上,然后才可以觀看。與傳統(tǒng)的播放方式不同,流媒體在播放前并不下載整個(gè)文件,只將部分內(nèi)容緩存,使流媒體數(shù)據(jù)流邊傳送 邊播放,這樣就節(jié)省了下載等待時(shí)間和存儲(chǔ)空間。流媒體數(shù)據(jù)流具有三個(gè)特點(diǎn):連續(xù)性 (Continuous) 、實(shí)時(shí)性 (Real time) 、時(shí)序性,即其數(shù)據(jù)流具有嚴(yán)格的前后時(shí)序關(guān)系 在線視頻的設(shè)計(jì)與實(shí)現(xiàn) 在線視頻功能主要完成流媒體技術(shù)在精品課程網(wǎng)站中的應(yīng)用,最主要是完成播放器內(nèi)嵌,并且讓流媒體播放器尋找到要播放文件的 URL。這個(gè)功能設(shè)計(jì)的主要目的在于把聲,光,電,等媒介應(yīng)用到教學(xué)當(dāng)中去,教師把自己制作的教學(xué)視頻發(fā)給管理員,管理員將其上加入到數(shù)據(jù)庫(kù),用戶再通過客