安徽財(cái)經(jīng)大學(xué)管理科學(xué)與工程學(xué)院 劉 濤 張勝寶
隨著國家高等教育的普及程度越來越廣,各大高校的擴(kuò)招規(guī)模越來越大,專業(yè)劃分門類也日趨增多,這就給高等學(xué)校的課程安排工作帶來了極大的挑戰(zhàn)。安徽財(cái)經(jīng)大學(xué)是一所以經(jīng)濟(jì)學(xué)、管理學(xué)、法學(xué)為主,跨文學(xué)、理學(xué)、工學(xué)、史學(xué)七大學(xué)科門類的多科性高等財(cái)經(jīng)院校,擁有62個(gè)本科專業(yè),在校普通本科生21783人。這就使得排課任務(wù)更加復(fù)雜、繁瑣,如何通過有效、科學(xué)地排課,編排出既能滿足日常教學(xué)活動(dòng)要求,又高效省時(shí)的課表,這是學(xué)校相關(guān)部門需要面對(duì)的一個(gè)重大難題。本文在參考眾多與排課系統(tǒng)有關(guān)的文獻(xiàn)期刊的基礎(chǔ)之上,通過對(duì)安徽財(cái)經(jīng)大學(xué)的師資力量及教學(xué)資源進(jìn)行詳細(xì)的調(diào)查,確定了智能排課系統(tǒng)的功能需求,并設(shè)計(jì)、實(shí)現(xiàn)了智能排課系統(tǒng)的各項(xiàng)功能。
正文:本軟件使用c#語言進(jìn)行編寫。主要使用Microsoft visio studio2012和 SqlServer 2012軟件。任何一個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)都應(yīng)該由數(shù)據(jù)庫和實(shí)際應(yīng)用程序兩個(gè)方面構(gòu)成,數(shù)據(jù)庫獨(dú)立與應(yīng)用程序,這種設(shè)計(jì)可以增強(qiáng)數(shù)據(jù)的重用性與獨(dú)立性。智能排課系統(tǒng)的分析、設(shè)計(jì)、實(shí)施過程復(fù)雜,本文將通過可行性分析、系統(tǒng)流程分析、數(shù)據(jù)流程及數(shù)據(jù)庫設(shè)計(jì)等四個(gè)方面論述:
考慮到自動(dòng)排課與手工排課各有優(yōu)勢(shì),因此本系統(tǒng)采用將兩者相結(jié)合的方式來進(jìn)行排課工作。首先,先根據(jù)學(xué)校各專業(yè)課程及各業(yè)余選修課程教學(xué)計(jì)劃情況進(jìn)行系統(tǒng)的自動(dòng)排課,將預(yù)排課結(jié)果存儲(chǔ)在相應(yīng)的數(shù)據(jù)表里,這樣就完成排課工作的大部分任務(wù);其次,再針對(duì)一些由于約束條件過高而無法使用自動(dòng)排課來完成的課程進(jìn)行單獨(dú)的手工排課,這同樣也是十分重要的一個(gè)環(huán)節(jié),手工排課只考慮教室是否可用兩種情況,選取可用教室的可用時(shí)間段進(jìn)行安排即可,排課時(shí)一般都遵循人數(shù)多的課程班優(yōu)先安排在大課室上課的原則。經(jīng)過手工排課的排課結(jié)果也要存放在相應(yīng)的數(shù)據(jù)庫中保存。其基本流程如圖1所示。
由于實(shí)際情況下,一所高校往往擁有不同的校區(qū),為了達(dá)到多校區(qū)來往方便的目的,本文論述的排課系統(tǒng)并不是全部都是對(duì)全部課程進(jìn)行安排,而是在小規(guī)模的課程范圍與教室范圍內(nèi)進(jìn)行手工或自動(dòng)排課活動(dòng)??紤]到全校范圍內(nèi)教室數(shù)量有限,因此,在排課過程中,我們對(duì)同種課程進(jìn)行了整合,將未排課學(xué)生安排到已排課但教室仍有空位置的課程中,以此來節(jié)約教育資源。
根據(jù)需求,本排課系統(tǒng)需采用自動(dòng)排課和手動(dòng)排課相結(jié)合,在自動(dòng)預(yù)排課中,先根據(jù)課程優(yōu)先級(jí)從高到低建立一個(gè)課程鏈表,同時(shí)教室也按有好到差建立一個(gè)教室鏈表。初始化這兩個(gè)鏈表以后,根據(jù)已經(jīng)制定好的教學(xué)計(jì)劃預(yù)排課,有上課時(shí)間的確定上課的教室,沒有上課時(shí)間的確定上課時(shí)間和教室。然后,需要調(diào)整時(shí)間與地點(diǎn)的課程班,在調(diào)課管理或手工排課中調(diào)整上課時(shí)間和地點(diǎn),需要合班上課的進(jìn)行合班操作,檢驗(yàn)是否沖突,形成最終排課,最后保存排課結(jié)果,選擇不同方式打印課表。
數(shù)據(jù)流圖(DFD)是描述信息流和數(shù)據(jù)從輸入移動(dòng)到輸出時(shí)被應(yīng)用的變換的圖形化技術(shù)。
圖1 排課系統(tǒng)的系統(tǒng)流程圖
考慮到一層數(shù)據(jù)流圖難以詳細(xì)地說明數(shù)據(jù)流的流動(dòng)情況,因此,本文采用兩層數(shù)據(jù)流圖來對(duì)系統(tǒng)中數(shù)據(jù)的流動(dòng)進(jìn)行描述。
在排課活動(dòng)進(jìn)行之前,負(fù)責(zé)教務(wù)工作的相關(guān)人員需要提前將準(zhǔn)備工作做好:獲取本學(xué)期教學(xué)安排計(jì)劃并輸入系統(tǒng)、獲得本學(xué)期所有教授課程信息、全??晒┙虒W(xué)使用的教室信息和其他排課約束條件等。為了降低系統(tǒng)數(shù)據(jù)庫的耦合度,我們考慮將不同的信息放置在不同的數(shù)據(jù)庫表中來單獨(dú)保存。然后進(jìn)行排課,最終的排課結(jié)果,我們將其單獨(dú)存放在對(duì)應(yīng)的數(shù)據(jù)庫表中,使用數(shù)據(jù)庫查詢語言可以方便快捷地從系統(tǒng)數(shù)據(jù)庫中查詢出經(jīng)過合理安排的課表,并根據(jù)查詢?nèi)说牟樵円髮⒔Y(jié)果按類別分組并輸出給用戶。
圖2 第0層數(shù)據(jù)流圖
由于第0層數(shù)據(jù)流圖不能較為清晰地描述出數(shù)據(jù)的處理過程,我們?cè)诖嘶A(chǔ)上再進(jìn)一步細(xì)化加工,構(gòu)造更為詳細(xì)的排課流程,即第1層數(shù)據(jù)流圖,在此之前,我們已經(jīng)進(jìn)行了需求分析,在此基礎(chǔ)上我們又可以將排排課系統(tǒng)進(jìn)一步細(xì)分為7大模塊,如圖3所示的:
圖3 第1層數(shù)據(jù)流圖
數(shù)據(jù)庫設(shè)計(jì)(Database Design)是系統(tǒng)設(shè)計(jì)中的重中之重,它指的是在一個(gè)特定的應(yīng)用環(huán)境下,通過分析構(gòu)造出一個(gè)最佳的數(shù)據(jù)庫模式,在此基礎(chǔ)上建立數(shù)據(jù)庫和數(shù)據(jù)表,確保數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的高效性,滿足各種各樣的應(yīng)用需求。本系統(tǒng)通過對(duì)數(shù)據(jù)流程的分析,并對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行了規(guī)范化處理之后,確定按照系統(tǒng)中所需的實(shí)體設(shè)計(jì)6個(gè)數(shù)據(jù)表:教室表、教師表、學(xué)生表、排課規(guī)則表、自動(dòng)排課表、排課結(jié)果表,并在數(shù)據(jù)庫建立過程中,建立適當(dāng)數(shù)量的存儲(chǔ)過程與觸發(fā)器,以此來簡(jiǎn)化代碼設(shè)計(jì)過程中的設(shè)計(jì)難度。
本系統(tǒng)基于當(dāng)下現(xiàn)狀,利用目前比較流行的B/S設(shè)計(jì)模式,流行的關(guān)系型數(shù)據(jù)庫SqlServer以及應(yīng)用非常普遍的asp.net技術(shù),對(duì)本次高校智能排課系統(tǒng)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。本系統(tǒng)將采用mvc設(shè)計(jì)模式,使系統(tǒng)表現(xiàn)層后數(shù)據(jù)層分離,方便系統(tǒng)操作人員管理。
B/S架構(gòu)的全稱為Browser/Server,即瀏覽器/服務(wù)器結(jié)構(gòu)。我們使用B/S模式其優(yōu)勢(shì)首先在于它具有分布性的特點(diǎn),可以隨時(shí)進(jìn)行查詢、瀏覽課表等信息,方便管理人員進(jìn)行課表管理。其次,使用該基于B/S架構(gòu)設(shè)計(jì)出來的系統(tǒng)具有業(yè)務(wù)拓展方便、維護(hù)簡(jiǎn)單方便的特點(diǎn)。只需要在鏈接到國際互聯(lián)網(wǎng)的瀏覽器端登陸進(jìn)行數(shù)據(jù)更改,便可以實(shí)現(xiàn)服務(wù)器端用戶數(shù)據(jù)的同步更新,這大大減少了維護(hù)成本。B/S模式也具備開發(fā)簡(jiǎn)單、共享性強(qiáng)、成本低的特點(diǎn),這將大大減少開發(fā)難度,有效增大項(xiàng)目成功率。并且它的數(shù)據(jù)可以永久存儲(chǔ)在云端而不必?fù)?dān)心數(shù)據(jù)的丟失。
[1]李帥,黃克敏,楊義,張?zhí)烊?王倩.高校學(xué)生選課系統(tǒng)的研究與設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2017,13(09):99-100.
[2]曾偉洪,周軍城.基于C#的學(xué)生選課系統(tǒng)[J].信息記錄材料,2016,17(03):7-8.
[3]馬曉倩,吳瑕,鄭修穎.基于ASP.NET的學(xué)生選課系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].民營(yíng)科技,2016(04):47.
[4]張悅,楊學(xué)全.決策樹算法在學(xué)生選課系統(tǒng)中的應(yīng)用[J].科技經(jīng)濟(jì)市場(chǎng),2014(07):185.
[5]曹風(fēng)華.基于B/S的學(xué)生選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國管理信息化,2011,14(23):65-66.