中圖分類(lèi)號(hào):TP393.09 文獻(xiàn)標(biāo)識(shí)碼:A
摘要:在介紹XML和ASP技術(shù)的基礎(chǔ)上,討論了網(wǎng)上選課系統(tǒng)的需求分析,并結(jié)合高校教學(xué)特點(diǎn),對(duì)系統(tǒng)的功能模塊、數(shù)據(jù)庫(kù)表、選課算法進(jìn)行設(shè)計(jì),將XML技術(shù)應(yīng)用到選課沖突判斷、加載和驗(yàn)證、數(shù)據(jù)發(fā)布等方面。
關(guān)鍵詞:XML;網(wǎng)上選課系統(tǒng);設(shè)計(jì)
1、引言
網(wǎng)上選課系統(tǒng)是針對(duì)在校學(xué)生和教師使用,從學(xué)生的角度來(lái)說(shuō),由于學(xué)校教學(xué)制度的改革,現(xiàn)在大部分高等院校開(kāi)始實(shí)行的是學(xué)生的自主選課模式,傳統(tǒng)的教學(xué)模式是學(xué)生按照學(xué)校安排好的課程上課,已不能適應(yīng)新型的教學(xué)手段,如果仍然通過(guò)紙上的方式選課,一方面浪費(fèi)的大量的人力、物力資源,另一方面浪費(fèi)時(shí)間以及在人為的統(tǒng)計(jì)過(guò)程中不可避免出現(xiàn)的差錯(cuò)等情況。隨著高校人數(shù)的增多,這種弊端會(huì)越來(lái)越多的暴露出來(lái)。
XML是可擴(kuò)展標(biāo)記語(yǔ)言的簡(jiǎn)稱(chēng),為web上的結(jié)構(gòu)化文檔和數(shù)據(jù)提供了通用的格式。隨著Internet的發(fā)展,尤其是Web技術(shù)的廣泛應(yīng)用,越來(lái)越多的系統(tǒng)采用了XML作為數(shù)據(jù)表示和交換的標(biāo)準(zhǔn),通過(guò)數(shù)據(jù)庫(kù)技術(shù)結(jié)合XML語(yǔ)言進(jìn)行信息管理也變得越來(lái)越重要。
通過(guò)對(duì)網(wǎng)上選課系統(tǒng)的業(yè)務(wù)和功能要去方面的研究,以及對(duì)XML技術(shù)在基于Web的系統(tǒng)開(kāi)發(fā)中的應(yīng)用研究,筆者設(shè)計(jì)了基于XML的網(wǎng)上選課系統(tǒng)。
2、系統(tǒng)功能設(shè)計(jì)
2.1功能設(shè)計(jì)
本系統(tǒng)主要涉及到的用戶(hù)有三種:選課學(xué)生、任課教師和管理員。
(1)學(xué)生信息模塊:學(xué)生登錄進(jìn)入選課頁(yè)面,選擇開(kāi)始選課按鈕后后,將出現(xiàn)選課頁(yè)面(該頁(yè)面不會(huì)顯示學(xué)生已經(jīng)選修過(guò)的課程),然后學(xué)生可自主的選擇自己想選修的課程,但在選課過(guò)程中,學(xué)生需要注意il前導(dǎo)課,時(shí)間,人數(shù)上限,課程重復(fù)等一系列因素,以使選課準(zhǔn)確高效的進(jìn)行。除選擇課程外,學(xué)生用還可以退課,查看已選課程、已考課程的成績(jī)以及已修學(xué)分等信息。
(2)教師信息模塊:教師用戶(hù)可以執(zhí)行的操作有:查看系統(tǒng)發(fā)布的新聞信息,通過(guò)瀏覽新聞頁(yè)面,教師可以了解最新的學(xué)校動(dòng)態(tài);查詢(xún)教師本人所教授課程內(nèi)容,以便教師詳細(xì)了解每學(xué)期的教學(xué)任務(wù),合理安排時(shí)間;查詢(xún)教授的每門(mén)課程的學(xué)生信息;在課程結(jié)束后,提交該門(mén)課程的考試成績(jī)等。
(3) 管理員模塊:要實(shí)現(xiàn)的就是對(duì)信息的管理工作,教師、學(xué)生、課程和系信息的管理,此外當(dāng)教師提交成績(jī)錯(cuò)誤時(shí)管理員還可以行使成績(jī)修改功能。其中,課程信息管理包括必修課程和選修課程,學(xué)生必需先登陸才能進(jìn)行對(duì)課程的選課否則不能進(jìn)入選課系統(tǒng)。
2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
(1)系部信息表:系代碼、系名。(2)學(xué)生信息表:學(xué)號(hào)、姓名、系部、班級(jí)、密碼。(3)教師信息表:教師姓名、教師工號(hào)、教師職稱(chēng)、教師所屬系。(3)課程信息表:課程號(hào)、課程名、教師號(hào)、課程簡(jiǎn)介、學(xué)分、學(xué)時(shí)、上課時(shí)間、上課地點(diǎn)、課程狀態(tài)。(4)管理員表:超級(jí)用戶(hù)名和超級(jí)用戶(hù)密碼,驗(yàn)證管理員用。
2.3 選課算法設(shè)計(jì)
選課系統(tǒng)要解決很多約束條件,如教學(xué)班級(jí)、教師、時(shí)間和地點(diǎn)等,這給選課過(guò)程帶來(lái)了極大的復(fù)雜性,如果這些限制條件不能夠公平的得以解決,先登錄系統(tǒng)的學(xué)生就會(huì)選中希望選到的教學(xué)班,而后來(lái)的學(xué)生就可能選不到中意的教學(xué)班,從而導(dǎo)致學(xué)生搶課、秩序混亂的情況,使選課工作難以進(jìn)行,因此提供一個(gè)公平的,合理的選課算法至關(guān)重要。
本文采用按志愿分級(jí)篩選算法,采用類(lèi)似于高考錄取志愿的處理方法,根據(jù)學(xué)生的選課志愿來(lái)實(shí)現(xiàn)選課處理。學(xué)生在選課時(shí),每人最多可以有三個(gè)志愿,可按選擇課程的優(yōu)先級(jí)排好序,程序先遍歷第一志愿,當(dāng)?shù)谝恢驹傅娜藬?shù)超過(guò)最大上課人數(shù)限制時(shí),則采用隨機(jī)抽取算法進(jìn)行進(jìn)一步處理,篩選出多余的人數(shù),多出來(lái)的學(xué)生,在處理第二志愿、第三志愿時(shí)進(jìn)行分配。如果第一志愿人數(shù)小于該課程的限選人數(shù),選課結(jié)果全部生效,不再處理第二志愿,否則繼續(xù)遍歷第二志愿,第二志愿的最大可選人數(shù)為第一志愿課程班的不足人數(shù),處理過(guò)程與第一志愿相同。以此類(lèi)推,再用同樣的方法處理第三志愿。按志愿分級(jí)篩選算法操作簡(jiǎn)便,運(yùn)行速度快,容易實(shí)現(xiàn),是性能較好的算法基本能實(shí)現(xiàn)公平選課,適用于網(wǎng)上選課。該算法的執(zhí)行結(jié)果與選課時(shí)間無(wú)關(guān),因?yàn)樗惴ㄊ窃谌w學(xué)生選課結(jié)束后,才進(jìn)行后臺(tái)處理,克服了先來(lái)者優(yōu)先的缺點(diǎn)。后臺(tái)處理完畢后,可能會(huì)存在極少數(shù)學(xué)生所有志愿都未選中,需人工處理,形成最終課表。整個(gè)過(guò)程盡可能滿(mǎn)足學(xué)生愿望,在選課期間內(nèi),權(quán)利平等,超出總?cè)藬?shù)的課程,采用隨機(jī)抽簽方法再次分配,確保了選課結(jié)果的公平。
3、XML在網(wǎng)上選課系統(tǒng)的應(yīng)用
(1) XML 在選課沖突判斷方面的應(yīng)用
在選課過(guò)程中, 會(huì)經(jīng)常出現(xiàn)選課沖突的問(wèn)題, 如選課的上課時(shí)間沖突和前導(dǎo)課沖突等, 如果在服務(wù)器端解決選課沖突, 必然會(huì)給系統(tǒng)造成極大的負(fù)擔(dān), 因?yàn)樵谶x課時(shí), 存在大量的并發(fā)操作, 服務(wù)器端的工作已經(jīng)相當(dāng)繁重, 因此將選課沖突的判斷遷移到客戶(hù)端是減輕服務(wù)器端負(fù)載的最好方法。在實(shí)際的選課系統(tǒng)的開(kāi)發(fā)中, 本人利用XML 數(shù)據(jù)島技術(shù), 成功地解決了上課時(shí)間沖突和前導(dǎo)課沖突的判斷問(wèn)題, 而且沖突的判斷準(zhǔn)確, 效果明顯。
把多個(gè)不同用戶(hù)同時(shí)訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)產(chǎn)生的沖突稱(chēng)為并發(fā)訪問(wèn)沖突。在web環(huán)境下,假設(shè)能夠保證多個(gè)不同用戶(hù)可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行排他存取,動(dòng)作與動(dòng)作之間互不影響,就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)并發(fā)存取。多個(gè)用戶(hù)并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)引起的沖突問(wèn)題,可以在系統(tǒng)數(shù)據(jù)庫(kù)環(huán)境上加以考慮, SQL Server具備完善的鎖定技術(shù),可以實(shí)現(xiàn)多用戶(hù)的并行事務(wù)處理,在程序?qū)崿F(xiàn)時(shí)不必考慮這一問(wèn)題,因?yàn)槠滏i定工作是通過(guò)后臺(tái)數(shù)據(jù)庫(kù)自動(dòng)處理的。SQLServer2008等大型數(shù)據(jù)庫(kù)具備這樣完善的鎖定技術(shù),可以有效地解決數(shù)據(jù)庫(kù)的并發(fā)訪問(wèn)沖突問(wèn)題。
(2) XML 在數(shù)據(jù)加載和驗(yàn)證方面的應(yīng)用
在大多數(shù) WEB 應(yīng)用中,數(shù)據(jù)的加載都是通過(guò)表單提交進(jìn)行的,每次只能提交一條記錄,使數(shù)據(jù)頻繁地在 Server 和 Client 之間流動(dòng),加大了服務(wù)器的負(fù)荷,浪費(fèi)了時(shí)間。提交之后的數(shù)據(jù),必須通過(guò) WEB 服務(wù)器連接數(shù)據(jù)庫(kù),才能實(shí)現(xiàn)修改操作,給用戶(hù)帶來(lái)一定的麻煩。
首先在客戶(hù)端利用Recordset對(duì)象的方法將XML數(shù)據(jù)添加到數(shù)據(jù)島中;驗(yàn)證無(wú)誤后,再利用XMLHTTP對(duì)象向服務(wù)器傳送已經(jīng)準(zhǔn)備好的數(shù)據(jù)包;運(yùn)用DOM技術(shù)在服務(wù)器端對(duì)數(shù)據(jù)包進(jìn)行分析檢驗(yàn)。在檢驗(yàn)沒(méi)有錯(cuò)誤后提取結(jié)點(diǎn)數(shù)據(jù),并在數(shù)據(jù)庫(kù)中添入結(jié)點(diǎn)數(shù)據(jù),若未通過(guò),將錯(cuò)誤信息返回給客戶(hù)。
(3) XML 技術(shù)在數(shù)據(jù)發(fā)布中的應(yīng)用
數(shù)據(jù)發(fā)布的過(guò)程就是從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)轉(zhuǎn)入相應(yīng) XML 文件的過(guò)程, 首先發(fā)布程序會(huì)遍歷新年級(jí)的所有專(zhuān)業(yè)及相關(guān)學(xué)制和學(xué)生類(lèi)型信息, 然后提取培養(yǎng)計(jì)劃表中的所有相關(guān)信息, 并利用 ASP的 FileSystemObject 對(duì)象將獲得的數(shù)據(jù)寫(xiě)入到 XML文件中。因?yàn)?XML 文件本身是一個(gè)文本文件, 所以數(shù)據(jù)寫(xiě)入的方法與向文本文件中寫(xiě)入數(shù)據(jù)的方法相同。
參考文獻(xiàn):
[1]羅雨滋,付興宏.基于XML的高職學(xué)分制選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].保山師專(zhuān)學(xué)報(bào),2006年 9 月.
[2]范麗梅.基于XML_ASP的選課系統(tǒng)研究及其訪問(wèn)沖突的解決[D].吉林大學(xué),2010.