版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 南 京 工 程 學 院 畢業(yè)設計說明書(論文) 作 者: 學 號: 院 系: 計計 算算 機機 工工 程程 學學 院院 專 業(yè): 計計算機科學與技算機科學與技術術 題 目: 高校排高校排課課系系統(tǒng)統(tǒng)的的設計設計與與實現(xiàn)實現(xiàn) 指導者: 副教授 助教 (姓 名) (專業(yè)技術職務) 評閱者: (姓 名) (專業(yè)技術職務) 2008 年 6 月 南 京 畢畢 業(yè)業(yè) 論論 文文 中中 文文 摘摘 要要 排課問題的研究主要是解決各種教學資源如教室、老師的合理有效利用等問 題,避免老師、班級在上課時間、地點上的沖突,使排課時間分配均勻。一般而 言,在算法設計中為排課操作設置了不同的優(yōu)先級,逐級排課,有效地
2、降低了排 課時間沖突的概率,提高了排課的成功率。 論文詳細介紹了排課算法的設計和實現(xiàn)、數(shù)據(jù)庫的設計和實現(xiàn),以及數(shù)據(jù)輸 入、信息查詢和教師、班級課表輸出等功能的設計與實現(xiàn)。在時間選擇的靈活性 、排課優(yōu)先級等方面提出了自己的見解并進行了編程實現(xiàn),畢業(yè)設計所實現(xiàn)的排 課系統(tǒng)只是一種嘗試,還有很多不完善的地方,需待日后改進。 關鍵字 排課 高校 算法設計 delphi7.0 畢畢業(yè)業(yè)設設計計說說明明書書(論論文文)外外文文摘摘要要 titletitle design and realization of course arranging system for university abstractab
3、stract the study of arranging schedule problem is largely to solve the proper and effective usage of various teaching resources, such as classrooms, teachers and so on, to avoid the conflict on the time or the place of the schedule, and to make the time produced on the average. generally speaking, d
4、ifferent priorities are assigned to the operation of the arranging schedule, make the schedule step by step in the design of the algorithm, and thus bring down the probability of the conflict of the time arranging effectively, increase the probability of the successive arranging. this paper introduc
5、es the design and implement of arranging schedule algorithm、the design and implement of database, and the design and implement of inputting data, searching information ,outputting teacher and class schedule, and so on. the paper shows some originalities in flexible setting of time mode, the priority
6、 of arranging schedule, etc, and finally realizes them in program .the realization of course arranging system in graduate design is only an attempt and there are still a lot of bugs to be improved in the future. keywordskeywords course arranging, university algorithm design , delphi7.0 目 錄 前 言 .1 第一
7、章 高校排課系統(tǒng)綜述 .2 1.1 課題背景.2 1.2 畢業(yè)設計實現(xiàn)系統(tǒng)的特點.3 第二章 開發(fā)工具簡介 .4 2.1 delphi7.0 簡介 .4 2.2 sql server 2000 簡介.6 2.3 microsoft visio 簡介.8 2.4 powerdesigner 簡介.8 第三章 概要設計 .10 3.1 需求分析.10 3.2 模塊功能設計.11 3.3 排課算法設計.12 第四章 數(shù)據(jù)庫設計 .16 4.1 實體關系模型.16 4.2 數(shù)據(jù)庫設計.17 第五章 詳細設計與實現(xiàn) .25 5.1 系統(tǒng)主界面.25 5.2 信息錄入功能.25 5.3 排課功能.31 5
8、.4 課表輸出功能.32 5.5 幫助功能.32 第六章 結論 .34 6.1 測試結果.34 6.2 成果與特色.35 6.3 展望與心得.36 參考文獻 .37 致謝 .38 附錄 .39 1 排課算法代碼實現(xiàn).39 2. 英文資料及翻譯.43 前 言 全球性的網(wǎng)絡化、信息化進程正改變著人們的生活方式,internet 技術應用飛 速增長給人們生活工作的各個層面帶來了深刻的影響,辦公自動化系統(tǒng)作為 internet 的重要應用,也已不可避免的成為各行各業(yè)的迫切需要。傳統(tǒng)的辦公模式 主要以紙介質(zhì)為主,在信息革命的浪潮中,顯然已經(jīng)遠遠不能滿足高效率、快節(jié)奏 的現(xiàn)代工作和生活的需要。如何實現(xiàn)信息
9、處理的自動化和辦公的無紙化逐步得到了 人們的重視。辦公自動化的發(fā)展實際上取決于辦公活動的需求和實現(xiàn)這種需求的可 能性。展望未來,全世界都將進入可持續(xù)發(fā)展的辦公自動化時期。 教育行業(yè)也迎來了一次全新的辦公自動化的改革,教育辦公化和辦公化教育是 當代和未來教育的世界性發(fā)展趨勢。近年來,大學的學習方式也在不斷的更新,許 多大學的不斷發(fā)展,采用學分制的管理系統(tǒng)。而隨著高校新生的擴招力度加大,各 高校都面臨著教室資源緊張的問題,原來每個班有一個固定教室的模式已不存在,甚 至原來一個系專用的教學樓都要考慮參加全校的教室資源統(tǒng)一調(diào)整,對高校教務處 來說確實是一個艱巨的任務。 知識經(jīng)濟時代已向我們走來,信息化
10、已經(jīng)成為社會發(fā)展的時代特征。計算機技 術、通信技術和現(xiàn)代信息技術的迅速發(fā)展,使建設高校排課系統(tǒng),不僅是時代發(fā)展 的要求,而且是發(fā)展教育事業(yè)、提高高校教學管理水平和辦學效益的需要。高校排 課系統(tǒng)是一個復雜的系統(tǒng),包括方方面面。排課調(diào)課是高校教務管理的一項日常工 作。由于我國高校的基礎建設相對落后,加之近年來大規(guī)模的擴招,因而師資和教 室資源緊張的問題非常普遍。這項工作靠手工完成一般需要耗費大量的時間和精力, 且多易出錯。同時手工操作也容易不充分利用資源滿足經(jīng)常變化的需求。如利用計 算機進行自動排課,不但能使教務人員從繁雜的排課任務中解脫出來,大大提高教 務管理工作效率,而且能改善教學管理質(zhì)量,合
11、理高效地利用有限的資源,對推動 教學的發(fā)展起到非常重要的作用。另外,解決排課問題對解決其他多約束、大規(guī)模 的時間表問題也具有重要的指導意義。 第一章 高校排課系統(tǒng) 綜述 1.1 課題背景 本部分主要介紹與課題相關的內(nèi)容,簡單描述一下目前排課系統(tǒng)的發(fā)展 歷史及趨勢 ,主要使用的排課算法,然后引出本系統(tǒng)開發(fā)時在算法上所具有的 一些特點。接下來著重介紹了開發(fā)本系統(tǒng)使用的工具delphi 的一些特性,以 及它在數(shù)據(jù)庫開發(fā)方面具有的強大功能 。 .1 發(fā)展歷史發(fā)展歷史 傳統(tǒng)的人工進行排課,最令人擔心的問題就是出現(xiàn)教室資源沖突或教 師資源沖突的情況,而且工作繁瑣,工作量巨大,尤其是在給大學
12、校園進行排 課時出現(xiàn)的問題更多。市場流行的排課系統(tǒng)很多,比如:相似排課,智能排 課系統(tǒng),正信華課程安排管理系統(tǒng) 等等,這些排課軟件在解決排課問題時大多 數(shù)采用的算法都是回溯算法,排課的效果也都很好。利用回溯算法解決問題的 思路是先選擇某一可能的線索進行試探,每一步試探都有多種方式,將每一方 式都一一試探,如有問題就返回糾正,反復進行這種試探再返回糾正,直到得 出全部符合條件的答案或是問題無解為止。這種解決問題的方法就是回溯法。 回溯算法對空間的消耗較少,當其與 分支定界法一起使用時,對于所求解在解 答樹中層次較深的問題有較好的效果。但應避免在后繼節(jié)點可能與前繼節(jié)點相 同的問題中使用,以免產(chǎn)生循
13、環(huán)?;厮菟惴ㄊ撬兴阉魉惴ㄖ凶顬榛镜囊环N 算法,其采用了一種 “走不通就掉頭 ”思想作為其控制結構,可用于找解或所 有解以及最優(yōu)解。 .2 發(fā)展趨勢發(fā)展趨勢 計算機軟件技術應用于學校的課程安排是發(fā)展的必然。充分發(fā)揮計算機的優(yōu) 勢,將大量復雜的判斷與運算交給計算機來做,是真正意義上的人腦的“減 負” 。教師設置好學校基本情況及排課要求,讓計算機排出課程表,適度調(diào)課后 的課表就能滿意地應用于新的學期。隨著計算機軟件技術的不斷發(fā)展,排課效 率高、出錯概率低的排課算法也必將會逐漸趨向成熟,功能更加完善的排課系 統(tǒng)也將應運而生。 1.2 畢業(yè)設計實現(xiàn)系統(tǒng)的特點 .1 數(shù)
14、據(jù)管理特點數(shù)據(jù)管理特點 系統(tǒng)采用半智能化的數(shù)據(jù)錄入功能,工作人員只要對一些基本信息的錄入, 系統(tǒng)就會對一些相關聯(lián)的信息進行自動生成,這樣大大的減輕了管理人員的工 作量,以及對數(shù)據(jù)的冗余性也有一定的改善。對工作效率有一定的提高。 .2 算法特點算法特點 高校排課系統(tǒng)與目前流行的排課系統(tǒng)不同之處在于排課算法的設計上。 本系統(tǒng)采用 簡單的回溯算法,雖然它在實際使用中可能不如已有的各種排課軟 件,但它是應用程序開發(fā)和排課算法設計 的一次嘗試,并且它在排課的效果和 效率方面有一定的突破。它在算法上具有如下特點: 1)算法以班級為主線檢索 ,再根據(jù)每一個班級檢索每個班級所有的待排課 程。這
15、樣處理不會有排課丟失的現(xiàn)象。 2)檢索出要排的課程以后選擇授課教師,選擇教室,判斷教師,班級,教 室是否有空 ,判斷教室人數(shù)是否滿足。檢索合班否,看是否滿足要求。不滿足 做一個回溯算法。滿足,排課然后 再檢索下一條記錄。如此直到結束為止。 3)寫入數(shù)據(jù)庫,建立視圖,設計查詢算法,輸出課表。 第二章 開發(fā)工具簡介 2.1 delphi7.0 簡介 delphi 實際上是 pascal 語言的一種版本,但它與傳統(tǒng)的pascal 語言有 天壤之別。一個 delphi 程序首先是應用程序框架,而這一框架正是應用程序的 “骨架” 。在“骨架”上即使沒有附著任何東西,仍可以嚴格地按照設計運行。 設計者的工
16、作只是在 “骨架”中加入程序。缺省的應用程序是一個空白的窗體 (form),運行它,結果得到一個空白的窗口。這個窗口具有windows 窗口的 全部性質(zhì):可以被放大縮小、移動、最大最小化等,但設計者卻沒有編寫一行 程序。因此,可以說應用程序框架通過提供所有應用程序共有的東西,為用戶 應用程序的開發(fā)打下了良好的基礎。 delphi 已經(jīng)為設計者做好了一切基礎工 作程序框架就是一個已經(jīng)完成的可運行應用程序,只是不處理任何事情。 設計者需要做的,只是在程序中加入完成所需功能的代碼而已。 在空白窗口的背后,應用程序的框架正在等待用戶的輸入。由于設計者并未告 訴它接收到用戶輸入后作何反應,窗口除了響應
17、windows 的基本操作(移動、縮放 等)外,它只是接受用戶的輸入,然后再忽略。delphi 把 windows 編程的回調(diào)、句 柄處理等繁復過程都放在一個不可見的 romulam 覆蓋物下面,這樣設計者可以不為 它們所困擾,輕松從容地對可視部件進行編程。 開發(fā)軟件的難易程度,第一決定要素在于開發(fā)工具的選擇,它是幫助用戶實現(xiàn) 其理念的工具,也就是構建在基礎理念上的上層建筑。一款優(yōu)秀的、體貼的、以人 為本的開發(fā)工具的標準應符合以下四點: 1)能夠?qū)⒁鉀Q的問題簡化,并以某種理念快速實現(xiàn)。 2)不隱藏任何用戶想要知道的細節(jié)。 3)可以忽略用戶所不想知道的細節(jié)。 4)主動去適應不同層次的開發(fā)程序員
18、。 那么,有符合以上四點的開發(fā)工具嗎?答案是:有,那就是 delphi。俗話說: “真正的程序員用 c 開發(fā),聰明的程序員用 delphi 開發(fā)”它將一切化繁為簡,卻 從不阻止用戶尋求真實。用戶可以在它構造的簡化了的 vcl 虛擬世界中完成任務; 也可以鉆進 vcl 的世界以探尋它和現(xiàn)實世界(即 windows 平臺的真實接口)的映射關 系,學習它的 framework 的設計;還可以擴展那個虛擬的 vcl 世界以適應自己的需 要。 它還有一些更引人注目的優(yōu)點: 1)方便功能強大的可視化開發(fā)環(huán)境的性能。delphi 的窗體設計器的與眾不同之 處在于,delphi 是建立在一個真正面向?qū)ο蟮目蚣?/p>
19、結構基礎之上的。這樣,你對基 類所做的改變都將會傳遞給所有的派生類。這里涉及的一項關鍵技術就是 vfi(visual form inheritance),即可視化窗體繼承。vfi 技術使你能夠動態(tài)地繼 承當前項目或?qū)ο髱熘械娜魏纹渌绑w。一旦基窗體發(fā)生改變,派生的窗體會立即 予以更新。 2)編譯器的速度和已編譯代碼的效率。也許 pascal 編譯器最著名的特點就是 速度快,而 delphi 正是建立在這種編譯器的基礎之上的。事實上,它可能是針對 windows 的最快的高級語言本地代碼編譯器。 3)編程語言的功能及其復雜性。delphi 具有強大的功能并且簡單易學,對于 我們這種沒有開發(fā)經(jīng)驗的
20、開發(fā)者用來開發(fā)程序是非常適合的,能夠非常迅速的看見 成效,也能夠樹立開發(fā)出一個完整程序的信心。 4)數(shù)據(jù)庫結構的靈活性和可擴展性??梢院敛豢鋸埖恼f,delphi 和數(shù)據(jù)庫的 聯(lián)系是非常緊密并且開發(fā)數(shù)據(jù)庫方面的系統(tǒng)是具有巨大的優(yōu)勢。delphi 保留了我們 認為是所有工具中最靈活的數(shù)據(jù)庫結構。對大多數(shù)基于本地、客戶/服務器和 odbc 數(shù)據(jù)庫平臺的應用程序來說,bde 的功能都非常強大。如果你對此不滿意,可以避 開使用 bde 以支持新的本地 ado 組件。 5)框架對設計和使用模式的擴充。這是一項經(jīng)常被其他軟件設計工具忽略了 的重要功能。vcl 是 delphi 最重要的組成部分。在設計時操縱
21、組件、創(chuàng)建組件、使 用 oo(面向?qū)ο?技術繼承其他組件的行為,這些能力都是決定 delphi 效率的關鍵 因素。在許多場合,編寫 vcl 組件都采用固定的 oo 設計方法。相比之下,其他基 于組件的框架經(jīng)常過于死板或過于復雜。比如 activex 控件具有和 vcl 控件相同的 設計期性能,但卻不能被繼承以創(chuàng)建一個具有其他不同行為的新類。傳統(tǒng)的類框架, 如 owl 和 mfc,需要你有大量的內(nèi)部結構知識,而且如果沒有 rad 工具的設計期支 持,其功能將會受到抑制。 本系統(tǒng)用的前臺開發(fā)語言是 delphi7.0。delphi7.0 是我接觸的第一個快速、 可視化的 ide,采用基于控件的開發(fā)
22、框架結構,提供了 100 多個可供使用的控件, 利用這些控件,開發(fā)人員可以快速構造出各式各樣的應用系統(tǒng)。正是因為其功能強 大、使用方便,delphi 已成為我開發(fā)系統(tǒng)的最愛。另外,delphi 強大的數(shù)據(jù)庫開 發(fā)能力也是我選擇它的一個主要理由,該數(shù)據(jù)庫語言所固有的最標準化程序設計風 格和可視化設計方法使得設計工作具有極高的效率。 2.2 sql server 2000 簡介 圖 2-1 顯示了數(shù)據(jù)庫系統(tǒng)的主要組件。數(shù)據(jù)庫由 dbms(database management system 數(shù)據(jù)庫管理系統(tǒng))處理,dbms 則由開發(fā)人員和用戶通過應用程序直接或間 接地使用。它主要包括四個要素:用戶數(shù)
23、據(jù)、元數(shù)據(jù)、索引和應用元數(shù)據(jù)。 圖 2-1 數(shù)據(jù)庫組件 目前,大多數(shù)數(shù)據(jù)庫把用戶數(shù)據(jù)表示為關系?,F(xiàn)在把關系看作數(shù)據(jù)表。表的列 包含域或?qū)傩?,表的行包含對應業(yè)務環(huán)境中的實體的記錄。并非所有的關系都同樣 符合要求,有些關系比其它關系更結構化一些。為了對比結構差的關系和結構好的 關系之間的差別,以本文所設計的課表管理系統(tǒng)中的課程和任課教員關系為例來說 明,假若設計關系 r1(teachername,coursename, teacherothers ) ;這個 關系的問題出在它有關于兩個不同主題的數(shù)據(jù),就是課程和教員。用這種方式構成 的關系在進行修改時,會出現(xiàn)問題。因為一個教員可能教授多門課程,如果
24、某個教 員的 teacherothers 出現(xiàn)變更,它所教授的課程記錄(可能多個)也就必須變化, 這是不好的。因此數(shù)據(jù)用兩個關系表示更好。現(xiàn)在如果某一個教員改變了它的 teacherothers,只有關系的對應行需要改變。當然,要想產(chǎn)生一個顯示課程名及 數(shù)據(jù)庫數(shù)據(jù)庫 用戶數(shù)據(jù) 元數(shù)據(jù) 索引 應用元數(shù)據(jù) 數(shù)據(jù)庫包 括 數(shù)數(shù) 據(jù)據(jù) 庫庫 引引 擎擎 設計工具設計工具 表生成工具 窗體生成工具 查詢生成工具 報表生成工具 過程語言編譯器 執(zhí)行時間執(zhí)行時間 窗體處理器 查詢處理器 報表書寫器 過程語言執(zhí)行時 間 開發(fā)人員 應用程序 用戶 應用程序 其任課教員地址的報表,就需要將這兩個表的行結合起來。結
25、果表明,將關系分別 存儲,在生成報表的時候?qū)⑺鼈兘Y合起來,比把它們存儲在一個合成的表中更好。 r2(coursename,) 。 r3(teachername, teacherothers,) 。 數(shù)據(jù)庫是自描述的,這就意味著它自身包含了它的結構的描述,這種結構的描 述稱作元數(shù)據(jù)。因為 dbms 產(chǎn)品是用來存儲和操縱表的,所以大多數(shù)產(chǎn)品把元數(shù)據(jù) 以表的形式存儲,有時稱作系統(tǒng)表。這些系統(tǒng)表存儲了數(shù)據(jù)庫中表的情況,指出每 一個表中有多少列,哪一列是關鍵字,每一列的數(shù)據(jù)類型的描述,它也存儲索引、 關鍵字、規(guī)則和數(shù)據(jù)庫結構的其他部分。在表中存儲元數(shù)據(jù)不僅對 dbms 是有效的, 對用戶也是方便的,因為
26、他們可以使用與查詢用戶數(shù)據(jù)同樣的查詢工具來查詢元數(shù) 據(jù)。 第三種類型的數(shù)據(jù)改進了數(shù)據(jù)庫的性能和可訪問性,這種數(shù)據(jù)經(jīng)常稱作開銷數(shù) 據(jù),盡管有時也采用其他類型的數(shù)據(jù)結構,如鏈表,但它主要包括索引。索引可以 用來排序和快速訪問數(shù)據(jù)。 存儲在數(shù)據(jù)庫中的第四種數(shù)據(jù)是應用元數(shù)據(jù),它用來存儲用戶窗體、報表、查 詢和其他形式的查詢組件。并非所有的 dbms 都支持應用組件,支持組件的 dbms 也 不一定把全部組件的結構作為應用元數(shù)據(jù)存儲在數(shù)據(jù)庫中。然而,大多數(shù)現(xiàn)代的 dbms 產(chǎn)品存儲這種數(shù)據(jù)作為數(shù)據(jù)庫的一部分。一般來說,數(shù)據(jù)庫開發(fā)人員和用戶都 不直接訪問應用元數(shù)據(jù),相反,他們通過 dbms 中的工具來處理
27、這些數(shù)據(jù)。 sql server 2000 是 microsoft 公司推出的基于 client/server 模式的新一代 大型關系數(shù)據(jù)庫管理系統(tǒng)。它功能強大,操作簡便,廣泛應用于數(shù)據(jù)庫后臺系統(tǒng)。 sql server 2000 代表著下一代 microsoft.net enterprise servers(企業(yè)分布式 服務器)數(shù)據(jù)庫的發(fā)展趨勢。它在電子商務、數(shù)據(jù)倉庫和數(shù)據(jù)庫解決方案等應用中 起著重要的核心作用。 sql server 2000 的主要特點如下: 1)真正的客戶機/服務器體系結構。 2)圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。 3)豐富的編程接口工具,為用戶進行
28、程序設計提供了更大的選擇余地。 4)sql server 與 windows 操作系統(tǒng)完全集成,利用了其許多功能,如發(fā)送和 接受消息,管理登錄安全性等。sql server 也可以很好地與 microsoft backoffice 產(chǎn)品集成。 5)具有很好的伸縮性,可跨越從運行 windows 95/98/xp 的膝上型電腦到運行 windows 2000 的大型多處理器等多種平臺使用。 6)對 web 技術的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到 web 頁 面上。 7)sql server 提供數(shù)據(jù)倉庫功能,這個功能只在 oracle 和其他更昂貴的 dbms 中才有。 2.3 m
29、icrosoft visio 簡介 visio 是當今最優(yōu)秀的繪圖軟件之一,它將強大的功能和易用性完美結合,可 廣泛應用于電子、機械、通信、建筑、軟件設計和企業(yè)管理等眾多領域。專業(yè)制作 流程圖、網(wǎng)絡拓撲圖、室內(nèi)布置圖、規(guī)劃圖等圖紙的軟件。對我們設計過程有很大 的幫助。 visio 提供了快速創(chuàng)建和共享具有專業(yè)外觀的圖表所需的工具。熟悉的 microsoft office 環(huán)境使 visio 很容易學習和使用。有了 visio,無需專業(yè)繪圖 技術就可以創(chuàng)建具有專業(yè)外觀的圖表。通過將預定義的 smartshapes 符號從模具 拖到繪圖頁中,即可快速和容易地組裝圖表。內(nèi)置的邊框、背景和顏色方案可以
30、幫 助您將專業(yè)外觀添加到圖表中。通過將圖表復制到 office 文檔中或者另存為詳細 的 web 頁,就能輕松實現(xiàn)圖表共享。 visio 有三個主要作用: 1)補充 microsoft office 業(yè)務專業(yè)人員可以創(chuàng)建信息豐富的圖表,以便補 充 和擴展他們用 office 程序所做的工作。 2)簡化技術設計、部署和維護,技術專業(yè)人員可以用圖表記錄創(chuàng)意、信息和 系 統(tǒng),以便簡化 it 部署、擴展開發(fā)工具的使用、甚至記錄設備布局和工程計劃。 3)支持開發(fā)自定義的可視解決方案 visio 使用戶能夠創(chuàng)建自定義的形狀和模 具來支持組織標準,還可以用來創(chuàng)建范圍廣泛的自定義可視解決方案。 2.42.4
31、powerdesigner 簡介 powerdesigner 系列產(chǎn)品提供了一個完整的建模解決方案,業(yè)務或系統(tǒng)分析人 員,設計人員,數(shù)據(jù)庫管理員 dba 和開發(fā)人員可以對其裁剪以滿足他們的特定的需 要;而其模塊化的結構為購買和擴展提供了極大的靈活性,從而使開發(fā)單位可以根 據(jù)其項目的規(guī)模和范圍來使用他們所需要的工具。powerdesigner 靈活的分析和設 計特性允許使用一種結構化的方法有效地創(chuàng)建數(shù)據(jù)庫或數(shù)據(jù)倉庫,而不要求嚴格遵 循一個特定的方法學。powerdesigner 提供了直觀的符號表示使數(shù)據(jù)庫的創(chuàng)建更加 容易,并使項目組內(nèi)的交流和通訊標準化,同時能更加簡單地向非技術人員展示數(shù) 據(jù)庫
32、和應用的設計。 powerdesigner 不僅加速了開發(fā)的過程,也向最終用戶提供了管理和訪問項目 信息的一個有效結構。它允許設計人員不僅創(chuàng)建和管理數(shù)據(jù)的結構,而且允許開發(fā) 和利用數(shù)據(jù)的結構,針對領先的開發(fā)工具環(huán)境快速地生成應用對象和數(shù)據(jù)敏感的組 件。開發(fā)人員可以使用同樣的物理數(shù)據(jù)模型查看數(shù)據(jù)庫的結構和整理文檔,以及生 成應用對象和在開發(fā)過程中使用的組件。應用對象生成有助于在整個開發(fā)生命周期 提供更多的控制和更高的生產(chǎn)率。 powerdesigner 是一個功能強大而使用簡單工具集,提供了一個復雜的交互環(huán) 境,支持開發(fā)生命周期的所有階段,從處理流程建模到對象和組件的生成。 powerdesig
33、ner 產(chǎn)生的模型和應用可以不斷地增長,適應并隨著你的組織的變 化而變化。 powerdesigner 包含六個緊密集成的模塊,允許個人和開發(fā)組的成員以合算的 方式最好地滿足他們的需要。這六個模塊是: powerdesigner processanalyst,用于數(shù)據(jù)發(fā)現(xiàn)。 powerdesigner dataarchitect,用于雙層,交互式的數(shù)據(jù)庫設計和構造。 powerdesigner appmodeler,用于物理建模和應用對象及數(shù)據(jù)敏感組件的生成。 powerdesigner metaworks,用于高級的團隊開發(fā),信息的共享和模型的管理。 powerdesigner wareho
34、usearchitect,用于數(shù)據(jù)倉庫的設計和實現(xiàn)。 powerdesigner viewer,用于以只讀的、圖形化方式訪問整個企業(yè)的模型信息。 第三章 概要設計 3.1 需求分析 排課是學校管理中一個比較重要也比較復雜的問題,教師,課程,教室,學生, 時間分配,這一系列的問題環(huán)繞著排課人員。比如說教室容量的限制、教室分配限 制等等問題,使得排課人員很難在同時兼顧多重條件限制下,排出滿意度高的課表。 如何很好的解決這個復雜的問題呢?隨著計算機時代的發(fā)展,排課也進入了一個智 能的時代。如何用計算機算法和軟件實現(xiàn)一個操作簡便、靈活、實用、安全的高校 排課管理系統(tǒng)成為一個時代發(fā)展的需要! 3.1.1
35、3.1.1 界面及環(huán)境需求界面及環(huán)境需求 環(huán)境需求為支持 windows 操作系統(tǒng),系統(tǒng)的操作用戶主要應用 windows 操作系 統(tǒng),而界面需求為采用 gui 方式。 .2 功能需求功能需求 系統(tǒng)的主要功能為: 教師信息管理: 對教師信息有增加,刪除,修改查詢等功能。 課程信息管理: . 對課程信息有增加,刪除,修改查詢等功能。 教室信息管理: 對教室信息有增加,刪除,修改查詢等功能。 班級信息管理: 對班級信息有增加,刪除,修改查詢等功能。 教師課程信息管理: 對教師所授課程的關系的增加與刪除功能。 班級課程信息管理: 對班級所學課程的關系的增加與刪除等功能。 教師授課信息
36、管理: 對教師所帶課程以及所學班級的關系的一個增加刪除修改等功能。 排課: 實現(xiàn)自動排課。 教師課表輸出: 輸出所選擇的教師的課表。 班級課表輸出: 輸出所選擇的班級的課表。 幫助 : 提供一些文檔類型的幫助信息。 3.2 模塊功能設計 通過對需求的分析,本系統(tǒng)主要的功能模塊極其子模塊設計如圖 3-1。 高高校校排排課課系系統(tǒng)統(tǒng) 排排課課實實現(xiàn)現(xiàn)模模塊塊 教教師師課課表表輸輸出出模模塊塊 信信息息錄錄入入模模塊塊 班班級級課課表表輸輸出出 相相關關幫幫助助模模塊塊 教教師師信信息息管管理 理 班班級級信信息息管管理理 課課程程信信息息管管理理 教教室室信信息息管管理理 教教師師課課程程信信息息
37、管管理理 班班級級課課程程信信息息管管理理 教教師師授授課課信信息息管管理理 圖 3-1 模塊功能圖 本設計的主要模塊包括信息錄入模塊,排課實現(xiàn)模塊,教師課表輸出模塊,班 級課表輸出模塊,以及相關信息幫助模塊。其中信息錄入模塊又分為七個子模塊, 分別對各個信息的管理。包括教師信息管理,班級信息管理,課程信息管理,教室 信息管理,教師課程信息管理,班級課程信息管理,教師授課信息管理。 各模塊的主要功能為: 1)教師信息管理: 針對教師姓名,教師編號,教師簡介的添加,修改查詢,刪除等來實現(xiàn)教師信 息的維護。 2)班級信息管理: 針對班級名稱,班級編號,班級人數(shù),班級簡介的添加,刪除修改,查詢等來
38、實現(xiàn)對班級信息的維護。 3)課程信息管理: 針對課程名稱,課程編號,課時數(shù),課程簡介的添加,刪除,修改,查詢等來 實現(xiàn)對課程信息的維護。 4)教室信息管理: 針對教室名稱,座位數(shù),教室編號,教室簡介的添加,刪除,修改,查詢等來 實現(xiàn)對教室信息的維護。 5)教師課程信息管理: 實現(xiàn)教師和所授課程的對應關系。 6)班級課程信息管理: 實現(xiàn)班級和所學課程的對應關系。 7)教師授課信息管理: 對教師,課程,班級的一一對應的一個添加,刪除等功能來實現(xiàn)這些關系的實 現(xiàn)與管理。 8)排課: 實現(xiàn)程序主要功能排課。 9)教師課表輸出: 選擇要查詢的教師姓名然后輸出該教師的課程表。 10)班級課表輸出: 選擇要
39、查詢的班級輸出相應的班級課程表。 3.3 排課算法設計 高校排課系統(tǒng)采用了多種不同的排課思想,其中關聯(lián)規(guī)則需求矩陣法和回溯算 法的思想,基于 c/s 的開放式結構,以此為基礎,對該領域進行歸納,并梳理其理 論邏輯,期望本文能為人們進一步研究這一課題提供一些有益的視角。排課調(diào)課是 高校教務管理的一項日常工作,因其費時費力,手工完成多易出錯,所以利用計算 機進行自動排課的想法自然而生。國外從 20 世紀 50 年代就有人研究排課問題,直 到 20 世紀 90 年代關于課表問題的研究仍然十分活躍。所用方法有整數(shù)規(guī)劃、圖論、 分支定界技術及模擬退化法等。國內(nèi)從 20 世紀 80 年代初期開始排課問題的
40、研究, 從模擬手工排課到構建專家系統(tǒng)都有嘗試。此文就是通過對多篇文獻資料的參考, 綜述智能排課在高校教育中的發(fā)展及應用。 .1 系統(tǒng)總體目標系統(tǒng)總體目標 排課管理的主要任務是把各系或各授課部門的課程申請進行匯總, 然后根據(jù)教 學計劃或教學環(huán)節(jié)制訂全校各班級的課表。為了使課表的編排準確、合理、快速、 高效, 充分利用學校資源。 本系統(tǒng)應該具備以下功能 : 1)根據(jù)教學計劃和開課任務書實現(xiàn)自動排課 , 按不同方式輸出排課結果。 2)同一門課程可以安排在同一個教室 , 也可以有所流動。 3)對于某門課 , 第一次授課的時間段確定后 , 當安排后面的授課時 , 必 須考查時間段的有效性
41、。即同一門課的兩次授課時間必須隔開。比如, 一周 的兩次授課 , 第一次排在周一的 1, 2 節(jié)這個時段 , 第二次授課 , 排在周一 的任何時段和周二的任何時段都太近 , 排在星期五又太遠 , 在星期三或星期 四的某個時間則比較理想。 4)應避免各種沖突 : 教室不沖突 , 同一教室同一時間不能安排兩門課程 ,人數(shù)不能超過教室的 最大容量。 學生不沖突 , 同一班級學生不能在同一時間上兩門或兩門以上課程。 課程不沖突 , 同一班級同一課程不能同一時間在不同地點上課。 教師不沖突 , 同一教師不能同一時間在不同地點上課。 .2 排課算法設計及描述排課算法設計及描述 針對系統(tǒng)設計
42、的總體目標,排課算法要滿足相應的約束條件,且要達到一定的 效率,算法流程圖如圖 3-2。 開開始始 選選擇擇班班級級課課程程 first to last do 判判斷斷是是否否已已排排 是是 選選出出所所對對應應的的教教師師 否否 判判斷斷是是否否合合班班 計計算算人人數(shù)數(shù) 計計算算人人數(shù)數(shù) 選選擇擇教教室室選選擇擇教教室室 判判斷斷教教師師班班級級空空否否判判斷斷教教師師班班級級空空否否 排排合合班班課課排排課課 判判斷斷循循環(huán)環(huán)結結束束 結結束束 是是 否否 否否 否否 是是是是 是是 否否 圖 3-2 算法設計流程圖 1)排課以班級為主線選出班級課程表中所有的記錄,根據(jù)班級課程表中的每
43、一條記錄做一個循環(huán),判定每個班級所對應的課程是否已排。是:返回選擇下一條 記錄。否:進行下一步。 2)根據(jù)班級課程表中的 id 到教師授課表中選擇所對應的教師。 3)按策略選擇一個教室的時間段,根據(jù)教室的時間段判斷教師,班級是否有 空。否:返回上一層重新選擇教室,直到滿足條件為止。是:進行下一步。 4)判斷是否合班上課。合:判斷人數(shù)合大于不大于教室座位數(shù)。大于:返回 3 重新選擇教室重新判斷。不大于:進行下一步 5。不合:判斷人數(shù)是否大于教室 座位數(shù)大于:大于:返回 3 重新選擇教室重新判斷。不大于:跳到 6。 5)對合班的排課,同時把選中的班級以及合班的班級同時進行排課及寫入數(shù) 據(jù)庫。返回循
44、環(huán)開始。 6)不合班,對選中的班級進行排課,寫入數(shù)據(jù)庫,返回循環(huán)開始。 7)循環(huán)結束,結束本次排課。 第四章 數(shù)據(jù)庫設計 4.1 實體關系模型 實體-關系模型(entity-relationship module,簡稱 e-r 模型)是數(shù)據(jù)庫結構 設計常用的方法,e-r 圖中的矩形表示實體,菱形表示實體間的聯(lián)系,橢圓表示實 體屬性,聯(lián)系的類型可用 1:1 或 m:n 來表示。 自動排課系統(tǒng)的數(shù)據(jù)庫設計主要是老師、班級、課程、教室的信息管理,其 e- r 圖如圖 4-1。 課程班級 教師教室 開設 上課 擔任 聽 課 授課 m n 課程名 編號 課時 班級編號 班級名稱 班級人數(shù) 教師編號 教師
45、姓名 教室編號 教室坐位數(shù) 教室名稱 m n m n mn m n 4-1 實體關系模型圖 4.2 數(shù)據(jù)庫設計 對數(shù)據(jù)表的設計主要考慮到數(shù)據(jù)的存儲以及表與表之間的關系,比如說對教師 表和教師課程表以及課程表之間的關系,教師表中包括教師 id,教師姓名,教師其 他的一些信息。教師課程表中包括教師 id 課程 id。課程表中包括課程 id,課程名 稱,課時數(shù),以及課程簡介。其中關系是教師課程表中的教師 id 關聯(lián)教師表中的 id,教師課程表中的課程 id 關聯(lián)課程表中的課程 id。這樣可以減少一些重復的信 息存儲,有效降低數(shù)據(jù)冗余。不過有時候也會增加一些數(shù)據(jù)冗余,這是考慮程序員 在使用方便的情況下
46、做的一些必要的數(shù)據(jù)冗余。 根據(jù) e-r 圖設計數(shù)據(jù)庫關系如圖 4-2。 fk_teacherc_reference_teacheri fk_teacherc_reference_coursein fk_classcou_reference_coursein fk_classcou_reference_classinf fk_roomtime_reference_classroo fk_teacherc_reference_roomtime fk_teacherc_reference_teacherc fk_teacherc_reference_classcou 上 上 上 上 上 上 上 上
47、上 上 id 上 上 上 上 id 上 上 上 上 int int int 上 上 上 上 上 上 上 id 上 上 上 上 上 上 上 上 上 上 int char(10) int varchar(128) 上 上 上 上 上 id 上 上 上 上 上 上 上 上 上 int char(10) int varchar(128) 上 上 上 上 上 上 上 上 id 上 上 上 上 上 上 上 int char(10) int varchar(128) 上 上 上 上 上 上 上 上 上 上 上 上 id 上 上 id 上 上 上 上 上 上 上 上 int int int int int 上
48、 上 上 上 上 上 上 上 上 上 上 上 上 上 上 上 id 上 上 上 上 id 上 上 上 上 上 id 上 上 上 上 上 上 上 id 上 上 上 上 上 上 上 上 id int int int int int int 上 上 上 上 上 上 上 上 上 id 上 上 上 上 上 id int int 上 上 上 上 上 上 上 id 上 上 上 上 上 上 int int char(10) varchar(128) 4-2 數(shù)據(jù)庫關系圖 具體數(shù)據(jù)表設計如下: 1)教師信息表 教師信息表存放教師相關信息,因為畢業(yè)設計主要關注排課算法的實現(xiàn),因此 教師信息表中的字段并不豐富,例如
49、可以再增加聯(lián)系電話,家庭地址等必要字段, 這也是畢業(yè)設計后續(xù)需要完善的地方,具體的表字段如表 4-1。 表 4-1 教師信息表 名稱名稱代碼代碼數(shù)據(jù)類型數(shù)據(jù)類型是否主鍵是否主鍵是否必須是否必須 教師內(nèi)部 id teacherinfoidinttruetrue 工號 teachernumberintfalsetrue 姓名 teachernamecharfalsetrue 備注 teacherothersvarcharfalsefalse 2)班級信息表 班級信息表主要包括班級 id,班級名稱,班級人數(shù)等信息。主要是對班級信息 的存儲。具體的表字段如表 4-2。 表 4-2 班級信息表 名稱名稱
50、代碼代碼數(shù)據(jù)類型數(shù)據(jù)類型是否主鍵是否主鍵是否必須是否必須 班級內(nèi)部 idclassinfoidinttruetrue 班級名稱classnamecharfalsetrue 班級人數(shù)classnumberintfalsetrue 備注classothersvarcharfalsefalse 3)課程信息表 課程信息表包括課程 id,課程名稱,課時數(shù),課程簡介,主要是對課程信息的 存儲。具體表字段如表 4-3。 表 4-3 課程信息表 名稱名稱代碼代碼數(shù)據(jù)類型數(shù)據(jù)類型是否主鍵是否主鍵是否必須是否必須 課程表內(nèi)部 idcourseinfoidinttruetrue 課程名coursenamechar
51、falsetrue 課時coursetimesintfalsetrue 備注courseothersvarcharfalsefalse 4)教室信息表 教室信息表包括教室 id,教室名稱,座位數(shù),教室簡介,主要是對教室信息的 存儲。具體表字段如表 4-4。 表 4-4 教室信息表 名稱名稱代碼代碼數(shù)據(jù)類型數(shù)據(jù)類型是否主鍵是否主鍵是否必須是否必須 教室內(nèi)部 idclassroominfoidinttruetrue 教室名稱classroomnamecharfalsetrue 座位數(shù)classroomnumberintfalsetrue 備注classroomothersvarcharfalsef
52、alse 5)教室時段表 教室時段表是對教室各個時段的信息存儲。包括教室時段表內(nèi)部 id,教室內(nèi)部 id,周次,課次,是否已排,對這樣信息的處理主要是為了方便排課的時候使用。 具體表字段設計如表 4-5。 表 4-5 教室時段表 名稱名稱代碼代碼數(shù)據(jù)類型數(shù)據(jù)類型是否主鍵是否主鍵是否必須是否必須 教室時段表內(nèi)部 idroomtimeinfoidinttruetrue 教室內(nèi)部 idclassroominfoidintfalsetrue 周次zhouciintfalsetrue 課次keciintfalse true 是否已排isarrangeintfalsetrue 6)教師課程表 教師課程表是
53、對教師與課程關系的一個存儲。包括教師 id,課程 id。表字段 設計如表 4-6。 表 4-6 教師課程表 名稱名稱代碼代碼數(shù)據(jù)類型數(shù)據(jù)類型是否主鍵是否主鍵是否必須是否必須 教師內(nèi)部 idteacherinfoidinttruetrue 課程表內(nèi)部 idcourseinfoidinttruetrue 7)班級課程表 班級課程表是對班級與課程關系的一個存儲。包括班級 id,課程 id。表字段 設計如表 4-7。 表 4-7 教師課程表 名稱名稱代碼代碼數(shù)據(jù)類型數(shù)據(jù)類型是否主鍵是否主鍵是否必須是否必須 課程表內(nèi)部 idcourseinfoidinttruetrue 班級內(nèi)部 idclassinfo
54、idintfalsetrue 是否已排isarrangeintfalsetrue 8)教師上課單元表 教師上課單元表是對教師,所授課程,所學班級的一個信息存儲。部分信息需 要手動輸入部分信息是由排課的時候生成的。主要表字段有教師上課單元表內(nèi)部 id,教師內(nèi)部 id,課程表內(nèi)部 id,教室時段表內(nèi)部 id,合班代碼,班級內(nèi)部 id。 表字段設計如表 4-8。 表 4-8 教師上課單元表 名稱名稱代碼代碼數(shù)據(jù)類數(shù)據(jù)類 型型 是否主鍵是否主鍵是否必須是否必須 教師上課單元表內(nèi)部 idteachercourseclassinfointtruetrue 教師內(nèi)部 idteacherinfoidintfa
55、lsetrue 課程表內(nèi)部 idcourseinfoidintfalsetrue 教室時段表內(nèi)部 idroomtimeinfoidintfalsefalse 合班代碼togetherflagintfalsetrue 班級內(nèi)部 idclassinfoidintfalsetrue 4.3 視圖設計 因為在算法中多次用到對表字段的聯(lián)合查詢,為了方便算法的使用所以聯(lián)合教 師授課表與教室時段表設計了視圖 teachertime。設計過程如圖 4-3。 圖 4-3 視圖 teachertime 視圖 teachertime 的具體字段如表 4-9。 表 4-9 視圖 teachertime 具體字段 名稱
56、名稱代碼代碼屬于表屬于表輸出輸出 教師表內(nèi)部編號tacherinfoidteachercourseclassinf o true 課程內(nèi)部編號courseinfoidteachercourseclassinf o true 班級表內(nèi)部編號classroominfoidteachercourseclassinf o true 合班標志togetherflagteachercourseclassinf o true 教室時段表內(nèi)部編號roomtimeinfoidteachercourseclassinf o true 是否已排isarrange roomtimeinfotrue 周次zhoucir
57、oomtimeinfotrue 課次keci roomtimeinfotrue 教室表內(nèi)部編號classroominfoidroomtimeinfotrue 由于在課表輸出的時候要聯(lián)合很多表查詢,為了方便輸出課表輸出方便程序員 的使用設計視圖 kebiao 設計過程如圖 4-4。 圖 4-4 視圖 kebiao 視圖 kebiao 的具體字段如表 4-10。 表 4-10 視圖 kebiao 具體字段 名稱名稱代碼代碼屬于表屬于表輸出輸出 周次zhouciroomtimeinfotrue 課次keciroomtimeinfotrue 教室名classroomnameclassroominfot
58、rue 課程名coursename courseinfotrue 教師名teachernameteacherinfotrue 教師表內(nèi)部編號tacherinfoid teachercourseclassinf o true 課程表內(nèi)部編號courseinfoidteachercourseclassinf o true 教室時段表內(nèi)部編號roomtimeinfoidteachercourseclassinf o true 教室內(nèi)部編號classroominfoidclassroominfotrue 4.4 數(shù)據(jù)庫的連接 delphi 中連接數(shù)據(jù)庫的組件為 adoconnection 組件,將 a
59、doconnection 連接 sql server 數(shù)據(jù)庫。如連接主界面窗體和數(shù)據(jù)庫,具體步驟如下: 1)在主界面窗體中添加一個名為 adoconnection 的 adoconnection1 組件,雙 擊 adoconnection1,選擇 connectionstring 屬性,進行數(shù)據(jù)庫的連接,出現(xiàn)如圖 4-5 所示的“zhuye. adoconnection1.connectionstring”對話框。 圖 4-5 “zhuye. adoconnection1.connectionstring”對話框 2)在圖 4-5 的對話框中選擇“使用連接字符串”單選框 ,然后單擊“構建” 按
60、鈕,進入圖 4-6 所示的“數(shù)據(jù)庫屬性設置”對話框。 圖 4-6“數(shù)據(jù)庫屬性設置”對話框 3)選擇“microsoft ole db provider for sql server” ,單擊“下一步” ,出現(xiàn) 4-7 所示的“數(shù)據(jù)庫屬性設置”對話框。 圖 4-7“數(shù)據(jù)庫屬性設置”對話框 4)在“選擇或輸入服務器名稱”中選擇自己的 sql 數(shù)據(jù)庫的服務器名稱,再 選擇登錄服務器信息,然后在“在服務器上選擇數(shù)據(jù)庫”下拉框中選擇自己所建的 數(shù)據(jù)庫名,單擊“測試連接”按鈕。 5)如果出現(xiàn)如圖 4-8 所示的“microsoft 數(shù)據(jù)鏈接”對話框,則表示數(shù)據(jù)庫 連接成功。 圖 4-8“microsoft
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省遵化市堡子店中學2025屆高考仿真模擬英語試卷含解析
- 2025屆河北省廊坊市六校聯(lián)考高三下學期一??荚嚁?shù)學試題含解析
- 《solidworks 機械設計實例教程》 課件 任務11.1 單缸搖擺蒸汽機運動仿真的設計
- 上海市崇明區(qū)市級名校2025屆高三最后一卷英語試卷含解析
- 《solidworks 機械設計實例教程》 課件 任務6.2 密封壓蓋的設計
- 忻州一中2025屆高考仿真卷數(shù)學試題含解析
- 吉林省遼源市2025屆高三下第一次測試數(shù)學試題含解析
- 云南省開遠一中2025屆高三3月份第一次模擬考試英語試卷含解析
- 2025屆山西省孝義中學高三第二次聯(lián)考數(shù)學試卷含解析
- 2025屆廣東省汕頭市潮南區(qū)高三壓軸卷數(shù)學試卷含解析
- 汽油安全技術說明書(MSDS)
- 穿脫隔離衣及注意事項培訓課件穿脫隔離衣的注意事項有哪些
- 實訓報告計算機網(wǎng)絡直連兩臺計算機
- 高中生學習思想?yún)R報范文(12篇)
- 2023大地電磁測深法技術規(guī)程
- 機械加工工藝過程卡片+工序卡
- 燒傷面積的計算
- 藥店培訓資料
- Office辦公軟件應用(Office2010)中職全套教學課件
- 子癇應急預案
- 土石方工程挖掘機人員車輛信息登記表
評論
0/150
提交評論