

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 實驗小學(xué)教學(xué)管理系統(tǒng)的設(shè)計與實現(xiàn)</p><p> ——后臺數(shù)據(jù)庫系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 制定一個學(xué)校的排課計劃是一項非常耗時且相當(dāng)辛苦的工作,而且它還得由有學(xué)校排課工作經(jīng)驗或者這方面知識的人才能做好。在一所高校時一個課程表的制定是一個難題,因為在有關(guān)課程表的問
2、題上有很多的限制條件得考慮,還有大量的數(shù)據(jù)空間被挖掘,即便你的輸入數(shù)據(jù)量并不是實際意義上的大批量。</p><p> 課程編排系統(tǒng)是一個學(xué)校不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以自動課程編排系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找
3、、更新和維護都帶來了不少的困難。</p><p> 隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。</p><p> 關(guān)鍵字 排課;程序開發(fā);數(shù)據(jù)庫</p><p> Experimental Primary School Teaching Management System D
4、esign and Implementation——Design and Implementation of back-end Database System</p><p><b> Abstract</b></p><p> Formulates a school platoon class plan is an item consumes extremely
5、 when also the quite laborious work, moreover it also must by have the school row of class work experience or this aspect knowledge talented person can complete. When a university a class schedule formulation is a diffic
6、ult problem, because has the very many limiting condition in the related class schedule question to result in the consideration, but also has the massive data space to excavate, even if your input data quantity i</p&g
7、t;<p> The curriculum arranges the system is a school essential part, Its content said regarding the school policy-maker and the superintendent all very important, Therefore the automatic curriculum arranges the
8、system to be supposed to be able to provide the sufficient information and the quick inquiry method for the user. But the people have since always used the traditional artificial way management document file, this manage
9、ment way has many shortcomings, For example: The efficiency low, the secrec</p><p> Along with science and technology unceasing enhancement, The computer science is mature day after day, Its formidable func
10、tion had profoundly known for the people, t entered the human society each domain and is playing the more and more vital role.</p><p> Keywords Course arrangement; Program development; DataBase
11、
12、 </p>
13、<p><b> 第一章 引言1</b></p><p> 1.1 選題背景和意義1</p><p> 1.2 國內(nèi)外研究現(xiàn)狀2</p><p> 1.3 本次設(shè)計所做的工作3</p><p> 1.4 本文的組織結(jié)構(gòu)3</p><p> 第二章 開發(fā)環(huán)境及技
14、術(shù)介紹4</p><p> 2.1 JSP簡介4</p><p> 2.2 Tomcat簡介5</p><p> 2.3 數(shù)據(jù)庫設(shè)計技術(shù)介紹5</p><p> 2.3.1 定義5</p><p> 2.3.2 數(shù)據(jù)庫設(shè)計方法簡述6</p><p> 2.3.3 設(shè)計步驟
15、6</p><p> 2.3.4 各級模式的形成過程8</p><p> 第三章 項目可行性分析9</p><p> 3.1 技術(shù)可行性9</p><p> 3.2 經(jīng)濟可行性9</p><p> 3.3 操作可行性9</p><p> 3.4 維護可行性10<
16、/p><p> 第四章 需求分析11</p><p> 4.1 系統(tǒng)的基本功能11</p><p> 4.2 排課的約束條件11</p><p> 4.3 需求模型12</p><p> 4.3.1 初使用列圖12</p><p> 4.3.2 最后用例圖13</p&
17、gt;<p> 4.3.3 用例描述14</p><p> 4.4 分析模型15</p><p> 4.4.1 分析階段類圖15</p><p> 4.4.2 實體類關(guān)系圖16</p><p> 4.4.3 序列圖/協(xié)作圖創(chuàng)建17</p><p> 4.5 設(shè)計模型19</
18、p><p> 4.5.1 組件圖19</p><p> 4.5.2 配置圖19</p><p> 第五章 排課算法分析與設(shè)計21</p><p> 5.1 背景與研究意義21</p><p> 5.2 解決NP問題的幾種算法及其比較22</p><p> 5.2.1 動態(tài)規(guī)劃
19、22</p><p> 5.2.2 貪心算法22</p><p> 5.2.3 回溯法23</p><p> 5.3 排課系統(tǒng)流程分析23</p><p> 5.3.1 整理課程信息24</p><p> 5.3.2 按等級分類24</p><p> 5.3.3 獲取可安
20、排的教室24</p><p> 5.3.4 排課24</p><p> 5.3.5 生成課表24</p><p> 5.4算法分析24</p><p> 5.4.1 問題的描述24</p><p> 5.4.2 排課約束條件25</p><p> 5.5 算法設(shè)計25&
21、lt;/p><p> 第六章 系統(tǒng)概要設(shè)計28</p><p> 6.1 設(shè)計思想28</p><p> 6.2 系統(tǒng)功能模塊劃分29</p><p> 6.3 數(shù)據(jù)庫設(shè)計29</p><p> 第七章 詳細(xì)設(shè)計30</p><p> 7.1 登錄模塊設(shè)計30</p
22、><p> 7.2 主界面及課表生成設(shè)計30</p><p> 7.2.1 班級管理設(shè)計30</p><p> 7.2.2 班級課程處理設(shè)計31</p><p> 7.2.3 課表生成部分設(shè)計32</p><p> 7.2.4 報表輸出功能設(shè)計33</p><p> 7.2.
23、5 系統(tǒng)調(diào)課功能設(shè)計34</p><p> 7.3 數(shù)據(jù)庫詳細(xì)設(shè)計35</p><p> 7.3.1 設(shè)計分析35</p><p> 7.3.2 數(shù)據(jù)表設(shè)計37</p><p> 7.4 主要界面實現(xiàn)40</p><p> 7.4.1 登錄頁面40</p><p> 7.
24、4.2 教學(xué)任務(wù)信息管理頁41</p><p> 7.4.3 教師信息管理頁41</p><p> 7.4.4 班級信息管理頁42</p><p> 7.4.5 課程信息管理頁42</p><p> 7.4.6 專業(yè)教室信息管理頁43</p><p> 7.4.7 課時數(shù)信息管理頁44<
25、/p><p> 7.4.8 排課管理頁44</p><p> 7.4.9 總課表查詢頁45</p><p> 7.4.10 教師課表查詢頁45</p><p> 7.4.11 班級課表查詢頁46</p><p> 7.4.12 調(diào)課頁47</p><p> 第八章
26、測試報告48</p><p> 8.1 測試方案48</p><p> 8.2 測試項目48</p><p> 8.3 主要測試用例48</p><p> 8.4 測試進(jìn)度51</p><p> 8.5 測試方法52</p><p> 8.6 測試結(jié)果分析5
27、2</p><p> 8.6.1 測試的局限性52</p><p> 8.6.2 評價測試結(jié)果的準(zhǔn)則52</p><p> 8.7 系統(tǒng)的優(yōu)點及技術(shù)特征53</p><p> 8.8 系統(tǒng)的不足及改進(jìn)方案53</p><p> 8.9 系統(tǒng)的運行與維護53</p><p
28、><b> 結(jié) 論54</b></p><p><b> 致 謝56</b></p><p> 參 考 文 獻(xiàn)57</p><p><b> 附錄A 譯文59</b></p><p> 附錄A 外文原文70</p><p>
29、;<b> 第一章 引言</b></p><p> 1.1 選題背景和意義</p><p> 隨著信息技術(shù)的飛速發(fā)展,各個行業(yè)的信息化勢在必行??萍嫉倪M(jìn)步大大地提高了生產(chǎn)率。作為高校,如何才能提高辦學(xué)效率,更好地完成教學(xué)任務(wù),跟上社會發(fā)展步伐,這是一個擺在教學(xué)工作者面前的一個迫切的問題。應(yīng)用信息化來改造傳統(tǒng)的教學(xué)管理模式是一個重要途徑。</p>
30、<p> 近幾年來,隨著各高校辦公自動化工作的推進(jìn),教務(wù)管理自動化也被擺上了日程。在教務(wù)工作中占有很大比重的一項就是每學(xué)期的課程表排定工作。由于教工、教室和設(shè)備的相對緊張,如何進(jìn)行合理地安排和分配,從而充分利用教學(xué)資源是我們不得不面對的問題。而人工進(jìn)行排課不僅任務(wù)重,效率低,而且易出錯,難于維護,想要排出一張各方面都滿意的課表非常困難。并且隨著高校規(guī)模的擴大手工排課的難度和工作量呈幾何級數(shù)增長。</p><
31、;p> 在實際的應(yīng)用中,很多研究者都提出了各種解決排課問題的方法,由于排課問題的復(fù)雜性,還沒有找到有效的算法能獲得NP完全問題的最優(yōu)解。因此,如何運用近似算法和新的軟件技術(shù)來降低排課問題的計算復(fù)雜度,仍然是頗具挑戰(zhàn)性的研究方向。</p><p> 排課管理系統(tǒng)是利用數(shù)據(jù)庫管理系統(tǒng)開發(fā)的一種應(yīng)用系統(tǒng),其開發(fā)主要包括數(shù)據(jù)庫的建立,充分滿足正常的題庫管理的前提下,提供了多角度的題庫信息查詢和題庫信息分析報表,
32、使學(xué)校管理人員可以隨時掌握學(xué)校的排課情況,進(jìn)一步指導(dǎo)學(xué)校的教學(xué)。真正實現(xiàn)了業(yè)務(wù)一體化,為學(xué)校全方位的信息化管理奠定了基礎(chǔ)。</p><p> 傳統(tǒng)的人工排課使用手工操作存在許多弊端,如重復(fù)勞動嚴(yán)重、效率低下、且不能達(dá)到資源的最優(yōu)化配置等,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。最令人擔(dān)心的問題就是——出現(xiàn)教室資源沖突或教師資源沖突的情況,而且工作繁瑣,工作量巨大,尤其是在給大學(xué)校園進(jìn)行
33、排課時出現(xiàn)的問題更多。當(dāng)前高校教務(wù)管理所涉及到的信息資料數(shù)量大、類型多,還</p><p> 可能帶有大量的統(tǒng)計輸出,同時學(xué)校規(guī)模的不斷擴大和招生人數(shù)的逐年攀升導(dǎo)致傳統(tǒng)的排棵手段已無法滿足現(xiàn)代化管理的要求。</p><p> 在教學(xué)計劃的不斷完善和各高校校園網(wǎng)建立的大背景下,設(shè)計滿足高校教務(wù)要求的排課系統(tǒng)顯得十分必要。而據(jù)了解,排課管理是高校教務(wù)處重復(fù)性比較強且急需得到解決的工作, 且
34、排課系統(tǒng)有安全性要求高、交互性強、處理數(shù)據(jù)量大等人工難以實現(xiàn)的特點。</p><p> 因此設(shè)計一個基于校園網(wǎng)絡(luò)的人工智能化且操作簡便的排課系統(tǒng)是高校教務(wù)管理信息系統(tǒng)實現(xiàn)的首要條件,同時也是一大難點,因為排課管理要求綜合考慮教師、課程、班級、教室、時間等諸方面的因素,統(tǒng)籌兼顧,使課表既符合教學(xué)規(guī)律,又能夠充分利用現(xiàn)有資源使其最大限度地發(fā)揮作用。</p><p> 1.2 國內(nèi)外研究現(xiàn)狀
35、</p><p> 早在20世紀(jì)50年代末,國外就有人開始研究課表編排問題。1963年,Gotlieb曾提出一個課表問題的數(shù)學(xué)模型,但由于排課問題易受實際問題的影響,求解結(jié)果也不理想。20世紀(jì)70年代,美國人S.Even等就證明了排課問題是一個NP完全問題,其算法的時間復(fù)雜度呈指數(shù)增長。S.Even的論證正式確立了排課問題的學(xué)術(shù)地位,把人們對排課問題的認(rèn)識提高到了理論高度。此外,有些文獻(xiàn)試圖從圖論的角度來求解課
36、表問題,但是圖的染色體問題也是NP完全問題,只有在極為簡單的情況下才可以將課表編排轉(zhuǎn)化為二部圖匹配問題。</p><p> 在國內(nèi),在20世紀(jì)80年代初期,國內(nèi)學(xué)者開始用從模擬手工排課,也有人工智能構(gòu)建的專家系統(tǒng)等等,具有代表性的有:南京工學(xué)院的UTSS(A University Timetable Seheduling System)系統(tǒng),大連理工大學(xué)的智能教學(xué)組織管理與課程調(diào)度系統(tǒng)等。這些系統(tǒng)大都是模擬手工
37、排課過程,以“班”為單位,運用啟發(fā)式函數(shù)來進(jìn)行編排的。但是這些課表編排系統(tǒng)往往依賴于各個學(xué)校的教學(xué)體制,不宜于進(jìn)行大量推廣。</p><p> 1.3 本次設(shè)計所做的工作 </p><p> 本次畢業(yè)設(shè)計過程當(dāng)中,本人主要負(fù)責(zé)實驗小學(xué)教學(xué)管理系統(tǒng)的排課算法的分析與設(shè)計和后臺數(shù)據(jù)庫設(shè)計2大塊內(nèi)容。在下面的各章中將具體談到本人所負(fù)責(zé)的各個環(huán)節(jié)的具體設(shè)計和實現(xiàn)過程。</p>
38、<p> 1.4 本文的組織結(jié)構(gòu)</p><p> 本文對小學(xué)排課系統(tǒng)軟件進(jìn)行了原理和技術(shù)上的討論,詳細(xì)描述了該系統(tǒng)的設(shè)計思路和方法,在此基礎(chǔ)上開發(fā)了可以實際使用的應(yīng)用軟件。本文包括內(nèi)容如下:</p><p> 引言:描述了系統(tǒng)開發(fā)的背景和意義,簡單介紹了系統(tǒng)的主要功能,并與傳統(tǒng)的語音信箱進(jìn)行了比較。</p><p> 開發(fā)環(huán)境:簡要的講述了本次系
39、統(tǒng)中所采用的環(huán)境和技術(shù)。</p><p> 項目可行性:從4個方面論證了本次項目的可實施性。</p><p> 需求分析:利用面向?qū)ο蟮姆治龇椒?,建立各種環(huán)境下的用例模型,描繪出系統(tǒng)的功能、性能和其它需求。</p><p> 系統(tǒng)設(shè)計:使用面向?qū)ο蟮脑O(shè)計方法,在需求分析確定的模型基礎(chǔ)上,設(shè)計出軟件的邏輯模型、軟件各組成部分間的內(nèi)在結(jié)構(gòu)及實現(xiàn)方法。這一過程分為概
40、要設(shè)計、數(shù)據(jù)庫設(shè)計和詳細(xì)設(shè)計三部分。</p><p> 系統(tǒng)實現(xiàn):論述了系統(tǒng)各功能模塊的實現(xiàn)方法。</p><p> 測試報告:對開發(fā)完成的軟件進(jìn)行測試分析。</p><p> 結(jié)論:總結(jié)本軟件的特點,展望系統(tǒng)未來的發(fā)展方向。</p><p> 第二章 開發(fā)環(huán)境及技術(shù)介紹</p><p><b>
41、 2.1 JSP簡介</b></p><p> JSP應(yīng)用程序不同于其他語言開發(fā)的單一性程序。使用Jsp編程時,必須首先確定應(yīng)用程序如何與用戶交互,如鼠標(biāo)單擊,用戶必須編寫代碼控制這些事件的響應(yīng)方法。</p><p> 使用JSP開發(fā)數(shù)據(jù)庫應(yīng)用程序的一般步驟如下所示:</p><p><b> 建立數(shù)據(jù)庫</b></p&
42、gt;<p><b> 建立用戶界面</b></p><p><b> 編寫代碼</b></p><p><b> 調(diào)試運行</b></p><p><b> 編譯應(yīng)用程序</b></p><p><b> 發(fā)布應(yīng)用程序&
43、lt;/b></p><p><b> 界面設(shè)計:</b></p><p><b> 控件的位置</b></p><p><b> 界面元素的一致性</b></p><p><b> 保持界面的簡明</b></p><p&
44、gt; 使用顏色和圖像:增加視覺的感染力</p><p> 圖像和圖標(biāo):增加應(yīng)用程序的視覺上的趣味</p><p><b> 選取字體</b></p><p> JSP應(yīng)用程序的結(jié)構(gòu):</p><p> 由于JSP應(yīng)用程序是基于對象的,所以應(yīng)用程序的代碼結(jié)構(gòu)就是該程序在屏幕上物理表示的模型。根據(jù)定義,對象包含數(shù)
45、據(jù)和代碼。在屏幕上看到的窗體代表屬性,這些屬性定義了窗體的外觀和內(nèi)在特性14。</p><p> 2.2 Tomcat簡介</p><p> Tomcat 很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的 </p><p> Tomcat 是一個小型的輕量級應(yīng)用服務(wù)器,在本系統(tǒng)中當(dāng)在
46、一臺機器上配置好Apache 服務(wù)器,可利用它響應(yīng)對HTML 頁面的訪問請求。實際上Tomcat 部分是Apache 服務(wù)器的擴展,但它是獨立運行的,所以當(dāng)你運行tomcat 時,它實際上作為一個與Apache 獨立的進(jìn)程單獨運行的。 </p><p> 當(dāng)配置正確時,Apache 為HTML頁面服務(wù),而Tomcat 實際上運行JSP 頁面和Servlet。另外,Tomcat具有處理HTML頁面的功能,同時它還
47、是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認(rèn)模式16</p><p> 2.3 數(shù)據(jù)庫設(shè)計技術(shù)介紹</p><p><b> 2.3.1 定義</b></p><p> 數(shù)據(jù)庫設(shè)計 (Database Design)是指根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫管理系統(tǒng)上,設(shè)計數(shù)據(jù)庫的結(jié)構(gòu)和建立數(shù)據(jù)庫的過程。數(shù)據(jù)
48、庫系統(tǒng)需要操作系統(tǒng)的支持。 </p><p> 數(shù)據(jù)庫設(shè)計是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開發(fā)和建議中的核心技術(shù)。由于數(shù)據(jù)庫應(yīng)用系統(tǒng)的復(fù)雜性,為了支持相關(guān)程序運行,數(shù)據(jù)庫設(shè)計就變得異常復(fù)雜,因此最佳設(shè)計不可能一蹴而就,而只能是一種“反復(fù)探尋,逐步求精”的過程,也就是規(guī)劃和結(jié)構(gòu)化數(shù)據(jù)庫中的數(shù)據(jù)對象以及這些數(shù)據(jù)對象之間關(guān)系的過程。</p><p> 2.3.2 數(shù)據(jù)庫設(shè)計方法簡述
49、</p><p> 1 手工試湊法 設(shè)計質(zhì)量與設(shè)計人員的經(jīng)驗和水平有直接關(guān)系 缺乏科學(xué)理論和工程方法的支持,工程的質(zhì)量難以保證 數(shù)據(jù)庫運行一段時間后常常又不同程度地發(fā)現(xiàn)各種問題,增加了維護代價 2 規(guī)范設(shè)計法 基本思想:過程迭代和逐步求精 典型方法: (1)新奧爾良(New Orleans)方法:將數(shù)據(jù)庫設(shè)計分為四個階段 S.B.Yao方法:將數(shù)據(jù)庫設(shè)計分為五個步驟 I.R.
50、Palmer方法:把數(shù)據(jù)庫設(shè)計當(dāng)成一步接一步的過程 (2)計算機輔助設(shè)計 ORACLE Designer 2000 SYBASE PowerDesigner</p><p> 2.3.3 設(shè)計步驟</p><p><b> 1需求分析</b></p><p> 調(diào)查和分析用戶的業(yè)務(wù)活動和數(shù)據(jù)的使用情況,弄清所用數(shù)據(jù)的種類、范圍
51、、數(shù)量以及它們在業(yè)務(wù)活動中交流的情況,確定用戶對數(shù)據(jù)庫系統(tǒng)的使用要求和各種約束條件等,形成用戶需求規(guī)約。 </p><p><b> 2概念設(shè)計</b></p><p> 對用戶要求描述的現(xiàn)實世界(可能是一個工廠、一個商場或者一個學(xué)校等),通過對其中諸處的分類、聚集和概括,建立抽象的概念數(shù)據(jù)模型。這個概念模型應(yīng)反映現(xiàn)實世界各部門的信息結(jié)構(gòu)、信息流動情況、信息間的互
52、相制約關(guān)系以及各部門對信息儲存、查詢和加工的要求等。所建立的模型應(yīng)避開數(shù)據(jù)庫在計算機上的具體實現(xiàn)細(xì)節(jié),用一種抽象的形式表示出來。以擴充的實體—(E-R模型)聯(lián)系模型方法為例,第一步先明確現(xiàn)實世界各部門所含的各種實體及其屬性、實體間的聯(lián)系以及對信息的制約條件等,從而給出各部門內(nèi)所用信息的局部描述(在數(shù)據(jù)庫中稱為用戶的局部視圖)。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現(xiàn)實世界的概念數(shù)據(jù)模型。 </p&
53、gt;<p><b> 3邏輯設(shè)計</b></p><p> 主要工作是將現(xiàn)實世界的概念數(shù)據(jù)模型設(shè)計成數(shù)據(jù)庫的一種邏輯模式,即適應(yīng)于某種特定數(shù)據(jù)庫管理系統(tǒng)所支持的邏輯數(shù)據(jù)模式。與此同時,可能還需為各種數(shù)據(jù)處理應(yīng)用領(lǐng)域產(chǎn)生相應(yīng)的邏輯子模式。這一步設(shè)計的結(jié)果就是所謂“邏輯數(shù)據(jù)庫”。</p><p><b> 4物理設(shè)計</b>&l
54、t;/p><p> 根據(jù)特定數(shù)據(jù)庫管理系統(tǒng)所提供的多種存儲結(jié)構(gòu)和存取方法等依賴于具體計算機結(jié)構(gòu)的各項物理設(shè)計措施,對具體的應(yīng)用任務(wù)選定最合適的物理存儲結(jié)構(gòu)(包括文件類型、索引結(jié)構(gòu)和數(shù)據(jù)的存放次序與位邏輯等)、存取方法和存取路徑等。這一步設(shè)計的結(jié)果就是所謂“物理數(shù)據(jù)庫”。 </p><p><b> 5驗證設(shè)計</b></p><p> 在上述
55、設(shè)計的基礎(chǔ)上,收集數(shù)據(jù)并具體建立一個數(shù)據(jù)庫,運行一些典型的應(yīng)用任務(wù)來驗證數(shù)據(jù)庫設(shè)計的正確性和合理性。一般,一個大型數(shù)據(jù)庫的設(shè)計過程往往需要經(jīng)過多次循環(huán)反復(fù)。當(dāng)設(shè)計的某步發(fā)現(xiàn)問題時,可能就需要返回到前面去進(jìn)行修改。因此,在做上述數(shù)據(jù)庫設(shè)計時就應(yīng)考慮到今后修改設(shè)計的可能性和方便性。 </p><p><b> 6運行與維護設(shè)計</b></p><p> 在數(shù)據(jù)庫系統(tǒng)正
56、式投入運行的過程中,必須不斷地對其進(jìn)行評調(diào)整與修改。 </p><p> 至今,數(shù)據(jù)庫設(shè)計的很多工作仍需要人工來做,除了關(guān)系型數(shù)據(jù)庫已有一套較完整的數(shù)據(jù)范式理論可用來部分地指導(dǎo)數(shù)據(jù)庫設(shè)計之外,尚缺乏一套完善的數(shù)據(jù)庫設(shè)計理論、方法和工具,以實現(xiàn)數(shù)據(jù)庫設(shè)計的自動化或交互式的半自動化設(shè)計。所以數(shù)據(jù)庫設(shè)計今后的研究發(fā)展方向是研究數(shù)據(jù)庫設(shè)計理論,尋求能夠更有效地表達(dá)語義關(guān)系的數(shù)據(jù)模型,為各階段的設(shè)計提供自動或半自動的設(shè)計
57、工具和集成化的開發(fā)環(huán)境,使數(shù)據(jù)庫的設(shè)計更加工程化、更加規(guī)范化和更加方便易行,使得在數(shù)據(jù)庫的設(shè)計中充分體現(xiàn)軟件工程的先進(jìn)思想和方法。</p><p> 2.3.4 各級模式的形成過程</p><p> 1.需求分析階段:綜合各個用戶的應(yīng)用需求 </p><p> 2.概念設(shè)計階段:形成獨立于機器特點,獨立于各個DBMS產(chǎn)品的概念模式(E-R圖) </p&g
58、t;<p> 3.邏輯設(shè)計階段:首先將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫邏輯模式;然后根據(jù)用戶處理的要求、安全性的考慮,在基本表的基礎(chǔ)上再建立必要的視圖(View),形成數(shù)據(jù)的外模式</p><p> 4.物理設(shè)計階段:根據(jù)DBMS特點和處理的需要,進(jìn)行物理存儲安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式。</p><p> 第三章 項目可行性分
59、析</p><p><b> 3.1 技術(shù)可行性</b></p><p> 該系統(tǒng)對軟、硬件系統(tǒng)要求較低,所需硬件設(shè)備,市場上銷售且價格較低,甚至可以使用原有的設(shè)備。軟件上,操作系統(tǒng)采用Windows7或XP操作系統(tǒng)、MyEclipse作為前臺開發(fā)工具,它具有的“編輯后繼續(xù)運行”的特性,超越了舊的編輯—編譯—測試模式。它還引入了面向?qū)ο蟮某绦蛟O(shè)計思想和“控件”概念
60、,使得大量已經(jīng)編好的JSP程序可以直接拿來使用。同時,JSP又是最容易學(xué)習(xí)與應(yīng)用的程序語言之一。它的功能非常強大,已成為一種專業(yè)化的開發(fā)語言和環(huán)境。采用MySQL作為后臺數(shù)據(jù)庫平臺的管理系統(tǒng),它在電子商務(wù)、數(shù)據(jù)倉庫和數(shù)據(jù)庫解決方案等應(yīng)用中起著核心作用,可為企業(yè)的數(shù)據(jù)管理提供強大的支持,對數(shù)據(jù)庫中的數(shù)據(jù)提供有效的管理,并采用有效的措施實現(xiàn)數(shù)據(jù)的完整性、數(shù)據(jù)的安全性以及數(shù)據(jù)的可靠易用性等等。這些軟件在實驗室排課及教學(xué)系統(tǒng)設(shè)計與實現(xiàn)開發(fā)中已被
61、大量應(yīng)用,技術(shù)上都比較成熟。因此在技術(shù)上是可行的。</p><p><b> 3.2 經(jīng)濟可行性</b></p><p> 當(dāng)今學(xué)校內(nèi)部沒有完善的實驗室排課系統(tǒng)設(shè)計與實現(xiàn),管理水平差,學(xué)校課程不能得到合理分配,學(xué)生,教師管理檔案問題重重。迫切需要提高現(xiàn)代化管理水平、管理質(zhì)量和管理高校課程。實驗室排課及教學(xué)系統(tǒng)設(shè)計與實現(xiàn)的初步現(xiàn)代化的開發(fā)和使用,能夠大大提高學(xué)校管理
62、者的工作效率,節(jié)省成本提高經(jīng)濟效益。它把從事人力資源管理的人員從繁重的手工操作中解脫出來,用更多精力從事創(chuàng)造性的管理活動和其它重要的活動中去,從而達(dá)到節(jié)省人力、物力,財力的目標(biāo);它能使決策、計劃和其它管理活動更加科學(xué)、精確、靈活。因此,開發(fā)一個專門針對實驗室排課系統(tǒng)設(shè)計與實現(xiàn),在經(jīng)濟上也是可行的。</p><p><b> 3.3 操作可行性</b></p><p>
63、; 本系統(tǒng)靈活方便,快捷迅速,適應(yīng)處理多項數(shù)據(jù)。采用友好、直觀的視窗界面,鼠標(biāo)、鍵盤兩種操作方式任意選擇,方便快捷。界面統(tǒng)一規(guī)范,提示信息功能完整,稍一接觸就可以上手進(jìn)行所有操作。</p><p><b> 3.4 維護可行性</b></p><p> 在做工作流變更時應(yīng)慎重考慮其必要性、可行性和對現(xiàn)有系統(tǒng)影響的風(fēng)險??偟膩碚f應(yīng)把握的基本原則是對于已經(jīng)完成的工作
64、流實例不做改動,對于在變更點之前正在執(zhí)行的工作流不做改動,而對于在變更點之后正在執(zhí)行的工作流予以終止(如果終止的代價較低)或者重新填充所涉及用戶工作列表(如果終止的代價較高)。另外,必須考慮工作流引擎的實際情況,對工作流變更支持較好的工作流引擎可能已經(jīng)為工作流變更做了充分的考慮,但大多數(shù)情況下需要開發(fā)人員編碼解決。采用工作流驅(qū)動方案設(shè)計的系統(tǒng)在應(yīng)對工作流變更時應(yīng)考慮一下2 種情況:增加、刪除新的局部工作流可能會影響已經(jīng)實例化的全局工作流
65、和新增局部工作流在全局工作流插入點前后(如果存在)的局部工作流。對于后一種情況應(yīng)注意工作流之間的銜接,包括數(shù)據(jù)格式是否一致、流程鏈?zhǔn)欠袢匀贿B續(xù)(類似向鏈表中插入節(jié)點)。</p><p><b> 第四章 需求分析</b></p><p> 4.1 系統(tǒng)的基本功能 </p><p> 1 掌握學(xué)校所有的課程和教師的信息。包括每門課程的時間
66、、班級以及任課老師的姓名等。</p><p> 2 針對不同的人員授予不同的權(quán)限。提供靈活的瀏覽、查詢功能??梢圆榭茨硞€系、某個班級所有課程的信息。</p><p> 3 可以對一個或多個班級進(jìn)入課程管理與排課表管理,可以不限次的生成該班級課程表。</p><p> 4 可以對課程進(jìn)行變動管理。既可以手工排課,又可以實現(xiàn)自動排序功能。</p>&
67、lt;p> 5 幫助系統(tǒng)維護可以實現(xiàn):重新登錄、打印設(shè)置(包括統(tǒng)計各種報表及打印等)、退出等操作。</p><p> 6 提供一種或多種課程表輸出功能。</p><p> 7 實現(xiàn)功能全面化,由于每個學(xué)?;虬嗉壍拿刻煺n程數(shù)目或時間都不太一樣,實現(xiàn)智能計算總課程數(shù)目和管理對應(yīng)的時間段,并且根據(jù)每門課程的獨立分布式來進(jìn)行排列(例如:語文自動排列的分布方式可以是周一至周五,那么系統(tǒng)就
68、會自動將其平均分布在周一至周五這5天)。</p><p> 8用戶管理:設(shè)置兩個級別用戶:管理員和普通用戶(教師),管理員有權(quán)限操作系統(tǒng)中的所有數(shù)據(jù),普通用戶只能以執(zhí)行查詢,輸出之類的功能,無法對系統(tǒng)進(jìn)行實質(zhì)性的操作,用戶使用本系統(tǒng)之前必須先通過身份認(rèn)證。</p><p> 4.2 排課的約束條件</p><p> 在我的排課系統(tǒng),主要對不同類型課程進(jìn)行等級劃
69、分,排列出課程的排課優(yōu)先級別,通過優(yōu)先次序?qū)Σ煌愋偷恼n程使用不同的算法進(jìn)行排課,能夠非常方便地處理各種排課約束條件的限制。</p><p> 例如教師和教室沖突、班級沖突、教師上課時間和地點選擇、分層次教學(xué)、單雙周排課、一課多教師教學(xué)和課程連上等各種各樣的約束。同時該系統(tǒng)還能夠非常迅速地得到排課結(jié)果,例如排一千門課只需幾分鐘時間等一系列問題。</p><p><b> 4.
70、3 需求模型</b></p><p> 使用用例模型來表示需求階段的系統(tǒng)模型,用例模型主要有用例圖組成,從該子系統(tǒng)開始到子系統(tǒng)最終的發(fā)布,每一個思路整合其用例模型都不相同;隨著思路整合的不斷進(jìn)行,用例模型也在不斷地發(fā)生變化,由于篇幅所限,本文只給出第一次思路整合確定的用例模型和現(xiàn)今最后一次思路整合所確定的用例模型。</p><p> 通過需求分析,確定了排課管理的功能需求,
71、其需求簡要概括如下:</p><p> 1排課信息設(shè)置:包括教學(xué)科目信息,上課時間,科目和教師限制信息,班級排課信息,排課管理系統(tǒng)根據(jù)這些排課信息和限制信息對系統(tǒng)進(jìn)行自動排課。</p><p> 2自動排課和手工排課:對于用戶設(shè)定了排課信息之后,系統(tǒng)能夠自動對課表進(jìn)行安排,而且能夠手工對安排完的課表進(jìn)行調(diào)整,在排課過過程當(dāng)中,能夠?qū)Σ缓侠淼呐耪n結(jié)果給用戶進(jìn)行提示。</p>
72、;<p> 3課表報表和課表查詢,給出全校教師總課表,班級課表;在課表查詢中,用戶可以選擇不同的教師、班級,系統(tǒng)根據(jù)用戶的選擇給出相應(yīng)的課表。</p><p> 4.3.1 初使用列圖 </p><p> 在項目開始階段,需求不是非常清楚,但是,其需求的中心內(nèi)容仍然是上面幾點,在通過對需求的分析,我們確立了如下幾個非常重要的用例:</p><p
73、><b> 科目信息設(shè)置</b></p><p><b> 班級排課信息設(shè)置</b></p><p><b> 自動排課</b></p><p><b> 課表調(diào)整</b></p><p><b> 課表顯示與打印</b&g
74、t;</p><p> 上面所列出的用例即為排課管理系統(tǒng)的主要用例。根據(jù)這些主要用例,在項目的初始階段,為排課管理系統(tǒng)確定了初始用例模型,描述了排課管理系統(tǒng)應(yīng)該完成的功能,即從用戶的角度看,系統(tǒng)應(yīng)該具有哪些功能。初始用例模型表示如下:</p><p> 圖4.1 排課管理初始用例圖</p><p> 上面所列出的用例模型,基本上描述了排課系統(tǒng)的主要的功能,將這
75、些基本功能實現(xiàn),就形成了一個簡單的排課管理系統(tǒng)。在項目開發(fā)的第一次思路整合開發(fā)中,就是以上面確定的系統(tǒng)原型為基礎(chǔ)的,這也確定了系統(tǒng)排課管理系統(tǒng)的初始架構(gòu)。</p><p> 4.3.2 最后用例圖</p><p> 通過幾次思路整合,在新的需求的增加下和對系統(tǒng)的進(jìn)一步理解,逐步完善了排課管理系統(tǒng)的用例模型,下面給出的用例圖是當(dāng)前排課系統(tǒng)的最新的用例模型:</p><
76、;p> 圖4.2 排課管理用例圖</p><p> 為方便顯示,上面給出的排課管理用例圖包括了排課管理子系統(tǒng)中的全部角色和用例。</p><p> 4.3.3 用例描述</p><p> 在建模時,必須給出每個用例的說明,描述該用例所完成的功能,以及完成該用例功能的步驟。當(dāng)然,對用例的描述也可以使用用例說明文檔來表示。為了說明如何使用活動圖來表示一個用
77、例的行為,在此給出“自動排課”用例的活動圖,如下所示:</p><p> 圖4.3自動排課活動圖</p><p><b> 4.4 分析模型</b></p><p> 在這個階段,找出排課管理系統(tǒng)中涉及的主要的類,并且結(jié)合用例模型中的用例,將各個類與用例有機結(jié)合起來。對系統(tǒng)中的類,建立相應(yīng)的類圖來表示各個類之間的關(guān)系。而如何讓用例與這些類
78、進(jìn)行結(jié)合,則需要建立相應(yīng)的序列圖/協(xié)作圖來進(jìn)行建模。</p><p> 4.4.1 分析階段類圖</p><p> 在分析模型中的給出的類圖,并不需要為每個類詳細(xì)定義方法和屬性,在這個階段的類圖,主要反映的是系統(tǒng)中應(yīng)該有的類和各個類之間的關(guān)系;當(dāng)然,對于一些非常重要的方法和屬性,特別是反映各個類之間的關(guān)系的方法和屬性,在此階段可以給出定義。在排課管理系統(tǒng)的分析模型中,通過對排課系統(tǒng)的
79、分析和幾次思路整合,找出了排課管理系統(tǒng)中涉及的類,并給出了如下的類圖和各個類之間的關(guān)系:</p><p> 圖4.4 排課管理類圖(分析)</p><p> 上面類圖中,將排課管理中的類分成三種,并構(gòu)建了類圖,這種表示方法能夠清楚地表示各個類在系統(tǒng)中所處的位置,更加直觀;當(dāng)然,在實際建模中,也不一定要選擇這種表示,開發(fā)人員可以根據(jù)自己項目的實際情況來選擇相應(yīng)的建模元素。</p&g
80、t;<p> 4.4.2 實體類關(guān)系圖</p><p> 在分析模型中,使用的類分為三類的,其圖形的表示也比較簡單;而在設(shè)計模型中,采用了UML標(biāo)準(zhǔn)的類的表示圖形,每個圖被分為三個部分,分別表示類名字、屬性欄和方法欄,在后面的設(shè)計階段的排課管理類圖中可以看到。</p><p> 在上面的類圖中,僅僅給出了三種類之間的關(guān)系,但是這樣表示還是不夠的。實體類之間也是有一定的關(guān)
81、系的,對此,我們使用了另一個類圖來表示各個實體類之間的關(guān)系,如下圖:</p><p> 圖4.5 排課管理實體類關(guān)系類圖</p><p> 4.4.3 序列圖/協(xié)作圖創(chuàng)建</p><p> 在這之前,所做的所有模型都是屬于UML的靜態(tài)建模機制中的;而現(xiàn)在所要用到的建模元素是屬于UML的動態(tài)建模機制的。</p><p> 在此,給出了
82、自動排課用例的序列圖,如下圖所示:</p><p> 圖4.6 排課工作人員的序列圖</p><p> 圖4.7 查看課表時的時序圖</p><p><b> 4.5 設(shè)計模型</b></p><p> 在設(shè)計階段的工作,簡單來說,是根據(jù)分析模型,建立相應(yīng)的設(shè)計模型;確切地說,是定義分析階段所確定的每一個類,即定
83、義每個類的方法和屬性,并確定每個成員的可見性;可見性包括每個類成員是私有、保護、還是公有的。</p><p><b> 4.5.1 組件圖</b></p><p> 組件圖描述了排課系統(tǒng)各個子系統(tǒng)之間的依賴關(guān)系。組成自動排課系統(tǒng)的頁面包括:主頁面,班級管理頁面,教師管理頁面,教室管理頁面,課程管理頁面,課表管理頁面。</p><p><
84、;b> 圖4.8 組件圖</b></p><p><b> 4.5.2 配置圖</b></p><p> 配置圖主要是用來說明如何配置系統(tǒng)的軟件和硬軟。自動排課系統(tǒng)的應(yīng)用服務(wù)器主要負(fù)責(zé)整個系統(tǒng)運行的總體協(xié)調(diào)工作,數(shù)據(jù)庫則是負(fù)責(zé)數(shù)據(jù)管理。查詢管理是用戶可以用該頁面對未安排的或已安排的進(jìn)行快速的查看。教室管理是用來對教室的安排。課程管理是對每個班級
85、,教師所授課程的管理。教師管理是對是是否有課老師的管理。班級管理是每個班級的課程管理。</p><p><b> 4.9 配置圖</b></p><p> 第五章 排課算法分析與設(shè)計</p><p> 5.1 背景與研究意義</p><p> 排課問題早在70年代就證明是一個NP完全問題,即算法的計算時間是呈指
86、數(shù)增長的,這一論斷確立了排課問題的理論深度。對于NP問題完全問題目前在 數(shù)學(xué)上是沒有一個通用的算法能夠很好地解決。然而很多NP完全問題目具有很重要的實際意義,例如。大家熟悉地路由算法就是很典型的一個NP完全問題,路由 要在從多的節(jié)點中找出最短路徑完成信息的傳遞。既然都是NP完全問題,那么很多路由算法就可以運用到解決排課問題上,如Dijkstra算法、節(jié)點子樹剪 枝構(gòu)造網(wǎng)絡(luò)最短路徑法等等。</p><p> 目前
87、大家對NP 完全問題研究的主要思想是如何降低其計算復(fù)雜度。即利用一個近似算法來代替,力爭使得解決問題的時間從指數(shù)增長化簡到多項式增長。結(jié)合到課表問題就是建立 一個合適的現(xiàn)實簡約模型,利用該簡約模型能夠大大降低算法的復(fù)雜度,便于程序?qū)崿F(xiàn),這是解決排課問題一個很多的思路。</p><p> 在高等院校中,培養(yǎng)學(xué)生的主要途徑是教學(xué)。在教學(xué)活動中,有一系列管理工作,其中,教學(xué)計劃的實施是一個重要的教學(xué)環(huán)節(jié)。每學(xué)期管理人
88、員都要整理教 學(xué)計劃,根據(jù)教學(xué)計劃下達(dá)教學(xué)任務(wù)書,然后根據(jù)教學(xué)任務(wù)書編排課程表。在這些教學(xué)調(diào)度工作中,既有大量繁瑣的數(shù)據(jù)整理工作,更有嚴(yán)謹(jǐn)思維的腦力勞動,還要 填寫大量的表格。因此工作非常繁重。</p><p> 加之,隨著教學(xué)改革的進(jìn)行及“211”工程的實施,新的教育體制對課表的編排提出了更高的要求。手工排課時,信息的上通下達(dá)是極其麻煩的,而采用計 算機排課,教學(xué)中的信息可以一目了然,對于優(yōu)化學(xué)生的學(xué)習(xí)進(jìn)程,
89、評估每位教師對教學(xué)的貢獻(xiàn),領(lǐng)導(dǎo)合理決策等都具有重要的意義,必將會大大推進(jìn)教學(xué)的良性循 環(huán)。</p><p> 5.2 解決NP問題的幾種算法及其比較</p><p> 解決NP完全問題只能依靠近似算法,所以下面介紹幾種常用算法的設(shè)計思想,包括動態(tài)規(guī)劃、貪心算法、回溯法等。</p><p> 5.2.1 動態(tài)規(guī)劃</p><p> 動態(tài)
90、規(guī)劃法是將求解的問題一層一層地分解成一級一級、規(guī)模逐步縮小的子問題,直到可以直接求出其解的子問題為止。分解成的所有子問題按層次 關(guān)系構(gòu)成一顆子問題樹。樹根是原問題。原問題的解依賴于子問題樹中所有子問題的解。動態(tài)規(guī)劃算法通常用于求一個問題在某種意義下的最優(yōu)解。設(shè)計一個動態(tài)規(guī) 劃算法,通??砂匆韵聨讉€步驟進(jìn)行:</p><p> 1. 分析最優(yōu)解的性質(zhì),并刻劃其結(jié)構(gòu)特征。</p><p>
91、 2. 遞歸的定義最優(yōu)解。</p><p> 3. 以自底向上的方式計算出最優(yōu)解。</p><p> 4. 根據(jù)計算最優(yōu)解時得到的信息,構(gòu)造一個最優(yōu)解。</p><p> 步驟1~3是動態(tài)規(guī)劃算法的基本步驟。在只需要求出最優(yōu)解的情形,步驟4可以省去。若需要求出問題的一個最優(yōu)解,則必須執(zhí)行步驟4。此時,在步驟3中計算最優(yōu)解時,通常需記錄更多的信息,以便在步驟4中
92、,根據(jù)所記錄的信息,快速地構(gòu)造出一個最優(yōu)解。</p><p> 5.2.2 貪心算法</p><p> 當(dāng)一個問題具有最優(yōu)子結(jié)構(gòu)性質(zhì)時,我們會想到用動態(tài)規(guī)劃法去解它,但有時會有更簡單、更有效的算法,即貪心算法。顧名思義,貪心算法總是做出在當(dāng)前 看來最好的選擇。也就是說貪心算法并不是整體最優(yōu)上加以考慮,他所作出的選擇只是在某種意義上的局部最優(yōu)的選擇。雖然貪心算法不是對所有問題都能得到整體
93、 最優(yōu)解,但對范圍相當(dāng)廣的許多問題它能產(chǎn)生整體最優(yōu)解,如圖的算法中單源最短路徑問題,最小支撐樹問題等。在一些情況下,即使貪心算法不能得到整體最優(yōu) 解,但其最終結(jié)果卻是最優(yōu)解的很好的近似解。</p><p> 在貪心算法中較為有名的算法是Dijkstra算法。它作為路由算法用來尋求兩個節(jié)點間的最短路徑。Dijkstra算法的思想是:假若G有n個頂 點,于是我們總共需要求出n-1條最短路徑,求解的方法是:初試,寫出
94、V0(始頂點)到各頂點(終頂點)的路徑長度,或有路徑,則令路徑的長度為邊上的權(quán) 值;或無路經(jīng),則令為∞。再按長度的遞增順序生成每條最短路徑。事實上生成最短路徑的過程就是不斷地在始頂點V何終頂點W間加入中間點的過程,因為在每生 成了一條最短路徑后,就有一個該路徑的終頂點U,那么那些還未生成最短路徑的路徑就會由于經(jīng)過U而比原來的路徑短,于是就讓它經(jīng)過U。</p><p><b> 5.2.3 回溯法<
95、;/b></p><p> 回溯法有“通用的解題法”之稱。用它可以求出問題的所有解或任一解。概括地說,回溯法是一個既帶有系統(tǒng)性又帶有跳躍性的搜索法。它在包含問題所有解 的一顆狀態(tài)空間樹上,按照深度優(yōu)先的策略,從根出發(fā)進(jìn)行搜索。搜索每到達(dá)狀態(tài)空間樹的一個節(jié)點,總是先判斷以該節(jié)點為根的子樹是否肯定不包含問題的解。如 果肯定不包含,則跳過對該子樹的系統(tǒng)搜索,一層一層地向它的祖先節(jié)點繼續(xù)搜索,直到遇到一個還有未被
96、搜索過的兒子的節(jié)點,才轉(zhuǎn)向該節(jié)點的一個未曾搜索過的 兒子節(jié)點繼續(xù)搜索;否則,進(jìn)入子樹,繼續(xù)按深度優(yōu)先的策略進(jìn)行搜索?;厮莘ㄔ谟脕砬髥栴}的所有解時,要回溯到根,且根的所有兒子都已被搜索過才結(jié)束;而在 用來求問題的任一解時,只要搜索到問題的一個解就可結(jié)束。</p><p> 5.3 排課系統(tǒng)流程分析</p><p> 課程安排的流程跟教務(wù)工作的順序有很大的關(guān)系, 被安排的課程的信息來源主要
97、是前期很多教務(wù)工作的總結(jié)。其基本流程見下圖。</p><p><b> 生成課表</b></p><p> 5.3.1 整理課程信息</p><p> 整理本學(xué)期需要安排課程的基本信息, 包括教學(xué)任務(wù)信息,課程安排信息。</p><p> 5.3.2 按等級分類</p><p> 根據(jù)整
98、理出的課程需求, 我們對每門課程根據(jù)情況進(jìn)行優(yōu)先級別分類, 作為排課隊列的順序。</p><p> 5.3.3 獲取可安排的教室</p><p> 教室是根據(jù)每個系的情況進(jìn)行分配的, 部分特殊教室的使用也是有限制的, 因此在排課前必須獲得所有能夠安排課程的教室情況。</p><p><b> 5.3.4 排課</b></p>
99、<p> 根據(jù)課程的優(yōu)先級別按順序再依據(jù)規(guī)則依次對課程進(jìn)行時間安排, 在這里重點是規(guī)則的定義和在上課時間和教室空間縱橫軸組成的二維空間中對每個課單元的排課許可。排課的過程是一個搜索的過程, 當(dāng)最后的課程搜索不到時間段時, 表示課程安排有沖突, 可通過回溯的方法通過改變前一門課的定位來增加可選的機會, 當(dāng)最后仍然出現(xiàn)課程沖突時, 可列出所有與該課沖突的信息, 以便教務(wù)管理員分析和重新對某些屬性進(jìn)行設(shè)定。</p>
100、<p> 5.3.5 生成課表</p><p> 將排好課的節(jié)次時間和教室空間縱橫軸組成的二維表的每個單元數(shù)據(jù)存入數(shù)據(jù)庫。通過各種檢索可以生成課表。</p><p><b> 5.4算法分析</b></p><p> 5.4.1 問題的描述</p><p> 我們討論的自動排課問題的簡化描述如下:&
101、lt;/p><p> 設(shè)要安排的課程為{ C1 , C2 , ., Cn} ,課程總數(shù)為n , 而各門課程每周安排次數(shù)為{ N1 , N2 , ., Nn} ;每周教學(xué)日共5 天,即星期一到星期五;每個教學(xué)日最多安排6 次課程教學(xué),即上午3節(jié),下午3節(jié)。 在這種假設(shè)下,顯然每周的教學(xué)總時間段數(shù)為5 ×6 = 30 ,并存在以下約束關(guān)系:</p><p><b> n ≤
102、30 </b></p><p> Ni ≤30-n(每門課程至少占有一次課程教學(xué))</p><p> 自動排課問題是:設(shè)計適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)和算法, 以確定{ C1 , C2 , ., Cn } 中每個課程的教學(xué)應(yīng)占據(jù)的時間段,并且保證任何一個時間段僅由一門課程占據(jù)。</p><p> 5.4.2 排課約束條件</p><p>
103、 小學(xué)排課與其他高校排課相比,具有一定的差異性。具體表現(xiàn)在以下幾個方面:</p><p> 教室固定:除專業(yè)課外,小學(xué)上課地點全部在固定教室。專業(yè)教室資源數(shù)量比較有限。</p><p> 課程優(yōu)先級關(guān)系:由于課程之間的差異性,課程之間具有不同程度的優(yōu)先級關(guān)系。例如,小學(xué)語數(shù)外3門主課大多都排在上午時段,下午時段則排副課</p><p> 課程不能連上:一周課
104、程教學(xué)小于5次的課程要均勻分布一周,同一天不能出現(xiàn)有2次以上教程;若是程教學(xué)一周大于5次,則除了一周5天都有一次教學(xué)課程之外,剩下的也是均勻分布在一周5天,且同一課程不能連上。</p><p> 課程安排較多:小學(xué)一周30節(jié)課基本全都要排,剩余時段較少,由于教師資源的稀缺,會給排課帶來極大的約束 。</p><p><b> 5.5 算法設(shè)計</b></p&
105、gt;<p> 在教師資源和教室資源滿足但是緊缺的條件下,排課算法主要解決的就是課程時間段合理安排的問題。</p><p><b> 設(shè)計思想:</b></p><p> 1.獲得所有老師的教師工號,將每一個教師工號和30個課時的集合封裝成一個對象,該對象表示對應(yīng)教學(xué)工號的教師所擁有的授課時間,如果有特殊要求,比如某個教師在星期五下午不教課,那就在
106、其工號對應(yīng)的對象中去除周五下午的3個課時。</p><p> 2.按年級、班級從低到高進(jìn)行循環(huán),以班級為單位進(jìn)行排課。排課的優(yōu)先級按照設(shè)定的來排列。一般主課先排。</p><p> 循環(huán)進(jìn)入班級時,首先會生成該班班號與可授課時間段的對象,表明該班級可以上課的時間段,需要注意一點的是班級可授課課時分為上午和下午2個集合。如同教師一樣,可以安排不上課的時段。同時也將與該班相關(guān)的教學(xué)任務(wù)查
107、詢出來放進(jìn)一個集合。其中,每一條教學(xué)任務(wù)也封裝成一個集合。具體包含字段信息有:年級、班級、課程名、課程id、課時、教師id、教師名字。</p><p> 3.按照優(yōu)先級獲取語數(shù)外的課程id,然后循環(huán)3個主課id。</p><p> 首先,獲取該班級數(shù)學(xué)課的教學(xué)任務(wù),取得該教學(xué)任務(wù)對象,判斷其課時是否大于5,分2種不同的策略來排課。如果小于5,則每天只安排一次課時。按照其課時大小,繼續(xù)
108、進(jìn)入循環(huán),在此循環(huán),則開始隨機抽取班級對象可授課的時間,按照策略,隨機抽取主課的時間段大多在上午區(qū)間。每次一個循環(huán),都會抽出一個時間段,接著再判斷該班級數(shù)學(xué)教師對象的時間集合中是否包含,如果包含,則表明該時間段老師可以教授該門課程,然后同時將該時間段與該教學(xué)任務(wù)已抽取的時間段判斷是否在同一天,如果不在同一天,則表明該時間段完全符合。最后將該課時段插入教學(xué)任務(wù)記錄中,班級授課對象和教師授課對象同時去除該課時段,同時記錄該課時段用來與下一個
109、抽取課時段進(jìn)行是否在同一天判斷。</p><p> 如果授課課時大于5小于10,則判斷條件改為每天最多2次并且不能連續(xù)。</p><p> 4.主課排好后,進(jìn)行副課循環(huán)排課,排課策略與主課相同,只是隨機抽取的時間段集中在下午。</p><p> 5.此時一個班級排好課,相關(guān)的教師可授課對象已被修改,安排好的時間段全部去除。然后進(jìn)入下一輪班級排課,再次生成該班
110、可授課時間對象。而修改的教師可授課對象保持不變。</p><p> 6.一直循環(huán),直到排課結(jié)束。</p><p> 當(dāng)然,此種設(shè)計思想存在缺陷,當(dāng)資源緊張時,則會發(fā)生資源沖突,表現(xiàn)為抽取的時間段始終不滿足要求,此時就要進(jìn)行回溯處理,重新排課。當(dāng)然也可以將此沖突記錄下來,跳過該次排課,在排課結(jié)束后提醒用戶,讓其手工調(diào)課來規(guī)避次沖突</p><p> 課程循環(huán)算
111、法流程圖:</p><p> 圖5.1 課程循環(huán)算法流程圖</p><p> 第六章 系統(tǒng)概要設(shè)計</p><p><b> 6.1 設(shè)計思想</b></p><p> 本系統(tǒng)采用各班級獨立劃分管理,所有教師均可為任何班級服務(wù),各班級根據(jù)每天課程數(shù)目來進(jìn)行自動排序,同時各教師允許教學(xué)多門課程,因此為了每名教師
112、配置了時間占用表,只要與班級對應(yīng)的時間空間表未被占用,都可以參與排課,并根據(jù)用戶定義的要求排出課程。</p><p> 數(shù)據(jù)管理類:由于班級,時間,教師,課程等信息都需要一個活動的管理過程,因為在節(jié)省資源的情況下,將各數(shù)據(jù)所需要的代碼合并在一起進(jìn)行編寫和使用。</p><p><b> 圖6.1 數(shù)據(jù)管理</b></p><p> 6.2
113、 系統(tǒng)功能模塊劃分</p><p> 教務(wù)排課系統(tǒng)在功能上分四個模塊,如圖6.2:</p><p> 圖6.2 系統(tǒng)功能模塊劃分</p><p><b> 6.3 數(shù)據(jù)庫設(shè)計</b></p><p> 利用SQL Server2005來管理排課資源、排課約束條件等信息,利用數(shù)據(jù)庫技術(shù)來實現(xiàn)設(shè)置排課優(yōu)先級、課時和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)上花店管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 汽車銷售管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 人事管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文-asp教學(xué)管理系統(tǒng)論文
- 圖書館管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 小區(qū)物業(yè)管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 圖書館管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文-學(xué)生公寓管理系統(tǒng)(含外文翻譯)
- 畢業(yè)論文-學(xué)生公寓管理系統(tǒng)(含外文翻譯)
- 工程管理專業(yè)畢業(yè)論文(含外文翻譯)
- 在線考試系統(tǒng)畢業(yè)論文(含外文翻譯)
- 郵件系統(tǒng)畢業(yè)論文(含外文翻譯)
- 管道監(jiān)測系統(tǒng)畢業(yè)論文(含外文翻譯)
- 旅游管理專業(yè)畢業(yè)論文(含外文翻譯)
- 物業(yè)管理畢業(yè)論文(含外文翻譯)
- ic卡管理系統(tǒng)管理系統(tǒng)論文畢業(yè)論文(含外文翻譯)
- 旅行社業(yè)務(wù)管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 開放性實驗管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 教務(wù)管理信息系統(tǒng)畢業(yè)論文(含外文翻譯)
- 企業(yè)固定資產(chǎn)管理系統(tǒng)畢業(yè)論文(含外文翻譯)
評論
0/150
提交評論