張亮
高校選課系統實現關鍵技術研究
張亮
現代教學管理對軟件系統的依賴性越來越高,高校選課系統的開發有助于提高數字化校園建設,推進無紙化辦公的實現。采用B/S架構開發設計,基于.Net技術,后臺數據庫采用Microsoft SQL Server 2008。對選課系統的體系結構、開發平臺、功能模塊、選課算法以及系統安全等方面進行了闡述,其中在公平選課算法中加入權重指標,可以適應高校學生個性化選課的需求,使選課結果更加公平,具有一定的人性化特色。
選課系統;志愿分級篩選算法;權重;系統安全
隨著互聯網技術、高校校園信息化建設的蓬勃發展以及學分制的推行,學校教務管理信息化是必然趨勢。當今社會對人才需求多樣化,高校為了實行人性化的教育理念,對課程結構進行改革優化,高校均開設公共選修課來開拓學生的視野,其中,選修課的信息化建設成為學校教務管理信息化建設的重點工作之一。鑒于以上情況,設計并開發一個基于Web的職能選課系統是非常有必要的。本系統是在績點[1]制管理下研究開發的,設計一個能滿足高校學生個性化的選修課選課系統。
1.1體系結構
本選課系統總體結構采用B/S模式[2]-[3],B/S是一種3層體系結構,由包括Web瀏覽器、Web應用服務器、后臺數據庫服務器3部分組成,層與層之間相互獨立。這一結構是在C/S模式基礎上改進結構應運而生。客戶端由Web瀏覽器來實現,它將用戶對頁面的請求發送給Web應用服務器,Web應用服務器則根據所需向數據庫服務器發出請求,數據庫服務器根據數據請求給Web服務器返回響應的數據結果,然后對所獲得的數據進行計算并將結果提交客戶端。通過B/S結構學生只要通過Web瀏覽器就可以完成網上選課[4],并且B/S結構提高了系統的可擴展性、可伸縮性與安全性,系統維護升級簡單,同時B/S結構對網絡結構依賴性很強,其所有的工作只有在網絡條件健全的情況下才能完成。
1.2開發平臺
高校選課系統的實現主要用到的開發工具是Visual Studio 2010。Visual Studio.Net是第一批基于.Net框架發布的產品。.Net框架[5]的CLR(公共語言運行庫)和類庫是用來創建交互式動態Web應用程序的核心類庫。后臺數據庫選擇Microsoft SQL Server 2008,SQL Server 2008與以前的版本相比,在使用和伸縮性能等方面都大大提高了[6],可以在不同平臺上運行,并且綜合分析選課系統的事物處理數量和數據流量,認為選擇SQL Server 2008是合適的。
1.3系統功能模塊的設計
本系統從功能上可以分為3大模塊:學生模塊、教室模塊和系統管理員模塊。各模塊具體實現的功能間系統模塊如圖1所示:

圖1 系統模塊圖
2.1選課算法
2.1.1志愿分級篩選算法
本文采用志愿分級篩選算法來進行選修課選課,其原理類似高考錄取工作[7],選課階段是由學生預選和系統篩選兩個階段組成。每位學生在預選課程時,可以有多個不同志愿的選擇。預選課程階段結束后,系統按照不同志愿級別從第一志愿開始一級級遍歷,若選擇第一志愿選修課人數未超過該門課的限選名額,則全部被選中;若選擇第一志愿選修課的人數超過該門課的限選名額,采用隨機平均分布概率算法進行抽簽,直到最終生成選修課學生名單。
從上面的分析可以看出,當選課的人數超過該門課的限選名額時,采用隨機平均分布概率算法進行抽簽,選課結果分布均勻,能實現公平的選課。但這種數學角度的概率公平,并沒有考慮到學生成績、專業之間的差異,按照隨機平均分布概率算法進行選課可能導致一些很渴望此次學習的學生可能無法選上這門課程,會打消他們的學習積極性。
2.1.2算法的改進
第一,對分裂國家、破壞國家主權和領土完整的行為,要依法打擊。應對“臺獨”分裂勢力,2005年國家頒布、實施《反國家分裂法》,有效震懾了“臺獨”勢力。應對“港獨”勢力,中央劃定了愛國愛港者治港的原則底線,香港根據基本法等相關法律依法對“占中”違法分子定罪判刑。應對“疆獨”分裂勢力,2016年新疆頒布實施地方性反恐法規《新疆維吾爾自治區實施<中華人民共和國反恐怖主義法> 辦法》,將打擊和有效防范暴力恐怖活動納入法治化軌道,依法打擊蓄意挑撥民族關系、破壞民族團結、制造惡性事件的犯罪分子。中華人民共和國反恐怖主義法
為了更好的衡量一個學生學習的質量,高校現行采用學分績點來衡量學生的學習質量。分段學分績點=∑(課程學分×課程權重系數×課程績點)/∑課程學分,本系統采用的課程績點等級滿分為4.0,共12個檔次。具體分檔如表1所示:

表1 績點等級
為了提高了命中率,避免由于學生個體的差異導致選課的不公平,提出了一種基于權重優先的改進的選課算法。在隨機數k生成時,加入分段學分績點W1、專業W2(是否為本專業?0:1)這兩個指標作為權重指標[8]-[10]。
首先以課程編號為索引,達到限選人選的課程則處理結束,不在處理其他志愿;統計未選滿的課程,再對這些課程進行第二志愿處理,若達到了限選人數則不作處理,否則重復上述過程,直至志愿處理全部結束。
設課程的限選人數為M,第一志愿的選課人數N1,第二志愿的選課人數N2,以此類推。在處理第一志愿時,若N1≤M,則全部選中填入正式課表;若N1>M,引入隨機數k=k*(W1+ W2),若k≤M,則全部選中填入正式課表,若k>M,則進行第二志愿的課程的選取。接著以同樣的處理方法處理下一位學生,直至所有的第一志愿處理完畢。在處理第二志愿時,課程的限選人數變為M-N1, 若N2≤M-N1,則全部選中填入正式課表,否則處理過程同第一志愿。以此類推。當所有選課結束后,若仍有一部分學生未選到課程,則人工干預進行調劑。改進的第一志愿處理流程圖如圖2所示:

圖2 改進的第一志愿處理流程
2.3數據庫表結構的設計
根據數據庫需求分析定義數據庫中包含5個數據庫表。
1.cAdmin表,用于保存管理員信息如表2所示:

表2 cAdmin表
2.cStudent表,用于保存學生信息如表3所示:

表3 cStudent表

表4 cTeacher表
4.cCourse表,用于保存課程信息如表5所示:

表5 cCourse表
5.cSC表,用于保存學生選課信息如表6所示:

表6 cSC表
2.3系統安全
1)驗證碼登陸
為了防止不良用戶利用暴力破解程序不斷地嘗試登陸,造成用戶信息泄露,本系統采用驗證碼技術。驗證碼是一種區分用戶是計算機還是人的公共全自動程序。驗證碼技術能夠有效地防止某黑客對某一特定注冊用戶用特定程序暴力破解方式進行不斷地登錄嘗試。本系統通過引用公共類RandomImg類中的GenerateCheckCode()函數返回的隨機字符串作為驗證碼。調用方法如下:
String code=RandomImg.GenerateCheckCode()
2)MD5加密
為了防止用戶密碼在數據庫中以明文顯示,在用戶的身份認證中引入MD5加密。先將用戶輸入的信息進行不可逆加密,然后到數據庫中驗證用戶的賬號和密碼是否存在。對用戶輸入的密碼進行MD5加密通過調用公共類的Common的MD5()方法實現。使用方法如下:
Common.MD5(txtPwd.Text.Trim())
3)防止SQL注入式攻擊
所謂SQL注入式攻擊[11]-[12],就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務器執行惡意的SQL命令。例如,在用戶名中輸入admin,在密碼的文本框中輸入’’or’1’=’1’,那么查詢語句就成為
Select count(*) from tbAdmin where username=’admin’and password=’’or’1’=’1’
執行之后的返回值為所有的用戶總數,通過上面的方法攻擊者不需要知道用戶名和密碼就能順利地登錄系統,系統會錯誤的給攻擊者授權,這將導致系統用戶的身份不能真正進行驗證。為了防止這種SQL注入式攻擊,登錄過程一般都是存儲過程。調用公共類DBBase中的RunProcedureDataTable()函數返回查詢到的用戶記錄。下面是調用DBBase使用存儲過程的方法:
DataTabledt=DBBase.RunProcedureDataTable(“loginAd min”,parameters)
其中,loginAdmin為管理員登錄的存儲過程名,parameters為參數列表。
2.4選課頁面設計
學生選課頁面為學生用戶使用,主要包含課程信息、學生選課、學生預選和選課信息查詢4個模塊,其頁面設計如圖3所示:

圖3 頁面設計
學生可以在這個界面檢索課程信息,從中選擇自己感興趣的課程,完成各種選課的操作。
本系統設計考慮到高校學生的個性化需求,學生可以根據自身學習及興趣愛好進行選修課的選擇。此系統可以實現高校學生選課不受時間和空間限制,隨時隨地的網上選課,使得選課變得更加靈活、方便。在選課算法中引入權重指標,避免了志愿分級篩選算法中只考慮單一因素的不足,提高了系統的公平性,在很大程度上滿足了高校學生選擇選修課的需求。
[1] 百度百科[OL].http://baike.baidu.com/view/1348515.htm
[2] 王翔,邱芬.基于ASP.NET的高校網絡教務管理系統的開發與設計[J].科技廣場,2014,(11):36-39
[3] 趙宏偉,秦昌明.基于B/S 三層體系結構的軟件設計方法研究[J].實驗室研究與探索,2011,30(07):64-66
[4] 路曉亞,楚志凱.高職院校網上選課系統的研究與實現[J].軟件導刊,2011,10(03):198-200
[5] 王歡.基于.NET平臺的信息發布系統的研究與設計[J].科技信息,2011,(25):64-65
[6] 陳翠紅.基于ASP.NET+SQL SERVER2008的高校學生綜合素質網上測評系統設計與開發[J].通化師范學院學報(自然科學),2014,35(03):33-35,68
[7] 楊海榮.基于校園網的網上選課系統的設計與實現[J].湖南稅務高等專科學報學報,2003,16(05):55-57
[8] 李瑞俊,高霞.改進的基于權重優先的學生選課算法設計[J].信息通信,2014,(11):60-61
[9] Ferland JA,Fleruent C.SAPHIR:Adecision support system for Coursescheduling[J].Interfaces.1994,24(02):105-111
[10] 李文俊,喻金科,童強.選課系統中引入權重值分志愿篩選算法研究[J].計算機與現代化,2011,(04):7-9
[11] 張凡.基于.NET的SQL注入式攻擊防范策略[J].電腦與電信,2009,(05):54-55
[12] 肖建芳,陸深煥,廖華麗.選課管理系統的安全分析與防范研究[J].岳陽師范學院學報,2013(03):45-48
Research on Key Technology of University Course-selecting System Implementation
Zhang Liang
(Network Information Center, China University of Petroleum (East China), Qingdao 266500, China)
The modern teaching management depends more and more on software system. Development of course-selecting system can be helpful to improve digital campus construction and promote the realization of no paper working. This system adopts B/S software system structure and is based on .NET with SQL Server 2008 as background database. This paper describes the course-selecting system from the aspects of architecture, development platform, function module, course-selection algorithm and so on. The weight index is added in the fair course-selection algorithm. This system which has certain characteristics of humanity,can adapt to college students' course-selecting demand personalized and makes the results more equitable.
Selecting Course System;Will-oriented Selecting Algorithm; Weight; System Security
TP311
A
1007-757X(2016)06-0036-03
2016.01.20)
中國石油大學高等教育研究基金(GJKT201502)
張 亮(1981-),男,漢族,啟東,中國石油大學(華東),碩士研究生,工程師,研究方向:計算機信息和網絡技術方面的研究,青島,266500