




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、某高等學(xué)校教務(wù)排課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)某高等學(xué)校教務(wù)排課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 摘摘 要要 當(dāng)?shù)谝慌_(tái)計(jì)算機(jī)出現(xiàn)時(shí),不僅意味著新型革命的到來(lái),也預(yù)示著科技時(shí)代 的來(lái)臨。尤其是踏入 21 世紀(jì)后,計(jì)算機(jī)技術(shù)得到了空前的發(fā)展,而網(wǎng)絡(luò)的普及 使得各行各業(yè)逐漸離不開(kāi)電腦。對(duì)于高校而言,在教務(wù)辦公中已經(jīng)越來(lái)越多的 實(shí)現(xiàn)了自動(dòng)化,既提高了工作的效率,也規(guī)范了教學(xué)的操作,增加了科學(xué)性。 在分析以往一些排課系統(tǒng)的基礎(chǔ)上,本設(shè)計(jì)提出一個(gè)基于動(dòng)態(tài)加權(quán)算法 (即貪婪法)的排課系統(tǒng)設(shè)計(jì)方法,采用手動(dòng)預(yù)排、自動(dòng)排課、手動(dòng)調(diào)節(jié)的三 級(jí)排課模式,并對(duì)一些具體的技術(shù)問(wèn)題做出相應(yīng)安排。在功能方面,它能實(shí)現(xiàn) 查閱、修改、添加等比較基本的功能
2、,也能夠?qū)崿F(xiàn)自動(dòng)排課、權(quán)限管理等較復(fù) 雜的功能。本設(shè)計(jì)采用 c/s 模式,主要用 delphi7.0 作為前臺(tái)開(kāi)發(fā)工具,用 sql server 2003 作為后臺(tái)數(shù)據(jù)庫(kù)。經(jīng)過(guò)測(cè)試后,本設(shè)計(jì)已可達(dá)到預(yù)想中的效果,能 夠?qū)崿F(xiàn)簡(jiǎn)易的功能。 關(guān)鍵字關(guān)鍵字:動(dòng)態(tài)加權(quán)算法;自動(dòng)化;c/s 模式;三級(jí)排課模式 design and implementation of a university academic course scheduling system abstract the appearance of the first computer means not only the arrival o
3、f a new type of revolution, also herald the advent of the technological era. particularly in the advent of the 21st century, computer technology has been unprecedented development, and the popularity of the network made businesses do nothing without the assistance of computer. for colleges and unive
4、rsities, the automation of the teaching office has been more and more achieved, which could improve the efficiency of the work, standardize the operation of the teaching, and increase scientific. based on the analysis of the former course scheduling system, the design put forward to a method which i
5、s based on a dynamic weighted algorithm (greedy methods), it uses the manual pre-arrangement, automatic timetable and manual adjustment of the three models, and gets the necessary arrangements to some specific technical problems. concerning the function of system, it achieves basic functions which i
6、nclude access, modify, add, and complex functions like automatically schedule and competence of management. the design uses c/s mode, with delphi as front development tool, and sql server 2003 as backstage database. though testing, the design can reach the desired effect and achieve the simple funct
7、ion. key words: dynamic weighted algorithm; automation; c/s mode; three levels course scheduling model 目目 錄錄 論文總頁(yè)數(shù):25 頁(yè) 1 引 言.1 2 基本理論知識(shí)介紹.1 2.1 sql server 2003 數(shù)據(jù)庫(kù)簡(jiǎn)介.1 2.2 delphi7.0 簡(jiǎn)介.2 2.3 c/s 模式介紹.4 3 教務(wù)排課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).4 3.1 教務(wù)排課系統(tǒng)簡(jiǎn)介.4 3.2 教務(wù)排課系統(tǒng)分析.5 3.2.1 算法分析.5 3.2.2 算法流程圖.6 3.2.3 功能分析.7 3.2.4 需求分析
8、.7 3.3 排課系統(tǒng)的功能模塊.8 3.4 數(shù)據(jù)庫(kù)設(shè)計(jì).9 3.5 系統(tǒng)流程及代碼分析.11 3.5.1 系統(tǒng)流程圖.11 3.5.2 代碼分析.11 4 系統(tǒng)測(cè)試.18 4.1 測(cè)試環(huán)境.18 4.2 主要模塊測(cè)試.18 4.3 測(cè)試結(jié)果.22 結(jié) 論.22 參考文獻(xiàn).23 致 謝.24 聲 明.25 1 1 引引 言言 隨著計(jì)算機(jī)的發(fā)展和教育改革的不斷深入,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷成熟, 綜合教學(xué)網(wǎng)絡(luò)已廣泛應(yīng)用于學(xué)校教學(xué)、管理的各個(gè)領(lǐng)域,特別是教務(wù)排課系統(tǒng) 的應(yīng)用。它代表著學(xué)校教學(xué)管理的水平,是現(xiàn)代化管理的手段。目前大多數(shù)教 務(wù)排課系統(tǒng)是采用各教學(xué)單位進(jìn)行教學(xué)任務(wù)的指派,然后將教學(xué)任務(wù)單提交
9、教 務(wù)科,教務(wù)人員將數(shù)據(jù)輸入計(jì)算機(jī),進(jìn)行排課、打印課程表等工作。這種教務(wù) 排課系統(tǒng)只是在一定程度上減輕了教務(wù)人員排課的負(fù)擔(dān)。 近幾年來(lái),我國(guó)高等教育事業(yè)的快速發(fā)展,高校新生的擴(kuò)招力度加大,各 個(gè)高校中的多個(gè)校區(qū)、多個(gè)學(xué)院的教學(xué)管理模式已經(jīng)隨處可見(jiàn),各高校都面臨 著教室資源緊張的問(wèn)題。原來(lái)每個(gè)班有一個(gè)固定教室的模式已不存在,甚至原 來(lái)一個(gè)系專(zhuān)用的教學(xué)樓也要考慮參加全校的教室資源統(tǒng)一調(diào)整?,F(xiàn)在的本科院 校包括研究生在內(nèi),一般都有上萬(wàn)人或幾萬(wàn)人的規(guī)模。要在每個(gè)學(xué)期末的一個(gè) 短時(shí)間內(nèi)拿出一份涉及到有關(guān)全校教室統(tǒng)調(diào)的課表來(lái),對(duì)高校的教務(wù)處來(lái)說(shuō)確 實(shí)是一個(gè)很艱巨的任務(wù)。 排課系統(tǒng)的主要任務(wù)是根據(jù)現(xiàn)有的教學(xué)
10、資源對(duì)課程進(jìn)行合理的安排。由于 高校班級(jí)數(shù)、課程門(mén)數(shù)較多,每門(mén)課有涉及很多信息,如果用手工進(jìn)行排課, 不可避免地出現(xiàn)教室資源沖突或教師資源沖突的情況。 如何更有效地利用人力、物力資源,充分發(fā)揮計(jì)算機(jī)的輔助作用,減輕教 務(wù)人員的工作強(qiáng)度,在對(duì)需求進(jìn)行詳細(xì)的分析后,本文提出了基于教學(xué)大綱的 教務(wù)排課設(shè)計(jì)思想,并對(duì)其算法進(jìn)行了描述。本論文就該教務(wù)排課系統(tǒng)的設(shè)計(jì) 實(shí)現(xiàn)進(jìn)行了分析探討:首先對(duì)系統(tǒng)的需求分析做了敘述,然后介紹了系統(tǒng)的設(shè) 計(jì)和實(shí)現(xiàn),最后進(jìn)行了系統(tǒng)測(cè)試。本系統(tǒng)采用 delphi7.0 作為前臺(tái)開(kāi)發(fā)工具, 采用 sql server 2003 作為后臺(tái)數(shù)據(jù)庫(kù)。 2 2 基本理論知識(shí)介紹基本理論知
11、識(shí)介紹 2.12.1 sqlsql serverserver 20032003 數(shù)據(jù)庫(kù)簡(jiǎn)介數(shù)據(jù)庫(kù)簡(jiǎn)介 microsoft sql server 2003 是 microsoft 公司繼 sql server 6.5 和 sql server 7.0 以后,推出的又一改進(jìn)的新版關(guān)系型數(shù)據(jù)管理系統(tǒng)。它能使用戶(hù)快 捷地管理數(shù)據(jù)庫(kù)和開(kāi)發(fā)應(yīng)用程序。sql server 2003 使用了先進(jìn)的數(shù)據(jù)庫(kù)結(jié)構(gòu), 與 windows dna 緊密集成,具有強(qiáng)大的 web 功能,它可以利用高端硬件平臺(tái)以 及最新網(wǎng)絡(luò)和存儲(chǔ)技術(shù),可以為最大的 web 站點(diǎn)和企業(yè)應(yīng)用提供優(yōu)良的擴(kuò)展性 和可靠性,使用戶(hù)能夠在 intern
12、et 領(lǐng)域快速建立服務(wù)系統(tǒng),為占領(lǐng)市場(chǎng)贏得寶 貴的時(shí)間。同時(shí),sql server 2003 還為用戶(hù)提供了重要的安全性功能的增強(qiáng), 為用戶(hù)的數(shù)據(jù)安全提供了可靠的保證。另外,sql server 2003 在數(shù)據(jù)庫(kù)服務(wù)器 自動(dòng)管理技術(shù)方面處于數(shù)據(jù)庫(kù)領(lǐng)域的領(lǐng)先地位,它可以使用戶(hù)免去繁瑣復(fù)雜的 工作量,從而有精力處理更重要的問(wèn)題,使用系統(tǒng)在商業(yè)戰(zhàn)略上占得先機(jī)。 關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)是當(dāng)前最流行的數(shù)據(jù)庫(kù)管理系統(tǒng)。它是一個(gè)非常復(fù)雜的 系統(tǒng)軟件,對(duì)數(shù)據(jù)庫(kù)的所有操作,包括定義、查詢(xún)、更新和各種運(yùn)行控制最終 都通過(guò)它來(lái)實(shí)現(xiàn)的,因此它是使數(shù)據(jù)庫(kù)系統(tǒng)具有數(shù)據(jù)共享、并發(fā)訪問(wèn)、數(shù)據(jù)獨(dú) 立等特性的根本保證。目前,micr
13、osoft sql server 2003 是在成熟和強(qiáng)大的 關(guān)系型數(shù)據(jù)庫(kù)中最受歡迎、應(yīng)用最廣泛的一個(gè)。 就關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(rdbms)而言,它是位于用戶(hù)與操作系統(tǒng)之間的一層 數(shù)據(jù)管理軟件,它主要負(fù)責(zé)強(qiáng)化數(shù)據(jù)庫(kù)的結(jié)構(gòu),簡(jiǎn)單來(lái)說(shuō)包括如下功能: (1) 維持?jǐn)?shù)據(jù)庫(kù)中數(shù)據(jù)的關(guān)系。 (2) 保障數(shù)據(jù)的正確存儲(chǔ),即保障定義數(shù)據(jù)之間的關(guān)系的種種規(guī)則不會(huì)被 違背。 (3) 在系統(tǒng)出錯(cuò)時(shí),把數(shù)據(jù)恢復(fù)到一個(gè)能保證一致性的狀態(tài)。 sql server 2003 系統(tǒng)之所以成為目前流行的大型商用數(shù)據(jù)庫(kù)系統(tǒng),有著 其深刻的內(nèi)在因素,這與它鮮明的特點(diǎn)是分不開(kāi)的: (1) 與 internet 的高度集成。 (2)
14、高伸縮性和適應(yīng)性。 (3) 企業(yè)級(jí)數(shù)據(jù)庫(kù)功能強(qiáng)。 (4) 易于安裝和使用。 (5) 具有決策支持的資料倉(cāng)庫(kù)。 2.22.2 delphi7.0delphi7.0 簡(jiǎn)介簡(jiǎn)介 delphi 是 borland 公司發(fā)布的用于開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的工具,它是目前 開(kāi)發(fā)客戶(hù)/服務(wù)器數(shù)據(jù)庫(kù)應(yīng)用程序的強(qiáng)有力的工具。delphi 是具有可視化界面 的面向?qū)ο缶幊陶Z(yǔ)言.而最新的 delphi 7.0 具有以下新特點(diǎn): 和以往 delphi 的每一個(gè)新版本一樣,delphi 7 繼續(xù)改善了開(kāi)發(fā)環(huán)境,幫 助程序員提高效率。delphi 7 在集成開(kāi)發(fā)環(huán)境中加入了很多讓程序員愛(ài)不釋手 的新功能,下面是對(duì)它們的一個(gè)簡(jiǎn)單
15、介紹。 (1)code complete(代碼完成) code complete 功能在 delphi 5 中就已經(jīng)加入了,這項(xiàng)功能非常受程序員 的歡迎,因?yàn)?code complete 可以大幅度地減少程序員需要鍵入的程序代碼, 并且減少鍵入錯(cuò)誤。 delphi 7 的 code complete 功能在原有的基礎(chǔ)上繼續(xù)改 善,新的 code complete 窗口不但可以由程序員自行調(diào)整大小,而且可以使用 不同的顏色代表不同的對(duì)象,例如變量、方法和特性等。 (2)object treeview(對(duì)象樹(shù)視圖) 另外一個(gè)新功能就是 delphi 7 的 object treeview 窗口。這
16、個(gè)新的窗口除 了可以顯示窗體中所有的對(duì)象之外,也可以以分層方式表達(dá)組件之間的關(guān)系。 當(dāng)程序員在 object treeview 窗口中單擊了一個(gè)組件之后,這個(gè)組件會(huì)立刻出 現(xiàn)在對(duì)象查看器之中,這時(shí)程序員可以改變這個(gè)對(duì)象的特性值和事件處理程序。 當(dāng)窗體復(fù)雜,擁有大量的組件時(shí),object treeview 窗口可以讓用戶(hù)迅速 找到這個(gè)組件,并且知道與當(dāng)前組件相關(guān)的組件,非常方便。 (3)可定制的 view 窗口 delphi 7 最強(qiáng)勁的集成開(kāi)發(fā)環(huán)境功能應(yīng)該要算是新的可定制的 view 窗口 了。在 delphi 7 中,編輯器不但可以讓程序員觀看和編輯 object pascal 的 程序代碼
17、,而且如果程序員編輯的是 web 應(yīng)用程序,那么還可以直接在編輯器 中查看 html 程序代碼、腳本語(yǔ)言程序代碼,預(yù)覽 web 應(yīng)用程序執(zhí)行結(jié)果的畫(huà)面 以及 web 應(yīng)用程序產(chǎn)生的 html 程序代碼。 (4)新添加 indy intercepts 和 indy i/o handler 構(gòu)件組 企業(yè)版的 delphi 7 中,這兩個(gè)構(gòu)件組基本上提供了針對(duì)現(xiàn)今流行的 internet 協(xié)議編程的構(gòu)件。可以進(jìn)行更為底層的操作。 (5)新添加 iw standard、iw data、iw client side 和 iw control 構(gòu)件 組 這些構(gòu)件也是 delphi 7 的顯著改革之一,將
18、intraweb 集成到了標(biāo)準(zhǔn)的構(gòu) 件板中,我們就可以很方便地開(kāi)發(fā)基于 web 的應(yīng)用程序。 (6)新添加的 rave 報(bào)表構(gòu)件組 delphi 7 的標(biāo)準(zhǔn)構(gòu)件板中已經(jīng)沒(méi)有了原來(lái)的 quickreport 構(gòu)件組,取而代 之的是 rave 報(bào)表制作組件,并且提供專(zhuān)門(mén)的報(bào)表制作工具 rave designer。 rave 報(bào)表構(gòu)件是一個(gè)可視化的報(bào)表設(shè)計(jì)工具,大大簡(jiǎn)化了在應(yīng)用程序中加 入報(bào)表的工作。用 rave 報(bào)表構(gòu)件可以做出各種不同的報(bào)表,從最簡(jiǎn)單的到非常 復(fù)雜、個(gè)性化的報(bào)表都可以完成。它的功能包括:圖片支持、對(duì)齊、精確頁(yè)面 定位、打印機(jī)設(shè)置、字體控制、打印預(yù)覽、報(bào)表內(nèi)容重用,并支持 pdf、
19、html、rtf 等文本格式。隨著 active x 數(shù)據(jù)對(duì)象(ado)的推出,它能讓 應(yīng)用程序通過(guò)任意的 ole db 提供者訪問(wèn)和操作數(shù)據(jù)庫(kù),其強(qiáng)大功能使得任何數(shù) 據(jù)訪問(wèn)技術(shù)都黯然失色。 而在數(shù)據(jù)集方面,與 bde 不同 ado 是 microsoft 推出的新一代數(shù)據(jù)訪問(wèn)規(guī) 范,在 delphi7 中它的地位等同于一個(gè)和 bde 并列的數(shù)據(jù)引擎。本系統(tǒng)采用的 就是 ado 數(shù)據(jù)集。 雖然 ado 的功能比 bde 比起來(lái)弱一些,但和 bde 相比 ado 有一些重要的優(yōu)勢(shì), 比如: ado 將會(huì)內(nèi)制在從 windows2000 開(kāi)始 microsoft 新出的所有操作系統(tǒng)中, 單就這一點(diǎn)
20、就足以給其他的數(shù)據(jù)訪問(wèn)方式畫(huà)上問(wèn)號(hào)。 在 delphi7 中提供了對(duì) ado 的全力支持,提供了很多 ado 組件,還增加了 一些新的字段類(lèi)型如:widestring,guid,variant,interface,idispatch 等。 ado 是面向各種數(shù)據(jù)的層次很高的接口,它提供了強(qiáng)大的數(shù)據(jù)訪問(wèn)功能, 可以訪問(wèn)的數(shù)據(jù)對(duì)象有: a.關(guān)系數(shù)據(jù)庫(kù)中的各種數(shù)據(jù); b.非關(guān)系型數(shù)據(jù)庫(kù),如層次型數(shù)據(jù)庫(kù),網(wǎng)狀數(shù)據(jù)庫(kù)等; c.電子郵件與文件系統(tǒng); d.文本與圖象,聲音; e.客戶(hù)事務(wù)對(duì)象。 delphi5.0 版本成功地引入了這項(xiàng)技術(shù),極大程度地?cái)U(kuò)展了數(shù)據(jù)庫(kù)處理能 力,為 delphi 程序員帶來(lái)前所未
21、有的廣闊空間。delphi 以其功能強(qiáng)大、簡(jiǎn)單 易用等諸多特性,深受編程人員的歡迎。所以我選擇了 delphi7.0 作為開(kāi)發(fā)工 具。 2.32.3 c/sc/s 模式介紹模式介紹 c/s (client/server)結(jié)構(gòu),即大家熟知的客戶(hù)機(jī)和服務(wù)器結(jié)構(gòu)。它是軟 件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配 到 client 端和 server 端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷(xiāo)。目前大多數(shù)應(yīng)用軟 件系統(tǒng)都是 client/server 形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向 分布式的 web 應(yīng)用發(fā)展,web 和 client/server 應(yīng)用都可以進(jìn)行同樣的業(yè)
22、務(wù)處 理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶(hù)都可以訪問(wèn)新 的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。 這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。 3 3 教務(wù)排課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)教務(wù)排課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 3.13.1 教務(wù)排課系統(tǒng)簡(jiǎn)介教務(wù)排課系統(tǒng)簡(jiǎn)介 課程編排作為高等院校教務(wù)管理中的一項(xiàng)重要而且繁重的工作,從一般意 義上講,其實(shí)質(zhì)就是對(duì)學(xué)校學(xué)期開(kāi)設(shè)的每門(mén)課程合理地分配時(shí)間資源和教室資 源的過(guò)程。其中涉及教師、教室、時(shí)間和學(xué)生等多種因素,人為要求也比較多, 另外由于這幾年的高校擴(kuò)招導(dǎo)致教室資源比較緊張,諸多因素就加重了課程編 排工作的難度和復(fù)雜度。如果完全由人工
23、來(lái)編排課表,費(fèi)時(shí)費(fèi)力,其科學(xué)性、 方便性更是難以保證,所以利用計(jì)算機(jī)進(jìn)行自動(dòng)排課的想法自然而生。目前, 經(jīng)研究用來(lái)解決排課問(wèn)題的方法有:模擬手工排課法、圖論方法、模擬退火法等。 國(guó)內(nèi)針對(duì)課表問(wèn)題也相繼研制出了一些排課軟件,但是軟件的通用性差,因各 學(xué)校教學(xué)資源不盡相同,管理課表的方法也不乏個(gè)性,很難完全規(guī)范化、程序 化。本文根據(jù)某高校的實(shí)際情況,結(jié)合以往的排課經(jīng)驗(yàn),通過(guò)靜態(tài)設(shè)置教學(xué)任 務(wù)的優(yōu)先級(jí)、分配時(shí)間片資源和教室資源時(shí)根據(jù)相關(guān)參數(shù)動(dòng)態(tài)設(shè)置其優(yōu)先級(jí)的 算法設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)高校智能排課系統(tǒng)。如何充分利用有限的教室和時(shí)間資 源合理地編排課表,是本文致力研究的主要問(wèn)題。 3.23.2 教務(wù)排課系統(tǒng)
24、分析教務(wù)排課系統(tǒng)分析 3.2.13.2.1 算法分析算法分析 在排課系統(tǒng)中,關(guān)鍵的部分在于算法的選擇。好的算法不僅可以節(jié)省時(shí)間, 更可以提高效率。 幾種排課算法比較: (1)自動(dòng)排課算法:此算法以課程為中心,進(jìn)行搜索匹配,取最先匹配的 值;具有占有空間少,運(yùn)算速度快的特點(diǎn)。但其未對(duì)數(shù)據(jù)進(jìn)行擇優(yōu)選取,所以 不能對(duì)教學(xué)資源(教師、教室)合理分配,也不能滿(mǎn)足一些特殊要求(比如有 些老師喜歡上午上課,有些老師偏向于集中式上課;有些課程安排在上午更合 適些,有些課程不能安排到上午等) 。 (2)基于優(yōu)先級(jí)的排課算法:從數(shù)學(xué)上講, 排課問(wèn)題是一個(gè)在時(shí)間、教師、 學(xué)生和教室四維空間, 以教學(xué)計(jì)劃和各種特殊要
25、求為約束條件的組合規(guī)劃問(wèn)題。 其實(shí)質(zhì)就是解決各因素之間的沖突。在設(shè)計(jì)算法時(shí), 為了降低課程調(diào)度的算法 復(fù)雜性, 可采用化整為零的思想 此算法對(duì)班級(jí)及教室劃分等價(jià)類(lèi),對(duì)學(xué)校資源進(jìn)行了合理的利用。但對(duì)一 些特殊要求還是無(wú)法具體體現(xiàn)出來(lái)。 (3)基于時(shí)間片優(yōu)先級(jí)排課算法:此算法屬于貪婪算法。每次對(duì)教師、教 室資源的選取都是取當(dāng)前最優(yōu)的數(shù)據(jù)。按照教師、教室、班級(jí)的優(yōu)先級(jí)取最優(yōu) 值,所以對(duì)各對(duì)象的一些特殊要求會(huì)很明顯的體現(xiàn)出來(lái),在教師、教室資源不 緊缺的情況下,此算法能排出相對(duì)合理的課程。相對(duì)于之前介紹的兩個(gè)算法, 在處理各種特殊要求的能力上有明顯的優(yōu)勢(shì)。 本系統(tǒng)采用的是動(dòng)態(tài)加權(quán)算法即貪婪算法。貪婪法是
26、一種不追求最優(yōu)解, 只希望得到較為滿(mǎn)意解的方法。貪婪法一般可以快速得到滿(mǎn)意的解,因?yàn)樗?去了為找最優(yōu)解要窮盡所有可能而必須耗費(fèi)的大量時(shí)間。貪婪法常以當(dāng)前情況 為基礎(chǔ)作最優(yōu)選擇,而不考慮各種可能的整體情況。在解決排課沖突時(shí),為減 少貪婪法的缺點(diǎn),特在自動(dòng)排課功能后加入手動(dòng)調(diào)節(jié)功能,使用者可對(duì)不滿(mǎn)意 的課程再次調(diào)節(jié)。以下為算法過(guò)程: (1) 初始化排課數(shù)組、課程申請(qǐng)數(shù)組。 (2) 賦初始權(quán)值并對(duì)課程申請(qǐng)數(shù)組排序。 (3) 將課程申請(qǐng)碼按序進(jìn)行排課,結(jié)果存儲(chǔ)在排課數(shù)組中。 (4) 排課思想是將一星期分為幾個(gè)層:星期一至五的上午和下午一二節(jié)、 星期一至五的上午及下午三四節(jié)、星期六全天、星期一至五的晚
27、間。對(duì)不同的 層進(jìn)行排課,可避免同一天同一老師授同一門(mén)課的問(wèn)題。 (5) 若全部排完,則轉(zhuǎn)(7) ;否則,計(jì)算并重新賦相應(yīng)權(quán)值。 (6) 對(duì)申請(qǐng)數(shù)組重新排序,轉(zhuǎn)到(3) 。 (7) 結(jié)束。 3.2.23.2.2 算法流程圖算法流程圖 系統(tǒng)的算法流程圖,如圖 1 所示。 清空排課記錄 各種信息初始化 計(jì)算權(quán)值 計(jì)算總周課數(shù) 將排課記錄寫(xiě)入數(shù)據(jù)庫(kù) 檢測(cè)沖突 異常函數(shù)處理 打印課表 結(jié)束 開(kāi)始 圖 1 算法流程圖 說(shuō)明:不管是否首次排課,首先進(jìn)行清空排課記錄,對(duì)各種信息的初始化 后,計(jì)算權(quán)值和總周課數(shù),就可以將排課記錄寫(xiě)入數(shù)據(jù)庫(kù),這實(shí)際也是自動(dòng)排 課的過(guò)程。排完后系統(tǒng)會(huì)進(jìn)行檢測(cè)沖突,若有沖突則彈出提
28、示框,進(jìn)行異常函 數(shù)的處理。有需要的,可打印課表。 3.2.33.2.3 功能分析功能分析 由于排課算法以及沖突檢測(cè)在細(xì)節(jié)上有很多限制,在設(shè)計(jì)之前我們做了詳 細(xì)的討論和分析,得出了排課系統(tǒng)功能的細(xì)節(jié)問(wèn)題: (1) “公共基礎(chǔ)課和公選課優(yōu)先固定” ,由于這兩種課一般由教務(wù)處制訂 課程計(jì)劃,因此應(yīng)該在自動(dòng)排課之前將它們優(yōu)先固定。 (2) “一師多課”沖突情況,即一位教師在同一時(shí)間內(nèi)排了一門(mén)以上的 課。 (3) “一室多課”沖突情況,即一個(gè)教室在同一時(shí)間內(nèi)排了一門(mén)以上的 課。 (4) “一班多課”沖突情況,即一個(gè)班級(jí)在同一時(shí)間內(nèi)排了一門(mén)以上的 課。 (5) “教室容量匹配”情況,即上課班級(jí)人數(shù)應(yīng)該與
29、所在教室的人數(shù)匹 配。 (6) “合班和分班課程”情況,即在排課時(shí)考慮像英語(yǔ)這樣的分班課和 政治這樣的合班課如何排課。 (7) “課程單雙周”情況,即某些總課時(shí)較少的課程,可以考慮在單周 或雙周排課。 (8) “同一課程間隔”盡量讓同一課程在一周內(nèi)課時(shí)內(nèi)的排課分布均勻。 (9) “課程優(yōu)先級(jí)”盡量讓學(xué)分值高的,重要的課程排在黃金時(shí)間,課 程優(yōu)先級(jí)低的排在其他時(shí)間。 (10) “課程擴(kuò)充”如果正常情況下無(wú)法滿(mǎn)足課程的需要,就要在晚上或 者周六日進(jìn)行課時(shí)的擴(kuò)充。 (11) “課程與教室匹配”情況,課程要求的條件必須與教室設(shè)備條件相 匹配,如是否需要多媒體授課等。 3.2.43.2.4 需求分析需求
30、分析 針對(duì)功能分析中的各種問(wèn)題,我們?cè)诓殚喠艘恍╆P(guān)于排課設(shè)計(jì)的資料以 及試用了幾種排課軟件之后,認(rèn)為在排課設(shè)計(jì)中需要實(shí)現(xiàn)以下幾個(gè)需求: (1) 手動(dòng)預(yù)排課。由于存在公共基礎(chǔ)課以及公選課,而這些課程的設(shè) 置完全有教務(wù)處制定,因此這些課程應(yīng)該預(yù)先設(shè)置。 (2) 自動(dòng)排課。根據(jù)輸入的基本信息,進(jìn)行自動(dòng)排課,生成課表。在 自動(dòng)排課完成后,將排課異常信息給予反饋。 (3) 手動(dòng)調(diào)節(jié)。完全依賴(lài)自動(dòng)排課排出的課表不能完全符合客觀需求, 同時(shí)我們?cè)谒惴皟?yōu)先級(jí)確定的精確度方面的水平也有限,因此,應(yīng)該增加 手動(dòng)調(diào)節(jié)功能,以進(jìn)一步確保合理性。 (4) 設(shè)置沖突檢測(cè)方法。主要是針對(duì)手動(dòng)預(yù)排課和手動(dòng)調(diào)節(jié)功能可能 出現(xiàn)
31、的沖突情況,完善手動(dòng)排課。 (5) 系統(tǒng)友好性。排課系統(tǒng)與使用者應(yīng)具有交互性,可以增加排課向 導(dǎo)提示用戶(hù)的使用。 (6) 權(quán)限管理。主要針對(duì)管理員權(quán)限的用戶(hù)可以進(jìn)行擁護(hù)的添加、修 改和刪除。 3.33.3 排課系統(tǒng)的排課系統(tǒng)的功能模塊功能模塊 在系統(tǒng)分析的基礎(chǔ)上,我們提出了系統(tǒng)的功能模塊,如圖 2 所示。 教務(wù)排課系統(tǒng) 系統(tǒng)管理基本信息管理排課管理 系 統(tǒng) 幫 助 權(quán) 限 管 理 教 師 信 息 管 理 教 室 信 息 管 理 班 級(jí) 信 息 管 理 課 程 信 息 管 理 課 程 申 請(qǐng) 管 理 手 動(dòng) 預(yù) 排 管 理 自 動(dòng) 排 課 管 理 手 動(dòng) 調(diào) 節(jié) 管 理 基 本 信 息 設(shè) 置
32、圖 2 功能模塊圖 前面描述了教務(wù)排課系統(tǒng)的功能模塊劃分,但沒(méi)給出各模塊之間的關(guān)系。 在本系統(tǒng)中,可以把模塊分為三個(gè)功能集合: (1) 系統(tǒng)管理功能集合。該集合包括權(quán)限管理和系統(tǒng)幫助兩個(gè)模塊。當(dāng)使 用者為管理員時(shí)可進(jìn)行權(quán)限管理功能,它能夠添加新的使用者,也可對(duì)已有的 用戶(hù)進(jìn)行名稱(chēng)、密碼的修改和刪除。系統(tǒng)幫助功能介紹了開(kāi)發(fā)系統(tǒng)的相干信息。 (2) 基本信息管理功能集合。該集合包括教師信息管理、教室信息管理、 班級(jí)信息管理、課程信息管理、課程申請(qǐng)管理五個(gè)模塊。在該集合內(nèi)可查看相 應(yīng)的數(shù)據(jù)表,對(duì)于管理員級(jí)別的用戶(hù)可對(duì)以上表的內(nèi)容進(jìn)行添加、修改、刪除 的功能。對(duì)于一般用戶(hù),只能實(shí)現(xiàn)查看信息的基本功能。
33、 (3) 排課管理功能集合。在基本信息設(shè)置模塊中,可查看當(dāng)前日期,又可 設(shè)置限制排課的條件,如不加限制排課、不在晚上和星期六排課等。而一般用 戶(hù)只能查看管理員設(shè)置的條件。在排課時(shí),管理員先在課程信息管理中設(shè)置好 要預(yù)先排課的課程,然后調(diào)節(jié)限制排課的條件,就可以使用自動(dòng)排課功能。用 戶(hù)可在排好后的課表中查看課表,對(duì)于不滿(mǎn)意的課程安排可用手動(dòng)進(jìn)行相應(yīng)的 調(diào)節(jié),而手動(dòng)排課也可針對(duì)實(shí)驗(yàn)課等靈活性的課程。 3.43.4 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì) (1)課程信息數(shù)據(jù)表 其中課程代碼唯一標(biāo)識(shí)一門(mén)課程,課程類(lèi)型用來(lái)確定課程優(yōu)先級(jí),而課程 性質(zhì)是課程所需教室條件的信息。如表 1 所示。 表 1 課程信息表 字段名稱(chēng)
34、數(shù)據(jù)結(jié)構(gòu)說(shuō)明 課程名稱(chēng) varchar 課程類(lèi)別 varchar 考核方式 varchar 有考試、考查等 課程性質(zhì) varchar 有公共課、必修課等 說(shuō)明 varchar (2)班級(jí)信息數(shù)據(jù)表 其中申請(qǐng)代碼唯一標(biāo)識(shí)一個(gè)申請(qǐng)記錄,是否合班,合班班級(jí),是否分班分 別針對(duì)合班課與分班課設(shè)置。如表 2 所示。 表 2 班級(jí)信息表 字段名稱(chēng)數(shù)據(jù)結(jié)構(gòu)說(shuō)明 班級(jí)名稱(chēng) varchar 班級(jí)人數(shù) int 專(zhuān)業(yè) varchar 包括系別 年級(jí) varchar 班級(jí)碼 int 班級(jí)的編號(hào) (3)教室信息數(shù)據(jù)表 其中教室代碼唯一標(biāo)識(shí)一個(gè)教室,教室容量和性質(zhì)分別判斷是否與班級(jí)和 課程性質(zhì)的相匹配。如表 3 所示。
35、表 3 教室信息表 字段名稱(chēng)數(shù)據(jù)結(jié)構(gòu)說(shuō)明 教室名稱(chēng) varchar 教室容量 int 即最大限度的上課人數(shù) 教室性質(zhì) varchar 一般教室、多媒體教室 等 教室碼 int 教室的編號(hào) (4)老師信息數(shù)據(jù)表 其中教師代碼唯一標(biāo)識(shí)一位教師,教師職稱(chēng)和學(xué)位確定教師優(yōu)先級(jí),住所 判斷老師是否在校外居住,排課時(shí)給予一定的優(yōu)先級(jí)。如表 4 所示。 表 4 老師信息表 字段名稱(chēng)數(shù)據(jù)結(jié)構(gòu)說(shuō)明 老師姓名 varchar 無(wú) 職稱(chēng) varchar 無(wú) 學(xué)位 varchar 本科、碩士、博士 住所 varchar 校內(nèi)、校外 (5)課表信息數(shù)據(jù)表 表 5 是在用戶(hù)使用系統(tǒng)的“保存課表”功能鍵時(shí)自動(dòng)生成。它實(shí)現(xiàn)自
36、動(dòng)清 除、自動(dòng)添加,具有流動(dòng)性和可操作性。如表 5 所示。 表 5 課程安排信息表 字段名稱(chēng)數(shù)據(jù)結(jié)構(gòu)說(shuō)明 申請(qǐng)碼 int 課程的編號(hào) 課程名 varchar 無(wú) 星期一 varchar 無(wú) 星期二 varchar 無(wú) 星期三 varchar 無(wú) 星期四 varchar 無(wú) 星期五 varchar 無(wú) 星期六 varchar 無(wú) 教室名 varchar 無(wú) 老師名 varchar 無(wú) 班級(jí)名 varchar 無(wú) 周課數(shù) int 一周上課的次數(shù) 學(xué)分 int 無(wú) 開(kāi)始周 int 從第幾周開(kāi)始上課 周數(shù) int 共上幾周的課時(shí) 是否預(yù)排課 bit 無(wú) 3.53.5 系統(tǒng)流程及代碼分析系統(tǒng)流程及代碼分
37、析 3.5.13.5.1 系統(tǒng)流程圖系統(tǒng)流程圖 系統(tǒng)流程圖,如圖 3 所示。 計(jì)算總課時(shí) 總課時(shí)合適? 置標(biāo)志 讀數(shù)據(jù)庫(kù) 當(dāng)前位置排課? 有無(wú)沖突? 寫(xiě)入課表 排課結(jié)束? 保存 y n y 沖突解決 y n y n 結(jié)束 開(kāi)始 n 圖 3 系統(tǒng)流程圖 系統(tǒng)流程圖主要針對(duì)排課過(guò)程,即當(dāng)用戶(hù)設(shè)置好相應(yīng)的排課條件、點(diǎn)擊“自 動(dòng)排課”項(xiàng),系統(tǒng)所進(jìn)行的流程。其中的“沖突解決”項(xiàng)有兩種解決方法:一 是在系統(tǒng)運(yùn)行時(shí)進(jìn)行的自我調(diào)節(jié),另一種是運(yùn)用手動(dòng)排課功能解決?!皩?xiě)入課 表”項(xiàng),是在運(yùn)行時(shí)已完成寫(xiě)入課表的功能,若用戶(hù)需要,可單擊“保存課表” 項(xiàng)生成 excel 格式的文本。 3.5.23.5.2 代碼分析代碼分析 本系統(tǒng)主要由三部分構(gòu)成:權(quán)限管理,各類(lèi)信息管理,排課管理。 (1)權(quán)限管理模塊 該模塊可實(shí)現(xiàn)管理員級(jí)別用戶(hù)可以對(duì)所有用戶(hù)進(jìn)行添加、刪除、修改的功 能。以下摘錄保存功能的代碼: procedure tfrm_yh.save_buttonclick(sender: tobject); combobox.text; fieldvalues教師姓名:=lsname_combobox.text; fieldvalues
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高校畢業(yè)生就業(yè)安置與就業(yè)技能培訓(xùn)與就業(yè)保障服務(wù)合同
- 二零二五年度股份轉(zhuǎn)讓與新能源項(xiàng)目投資合作框架協(xié)議
- 二零二五年度排煙道安裝與通風(fēng)系統(tǒng)優(yōu)化合同
- 運(yùn)動(dòng)會(huì)發(fā)言稿100字
- 2025年臨滄道路貨運(yùn)運(yùn)輸從業(yè)資格證模擬考試
- 結(jié)對(duì)子發(fā)言稿
- 解除與終止勞動(dòng)合同
- 國(guó)際貿(mào)易實(shí)務(wù)練習(xí)題目
- 詩(shī)歌理解啟蒙:鄉(xiāng)愁英語(yǔ)語(yǔ)法解析課
- 草籽采購(gòu)合同
- 安全生產(chǎn)法律法規(guī)匯編(2025版)
- 義務(wù)教育化學(xué)課程標(biāo)準(zhǔn)(2022年版)解讀
- 生產(chǎn)加工型小微企業(yè)安全管理考試(含答案)
- 2《幼苗長(zhǎng)大了》課件
- 《麻精藥品培訓(xùn)》ppt課件
- JMP操作簡(jiǎn)要培訓(xùn)
- 勝利油田壓驅(qū)技術(shù)工藝研究進(jìn)展及下步工作方向
- 研究生復(fù)試匯報(bào)ppt
- 畢節(jié)市疾病預(yù)防控制中心衛(wèi)生應(yīng)急管理工作規(guī)范
- 倉(cāng)儲(chǔ)物流部組織架構(gòu)及崗位設(shè)置資料
- 2.6米材積計(jì)算表
評(píng)論
0/150
提交評(píng)論