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

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

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

圖2 改進(jìn)的第一志愿處理流程
2.3數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計(jì)
根據(jù)數(shù)據(jù)庫需求分析定義數(shù)據(jù)庫中包含5個(gè)數(shù)據(jù)庫表。
1.cAdmin表,用于保存管理員信息如表2所示:

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

表3 cStudent表

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

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

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

圖3 頁面設(shè)計(jì)
學(xué)生可以在這個(gè)界面檢索課程信息,從中選擇自己感興趣的課程,完成各種選課的操作。
本系統(tǒng)設(shè)計(jì)考慮到高校學(xué)生的個(gè)性化需求,學(xué)生可以根據(jù)自身學(xué)習(xí)及興趣愛好進(jìn)行選修課的選擇。此系統(tǒng)可以實(shí)現(xiàn)高校學(xué)生選課不受時(shí)間和空間限制,隨時(shí)隨地的網(wǎng)上選課,使得選課變得更加靈活、方便。在選課算法中引入權(quán)重指標(biāo),避免了志愿分級篩選算法中只考慮單一因素的不足,提高了系統(tǒng)的公平性,在很大程度上滿足了高校學(xué)生選擇選修課的需求。
[1] 百度百科[OL].http://baike.baidu.com/view/1348515.htm
[2] 王翔,邱芬.基于ASP.NET的高校網(wǎng)絡(luò)教務(wù)管理系統(tǒng)的開發(fā)與設(shè)計(jì)[J].科技廣場,2014,(11):36-39
[3] 趙宏偉,秦昌明.基于B/S 三層體系結(jié)構(gòu)的軟件設(shè)計(jì)方法研究[J].實(shí)驗(yàn)室研究與探索,2011,30(07):64-66
[4] 路曉亞,楚志凱.高職院校網(wǎng)上選課系統(tǒng)的研究與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2011,10(03):198-200
[5] 王歡.基于.NET平臺(tái)的信息發(fā)布系統(tǒng)的研究與設(shè)計(jì)[J].科技信息,2011,(25):64-65
[6] 陳翠紅.基于ASP.NET+SQL SERVER2008的高校學(xué)生綜合素質(zhì)網(wǎng)上測評系統(tǒng)設(shè)計(jì)與開發(fā)[J].通化師范學(xué)院學(xué)報(bào)(自然科學(xué)),2014,35(03):33-35,68
[7] 楊海榮.基于校園網(wǎng)的網(wǎng)上選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].湖南稅務(wù)高等專科學(xué)報(bào)學(xué)報(bào),2003,16(05):55-57
[8] 李瑞俊,高霞.改進(jìn)的基于權(quán)重優(yōu)先的學(xué)生選課算法設(shè)計(jì)[J].信息通信,2014,(11):60-61
[9] Ferland JA,F(xiàn)leruent C.SAPHIR:Adecision support system for Coursescheduling[J].Interfaces.1994,24(02):105-111
[10] 李文俊,喻金科,童強(qiáng).選課系統(tǒng)中引入權(quán)重值分志愿篩選算法研究[J].計(jì)算機(jī)與現(xiàn)代化,2011,(04):7-9
[11] 張凡.基于.NET的SQL注入式攻擊防范策略[J].電腦與電信,2009,(05):54-55
[12] 肖建芳,陸深煥,廖華麗.選課管理系統(tǒng)的安全分析與防范研究[J].岳陽師范學(xué)院學(xué)報(bào),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)
中國石油大學(xué)高等教育研究基金(GJKT201502)
張 亮(1981-),男,漢族,啟東,中國石油大學(xué)(華東),碩士研究生,工程師,研究方向:計(jì)算機(jī)信息和網(wǎng)絡(luò)技術(shù)方面的研究,青島,266500