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