盧秀惠
(渤海船舶職業(yè)學院,遼寧 葫蘆島 125005)
網(wǎng)上選課系統(tǒng)的設計與分析
盧秀惠
(渤海船舶職業(yè)學院,遼寧 葫蘆島 125005)
隨著在校學生人數(shù)的不斷增加,教務系統(tǒng)的數(shù)據(jù)量也不斷地上漲.本文介紹了一個完整的網(wǎng)上選課系統(tǒng),該系統(tǒng)可以方便教務處工作,讓每個學生更好地選擇自己所喜歡的科目.本系統(tǒng)從學生網(wǎng)上自主選課以及教師的課程發(fā)布兩個方面進行了設計,并提出了選課學生自動篩選算法.
網(wǎng)上選課系統(tǒng);教務系統(tǒng);篩選算法
學生選課系統(tǒng)是教學管理中一個不可或缺的部分,它的內容對于學校的決策者和管理者來說都至關重要.但是一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),給查找、更新和維護帶來不少的困難.
隨著計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用.作為計算機應用的一部分,使用計算機對選課信息進行管理,有著手工管理所無法比擬的優(yōu)點,如檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等.因此,開發(fā)這樣一套軟件成為很有必要的事情.
下面將詳細介紹一個完整的網(wǎng)上選課系統(tǒng)的設計與實現(xiàn),介紹其開發(fā)過程和所涉及到的問題及解決方法.
在本系統(tǒng)中有三類用戶:系統(tǒng)管理員、教師和學生,三種不同的用戶具有不同的操作權限以及操作內容.本系統(tǒng)可劃分成7個功能模塊,如圖1所示.

圖1 系統(tǒng)功能模塊圖
系統(tǒng)狀態(tài)由系統(tǒng)管理員設置,系統(tǒng)狀態(tài)分為四種,分別是教師開設課程狀態(tài)、學生選課狀態(tài)、篩選確定狀態(tài)、系統(tǒng)關閉狀態(tài),系統(tǒng)根據(jù)狀態(tài)開啟和關閉各個功能模塊.
用戶通過身份驗證模塊,根據(jù)不同的用戶類型和不同的系統(tǒng)狀態(tài),跳到不同的頁面,整個選課流程如圖2所示.

圖2 整體選課過程流程圖
篩選算法用來解決當選課人數(shù)過多、超過課程最大人數(shù)時,如何篩選掉一部分選課學生的問題.本系統(tǒng)的篩選算法的思路是,按照學分多少的順序篩選,讓學分少的學生能優(yōu)先選到課程.
本系統(tǒng)基于瀏覽器/服務器(B/S)模式構建,在WindowsXP操作系統(tǒng)中,使用C#語言在ASP.NET平臺下開發(fā)實現(xiàn).本系統(tǒng)使用了ADO.NET數(shù)據(jù)訪問技術,使用SQL Server 2005作為數(shù)據(jù)庫管理軟件.
在編碼的過程中,本系統(tǒng)一個明顯的特點是不同類型的操作封裝在不同的類中.對底層數(shù)據(jù)庫的操作都封裝在Db類中,大部分的SQL語句都寫在命名為SQL的類中.這樣在web層進行功能實現(xiàn)的時候,先調用SQL類中的方法,再由SQL類中方法調用Db類中的方法,從而實現(xiàn)對數(shù)據(jù)庫的操作,如圖3所示.
將大部分的SQL語句封裝到一個類——Sql類中,是本系統(tǒng)的一大顯著特點.最常用的對數(shù)據(jù)庫中表的操作就是增、刪、改、查四種,在Sql類中,只要包含著四種操作的SQL語句,就基本上包括了對數(shù)據(jù)庫表的所有操作.

圖3 數(shù)據(jù)庫操作實現(xiàn)
另外,Sql類對于Db類而言,它是調用者;對于Web層而言,它卻是被調用者.Sql類處于Db類與Web層之間,起到了數(shù)據(jù)交換中承上啟下的作用,這與三層架構模式中的業(yè)務邏輯層有著相似的作用.由于層是一種弱耦合結構,層與層之間的依賴是向下的,底層對于上層而言是“無知”的,改變上層的設計對于其調用的底層而言沒有任何影響,因此遵循了面向接口設計的思想,這種向下的依賴也應該是一種弱依賴關系.由此可見,Sql類對整個系統(tǒng)都起著重要的作用.
3.2.1 登錄驗證模塊的實現(xiàn)
登錄驗證模塊是所有用戶公用的功能,所有用戶登錄本系統(tǒng)都會來到首頁,即登錄頁面,如圖4所示.

圖4 登錄頁面
此時,用戶可以輸入用戶編號、密碼并選擇用戶類型,登錄選課系統(tǒng).登錄驗證模塊自動驗證用戶編號、密碼和用戶類型是否相符,符合則跳轉到相應的界面,不符合將彈框提示“用戶名或密碼錯誤”.
在登錄模塊中還引入了一個對系統(tǒng)非常重要的Session對象,模塊中Session[“id”]對象用來存儲登錄時輸入的用戶編號值.Session的使用對系統(tǒng)的作用非常大,后邊的模塊將會頻繁的用到Session[“id”]中存儲的數(shù)據(jù).
3.2.2 錄入和維護信息模塊的實現(xiàn)
錄入和維護信息模塊是管理員用戶的功能,屬于后臺功能.
管理員登錄后,進入管理員界面,此時可以跳轉到教師、學生或者課程三個信息維護界面,這些操作的方法都非常相似,因此歸結為一個功能模塊.下面以課程信息維護界面為例,如圖5所示.

圖5 課程信息管理頁面
信息顯示使用的是.NET平臺提供的GridView這一強大的控件,當頁面登錄時,系統(tǒng)將在GridView中顯示所有課程的信息.當然,信息過多時可利用控件提供的自帶的分頁技術分頁顯示.由于管理員在系統(tǒng)中擁有最高權限,所以他可以用此模塊對所有實體的數(shù)據(jù)表進行增、刪、改、查的操作.
3.2.3 篩選模塊的實現(xiàn)
先取得已選人數(shù)count,根據(jù)課程號取得課程最大人數(shù)max;比較 max與 count大小,count大于 max,進行篩選;用Sql語句,在已經(jīng)按學分排好序的表中搜索,第max個選課學生的學分credit,并以此值作為閥值;用For循環(huán)遍歷所有選課學生,取到第i個學生的已獲得學分;用第i個學生的學分與閥值比較,大于閥值選課狀態(tài)更新為“選課失敗”;小于等于閥值,選課狀態(tài)更新為“選課成功”.
篩選過程結束后,教師可以點擊“生成選課學生名單”,頁面跳轉顯示所有選課成功的學生名單.頁面中還有打印按鈕,點擊后將輸出word文件形式的選課學生名單.
本系統(tǒng)可以大幅度減少學校教務工作中選課環(huán)節(jié)的工作量.無論是教師開課、學生選課、選課學生篩選都可以在本系統(tǒng)中輕松地完成.應用本系統(tǒng),可以使學校里學生選課這項復雜的工作變得簡單.教師可以方便地提交要開設課程的信息,學生可以更容易地選到喜歡的課程,教務管理員也可以更輕松地完成選課信息的管理工作.
〔1〕龔赤兵.精通.ASP.NET 2.0 網(wǎng)站開發(fā)[M].北京:人民郵電出版社,2008:52-65.
〔2〕滿在龍.完全手冊.ASP網(wǎng)絡開發(fā)詳解[M].北京:電子工業(yè)出版社,2007:23-26.
〔3〕張亞飛,楊娜.精通.ASP.NET 3.5 網(wǎng)絡開發(fā)技術[M].北京:電子工業(yè)出版社,2009:33-37.
〔4〕Tom Archer.C#技術內幕[M].北京:清華大學出版社,2002:75-78.
TP393
A
1673-260X(2010)01-0034-02