1、引盲
近幾年來,隨著教學(xué)改革的不斷深入,計(jì)算機(jī)在教學(xué)中發(fā)揮的作用日漸提高,計(jì)算機(jī)實(shí)踐類課程所占的比重日漸增大,這就給機(jī)房安排上機(jī)實(shí)驗(yàn)增加了難度。在開發(fā)本系統(tǒng)之前,我們一直采用手工方式排課。這種排課方法有很多的缺點(diǎn),容易出現(xiàn)錯(cuò)誤,過程繁瑣。為了充分利用現(xiàn)有的校園網(wǎng)環(huán)境,提高工作效率,我們提出設(shè)計(jì)并制作一個(gè)基于JSP的機(jī)房網(wǎng)上自動(dòng)排課系統(tǒng)。
2、系統(tǒng)要求
目前國內(nèi)很多高校都使用了排課系統(tǒng),這些系統(tǒng)對普通教室進(jìn)行日常排課效果很好。但機(jī)房排課主要是在日常排課基礎(chǔ)上對機(jī)房及班級進(jìn)行再次分配,各種限制條件更多,一般的排課軟件難以勝任。機(jī)房排課要進(jìn)行的工作主要有:
(1)根據(jù)實(shí)驗(yàn)教學(xué)計(jì)劃、班級,人數(shù)、對機(jī)房軟件的需要安排各種常規(guī)課程的上機(jī)。
(2)根據(jù)教學(xué)計(jì)劃中對畢業(yè)設(shè)計(jì)、課程設(shè)計(jì)的要求,合理安排各個(gè)班級的此類課程。
(3)教師可以根據(jù)實(shí)際需要進(jìn)行課程的調(diào)整。
(4)教師、學(xué)生可以方便的進(jìn)行課表的查詢。
(5)其它的日常維護(hù)工作。
3、設(shè)計(jì)與實(shí)現(xiàn)
3.1排課系統(tǒng)的體系結(jié)構(gòu)
目前,基于網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫的系統(tǒng)實(shí)現(xiàn)主要有C/SSnB/s兩種體系結(jié)構(gòu)。這兩種體系機(jī)構(gòu)各有優(yōu)缺點(diǎn),考慮到本系統(tǒng)只是運(yùn)行在校園網(wǎng)內(nèi)部,為了提高易用性和方便性,筆者決定采用B/s結(jié)構(gòu)開發(fā)本系統(tǒng)。任課教師通過校園網(wǎng)內(nèi)部的瀏覽器進(jìn)行排課預(yù)約及課程的調(diào)整,學(xué)生和教師對課表的查詢也只需通過瀏覽器即可進(jìn)行,方便了信息的獲取。
本系統(tǒng)基于JSP技術(shù)實(shí)現(xiàn),采用了三層結(jié)構(gòu)。三層結(jié)構(gòu)包括表示層、中間層、數(shù)據(jù)庫層。系統(tǒng)的邏輯結(jié)構(gòu)如圖l所示:
3.2數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫是一個(gè)應(yīng)用系統(tǒng)的基石。整個(gè)系統(tǒng)的操作都是圍繞著數(shù)據(jù)庫表進(jìn)行的,因而數(shù)據(jù)庫表如何建立,每個(gè)表應(yīng)具有哪些項(xiàng)目等,對節(jié)省存儲內(nèi)存、減少運(yùn)算量、簡化程序設(shè)計(jì)等都是非常重要的。本系統(tǒng)設(shè)計(jì)的數(shù)據(jù)庫表主要有班級表group(編號。系別、專業(yè)。班級),機(jī)房信息表room(編號。機(jī)房名稱、機(jī)器數(shù)量),課程預(yù)約表kebiao(編號、上課周次、上課星期、上課講次、占用機(jī)房、上課班級、實(shí)驗(yàn)內(nèi)容)。此外還有一些其它的數(shù)據(jù)庫表如教師信息表,講次時(shí)間表、上機(jī)環(huán)境表等。在設(shè)計(jì)數(shù)據(jù)庫表時(shí)應(yīng)注意考慮各個(gè)表中不同字段之間的聯(lián)系,建立適當(dāng)?shù)募s束關(guān)系。
3.3系統(tǒng)功能模塊簡介
機(jī)房排課系統(tǒng)主要由主頁、系統(tǒng)登錄、課表查詢、排課管理等功能模塊構(gòu)成,
備部分的主要功能如下:
主頁:訪問排課管理系統(tǒng)時(shí)首先打開的頁面,本頁面顯示系統(tǒng)的一些相關(guān)信息,如機(jī)房管理人員介紹,機(jī)房情況簡介、管理規(guī)定簡介、排課注意事項(xiàng)等內(nèi)容。
系統(tǒng)登錄:這部分主要是對使用本系統(tǒng)的相關(guān)人員進(jìn)行身份驗(yàn)證,包括教師和管理人員。由干本系統(tǒng)采用的B/s結(jié)構(gòu),系統(tǒng)的安全性問題不容忽視,因此在用戶輸入密碼后應(yīng)進(jìn)行加密傳輸,以免被其他人破解,影響正常的教學(xué)秩序。
課表查詢:這一部分主要是為教師和學(xué)生提供相應(yīng)的課程信息。訪問時(shí)不需登錄,這樣就提高了訪問速度。除提供基本的課表顯示之外,系統(tǒng)還提供了詳細(xì)的查詢功能。
排課管理:這一部分是系統(tǒng)的核心,任課教師登錄后即可訪問本頁面進(jìn)行課程的預(yù)約。任課教師需要提供上課班級、時(shí)間、人數(shù)等信息,系統(tǒng)將可用機(jī)房反饋給教師,教師可自行選定上課機(jī)房,提交申請,由管理員進(jìn)行審核。此外管理員也能進(jìn)行課程的預(yù)約。
其它功能:提供系統(tǒng)日常維護(hù)的相應(yīng)功能。
3.4排課的實(shí)現(xiàn)
目前在我中心進(jìn)行上機(jī)的課程主要有兩類:常規(guī)課程和設(shè)計(jì)類課程。在進(jìn)行排課時(shí),這兩類課程的處理是不一樣的。
常規(guī)課程:這類課程主要是由任課教師在教務(wù)處安排的理論課程中根據(jù)自己的教學(xué)計(jì)劃自行安排的,所以上課的時(shí)間是固定的,教師不能自行修改。任課教師在提交排課申請時(shí),在申請頁面上選擇上課時(shí)間、班級,系統(tǒng)列出符合條件且未占用的機(jī)房供教師選擇。若不能安排,系統(tǒng)提示任課教師此時(shí)間段不能安排上機(jī),需要由任課教師自行與教務(wù)處協(xié)商,調(diào)整上課時(shí)間后再提交系統(tǒng)進(jìn)行安排。這部分主要采取的是先來先得算法,如果出現(xiàn)沖突只能手動(dòng)調(diào)整。
設(shè)計(jì)類課程:這是排課系統(tǒng)中應(yīng)用自動(dòng)排課的部分。這類課程一般是對于總學(xué)時(shí)有要求,并且應(yīng)盡最大的可能保持機(jī)房不變。這主要是考慮到學(xué)生的設(shè)計(jì)成果或軟件設(shè)置一般都固定在某一臺計(jì)算機(jī)上,若頻繁更換機(jī)房就不利于學(xué)生更好的進(jìn)行設(shè)計(jì)了。本系統(tǒng)在處理這類課程時(shí)采取回溯算法。系統(tǒng)在安排時(shí),對機(jī)房排課的要素:班級、時(shí)間和機(jī)房進(jìn)行匹配,每匹配一次,都對約束條件進(jìn)行判斷,當(dāng)某個(gè)條件不滿足(即匹配不成功)時(shí),作標(biāo)記,退回一步再從另一條未作標(biāo)記的通路進(jìn)行匹配;當(dāng)該條件下的所有通路全部走過,匹配仍不成功,則按優(yōu)先權(quán)值修改某個(gè)約束條件,再繼續(xù)匹配,直到全部條件都被滿足或完成了所有的回溯之后仍然無法都被滿足為止。對于前者,系統(tǒng)將其輸出至成功表;而對于后者,系統(tǒng)則將其輸出至失敗表。并在失敗表中注明排課失敗的原因,系統(tǒng)操作員可根據(jù)實(shí)際情況,采取手工調(diào)整課表或修改某些初始條件等策略。算法流程圖如圖2所示:
4、結(jié)束語
本文結(jié)合我院計(jì)算中心實(shí)際情況以及個(gè)人多年手工排課經(jīng)驗(yàn),探討了機(jī)房自動(dòng)排課的設(shè)計(jì)和實(shí)現(xiàn)問題。設(shè)計(jì)出的排課系統(tǒng),克服了手工排課的缺點(diǎn),提高了排課的效率,方便教師和學(xué)生的使用,具有較高的使用價(jià)值。