




已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
無憂無慮畢設網(wǎng) ():畢業(yè)設計源碼下載 畢業(yè)設計源碼下載: 本文配套程序下載地址 : 無憂無慮畢設網(wǎng) ()-大學生畢業(yè)設計站 ,免費畢業(yè)設計論文 ,無憂無慮畢設網(wǎng) 大學生畢業(yè)設計 ,出售各類畢業(yè)設計源碼 ,論文 ,程序源碼 ,網(wǎng)站源碼 ,免費視頻教程 ,我們將竭誠為您服務! 分類號 : TP311 U D C: D10621-408-(2007) 5796-0 密 級:公 開 編 號: 2003211064 成 都 信 息 工 程 學 院 學 位 論 文 某高等學校教務排課系統(tǒng)的設計與 實現(xiàn) 論文作者姓名: 胡 彥 妮 申請學位專業(yè): 網(wǎng) 絡 工 程 申請學位類別: 工 學 學 士 指導教師姓名(職稱): 王 翔 論文提交日期: 2007 年 06月 10 日 無憂無慮畢設網(wǎng) ():畢業(yè)設計源碼下載 畢業(yè)設計源碼下載: 某高等學校教務排課系統(tǒng)的設計與實現(xiàn) 摘 要 當?shù)谝慌_計算機出現(xiàn)時,不僅意味著新型革命的到來,也預示著科技時代的來臨。尤其是踏入 21 世紀后,計算機技術得到了空前的發(fā)展,而網(wǎng)絡的普及使得各行各業(yè)逐漸離不開電腦。對于高校而言,在教務辦公中已經(jīng)越來越多的實現(xiàn)了自動化,既提高了工作的效率,也規(guī)范了教學的操作,增加了科 學性。 在分析以往一些排課系統(tǒng)的基礎上,本設計提出一個基于動態(tài)加權算法(即貪婪法)的排課系統(tǒng)設計方法,采用手動預排、自動排課、手動調(diào)節(jié)的三級排課模式,并對一些具體的技術問題做出相應安排。在功能方面,它能實現(xiàn)查閱、修改、添加等比較基本的功能,也能夠實現(xiàn)自動排課、權限管理等較復雜的功能。本設計采用 C/S 模式,主要用 Delphi7.0 作為前臺開發(fā)工具,用 SQL Server 2003作為后臺數(shù)據(jù)庫。 經(jīng)過測試后,本設計已可達到預想中的效果,能夠實現(xiàn)簡易的功能。 關鍵字 : 動態(tài)加權算法;自動化; C/S 模式;三級排課模 式 Design and Implementation of a University Academic Course Scheduling System Abstract The appearance of the first computer means not only the arrival of 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 universities, 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 is 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 include 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 function. Key words: Dynamic weighted algorithm; Automation; C/S mode; Three Levels Course Scheduling Model 目 錄 論文總頁數(shù): 25 頁 1 引 言 . 1 2 基本理論知識介紹 . 1 2.1 SQL Server 2003 數(shù)據(jù)庫簡介 . 1 2.2 Delphi7.0 簡介 . 2 2.3 C/S 模式介紹 . 4 3 教務排課系統(tǒng)的設計與實現(xiàn) . 4 3.1 教務排課系統(tǒng)簡介 . 4 3.2 教務排課系統(tǒng)分析 . 5 3.2.1 算法分析 . 5 3.2.2 算法流程圖 . 6 3.2.3 功能分析 . 7 3.2.4 需求分析 . 7 3.3 排課系統(tǒng)的功能模塊 . 8 3.4 數(shù)據(jù)庫設計 . 9 3.5 系統(tǒng)流程及代碼分析 . 11 3.5.1 系統(tǒng)流程圖 . 11 3.5.2 代碼分析 . 11 4 系統(tǒng)測試 . 18 4.1 測試環(huán)境 . 18 4.2 主要模塊測試 . 18 4.3 測試結果 . 22 結 論 . 22 參考文獻 . 23 致 謝 . 24 聲 明 . 25 第 1 頁 共 25 頁 1 引 言 隨著計算機的發(fā)展和教育改革的不斷深入,計算機網(wǎng)絡技術的不斷成熟,綜合教學網(wǎng)絡已廣泛應用于學校教學、管理的各個領域,特別是 教務 排課系統(tǒng)的應用。它代表著學校教學管理的水平,是現(xiàn)代化管理的手段。目前大多數(shù) 教務 排課系統(tǒng)是采用各教學單位進行教學任務的指派,然后將教學任務單提交教務科,教務人員將數(shù)據(jù)輸入 計算 機,進行排課、打印課程表等工作。這種 教務 排課系統(tǒng)只是在一定程度上減輕了教務人員排 課的負擔。 近幾年來,我國高等教育事業(yè)的快速發(fā)展,高校新生的擴招力度加大,各個高校中的多個校區(qū)、多個學院的教學管理模式已經(jīng)隨處可見,各高校都面臨著教室資源緊張的問題 。 原來每個班有一個固定教室的模式已不存在,甚至原來一個系專用的教學樓也要考慮參加全校的教室資源統(tǒng)一調(diào)整。現(xiàn)在的本科院校包括研究生在內(nèi),一般都有上萬人或幾萬人的規(guī)模 。 要在每個學期末的一個短時間內(nèi)拿出一份涉及到有關全校教室統(tǒng)調(diào)的課表來,對高校的教務處來說確實是一個很艱巨的任務。 排課系統(tǒng)的主要任務是根據(jù)現(xiàn)有的教學資源對課程進行合理的安排。由于高校班 級數(shù)、課程門數(shù)較多,每門課有涉及很多信息,如果用手工進行排課,不可避免地出現(xiàn)教室資源沖突或教師資源沖突的情況。 如何更有效地利用人力、物力資源,充分發(fā)揮計算機的輔助作用,減輕教務人員的工作強度,在對需求進行詳細的分析后,本文提出了基于教學大綱的教務排課設計思想,并對其算法進行了描述。 本論文就該教務排課系統(tǒng)的設計實現(xiàn)進行了分析探討:首先對系統(tǒng)的需求分析做了敘述,然后介紹了系統(tǒng)的設計和實現(xiàn),最后進行了系統(tǒng)測試。本系統(tǒng)采用 Delphi7.0作為前臺開發(fā)工具,采用 SQL Server 2003 作為后臺數(shù)據(jù)庫。 2 基本理論知識介紹 2.1 SQL Server 2003 數(shù)據(jù)庫簡介 Microsoft SQL Server 2003 是 Microsoft 公司繼 SQL Server 6.5 和 SQL Server 7.0 以后,推出的又一改進的新版關系型數(shù)據(jù)管理系統(tǒng)。它能使用戶快捷地管理數(shù)據(jù)庫和開發(fā)應用程序。 SQL Server 2003 使用了先進的數(shù)據(jù)庫結構,與 Windows DNA 緊密集成,具有強大的 Web 功能,它可以利用高端硬件平臺以及最新網(wǎng)絡和存儲技術,可以為最大的 Web 站點和企業(yè)應用提供優(yōu)良的擴展性和可靠性,使用戶 能夠在 Internet 領域快速建立服務系統(tǒng),為占領市場贏得寶貴的時間。 同時 , SQL Server 2003 還為用戶提供了重要的安全性功能的增強,為用戶的數(shù)據(jù)安全提供了可靠的保證。另外 ,SQL Server 2003 在數(shù)據(jù)庫服務器自動管理技術方面處于數(shù)據(jù)庫領域的領先地位,它可以使用戶免去繁瑣復雜的工作第 2 頁 共 25 頁 量,從而有精力處理更重要的問題,使用系統(tǒng)在商業(yè)戰(zhàn)略上占得先機。 關系型數(shù)據(jù)庫系統(tǒng)是當前最流行的數(shù)據(jù)庫 管理 系統(tǒng)。它是一個非常復雜的系統(tǒng)軟件,對數(shù)據(jù)庫的所有操作,包括定義、查詢、更新和各種運行控制最終都通過它來實現(xiàn)的 ,因 此 它是使數(shù)據(jù)庫系統(tǒng)具有 數(shù)據(jù) 共享、并發(fā)訪問、 數(shù)據(jù) 獨立等特性的根本保證。 目前, Microsoft SQL Server 2003 是在成熟和強大的關系型數(shù)據(jù)庫中最受歡迎、應用最廣泛的一個。 就關系數(shù)據(jù)庫管理系統(tǒng) (RDBMS)而言,它是位于用 戶 與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,它主要負責強化數(shù)據(jù)庫的結構,簡單來說包括如下功能: (1) 維持數(shù)據(jù)庫中 數(shù)據(jù) 的關系。 (2) 保障 數(shù)據(jù) 的正確存儲,即保障定義 數(shù)據(jù) 之間的關系的種種規(guī)則不會被違背。 (3) 在系統(tǒng)出錯時,把 數(shù)據(jù) 恢復到一個能保證一致性的狀態(tài)。 SQL Server 2003 系統(tǒng)之所以成為目前流行的大型商用數(shù)據(jù)庫系統(tǒng),有著其深刻的內(nèi)在因素,這與它鮮明的特點是分不開的: (1) 與 Internet 的高度集成 。 (2) 高伸縮性和適應性 。 (3) 企業(yè)級數(shù)據(jù)庫功能強 。 (4) 易于安裝和使用 。 (5) 具有決策支持的資料倉庫 。 2.2 Delphi7.0 簡介 Delphi 是 Borland 公司發(fā)布的用于開發(fā)數(shù)據(jù)庫應用程序的工具,它是目前開發(fā)客戶 /服務器數(shù)據(jù)庫應用程序的強有力的工具。 Delphi 是具有可視化界面的面向對象編程語言 .而最新的 Delphi 7.0 具有以下新特 點: 和以往 Delphi 的每一個新版本一樣, Delphi 7 繼續(xù)改善了開發(fā)環(huán)境,幫助程序員提高效率。 Delphi 7 在集成開發(fā)環(huán)境中加入了很多讓程序員愛不釋手的新功能,下面是對它們的一個簡單介紹。 ( 1) Code Complete(代碼完成) Code Complete 功能在 Delphi 5 中就已經(jīng)加入了,這項功能非常受程序員的歡迎,因為 Code Complete 可以大幅度地減少程序員需要鍵入的程序代碼,并且減少鍵入錯誤。 Delphi 7 的 Code Complete 功能在原有的基礎上繼續(xù)改善,新的 Code Complete 窗口不但可以由程序員自行調(diào)整大小,而且可以使用不同的顏色代表不同的對象,例如變量、方法和特性等。 ( 2) Object TreeView(對象樹視圖) 另外一個新功能就是 Delphi 7 的 Object TreeView 窗口。這個新的窗口除第 3 頁 共 25 頁 了可以顯示窗體中所有的對象之外,也可以以分層方式表達組件之間的關系。當程序員在 Object TreeView 窗口中單擊了一個組件之后,這個組件會立刻出現(xiàn)在對象查看器之中,這時程序員可以改變這個對象的特性值和事件處理程序。 當窗體復雜,擁有大量的組件時 , Object TreeView 窗口可以讓用戶迅速找到這個組件,并且知道與當前組件相關的組件,非常方便。 ( 3)可定制的 View 窗口 Delphi 7最強勁的集成開發(fā)環(huán)境功能應該要算是新的可定制的 View窗口了。在 Delphi 7 中,編輯器不但可以讓程序員觀看和編輯 Object Pascal 的程序代碼,而且如果程序員編輯的是 Web 應用程序,那么還可以直接在編輯器中查看HTML 程序代碼、腳本語言程序代碼,預覽 Web 應用程序執(zhí)行結果的畫面以及 Web應用程序產(chǎn)生的 HTML 程序代碼。 ( 4)新添加 Indy Intercepts 和 Indy I/O Handler 構件組 企業(yè)版的 Delphi 7 中,這兩個構件組基本上提供了針對現(xiàn)今流行的Internet 協(xié)議編程的構件。可以進行更為底層的操作。 ( 5)新添加 IW Standard、 IW Data、 IW Client Side 和 IW Control 構件組 這些構件也是 Delphi 7 的顯著改革之一,將 Intraweb 集成到了標準的構件板中,我們就可以很方便地開發(fā)基于 Web 的應用程序。 ( 6)新添加的 Rave 報表構件組 Delphi 7 的標準構件板中已經(jīng)沒有 了原來的 QuickReport 構件組,取而代之的是 RAVE 報表制作組件,并且提供專門的報表制作工具 Rave Designer。 Rave 報表構件是一個可視化的報表設計工具,大大簡化了在應用程序中加入報表的工作。用 Rave 報表構件可以做出各種不同的報表,從最簡單的到非常復雜、個性化的報表都可以完成。它的功能包括:圖片支持、對齊、精確頁面定位、打印機設置、字體控制、打印預覽、報表內(nèi)容重用,并支持 PDF、 HTML、 RTF等文本格式。隨著 Active X 數(shù)據(jù)對象( ADO)的推出,它能讓應用程序通過任意的 OLE DB 提供者訪問和操作數(shù)據(jù)庫,其強大功能使得任何數(shù)據(jù)訪問技術都黯然失色。 而在數(shù)據(jù)集方面,與 BDE不同 ADO是 Microsoft推出的新一代數(shù)據(jù)訪問規(guī)范,在 Delphi7 中它的地位等同于一個和 BDE 并列的數(shù)據(jù)引擎。本系統(tǒng)采用的就是ADO 數(shù)據(jù)集。 雖然 ADO的功能比 BDE比起來弱一些 ,但和 BDE相比 ADO有一些重要的優(yōu)勢,比如: ADO 將會內(nèi)制在從 Windows2000 開始 Microsoft 新出的所有操作系統(tǒng)中,單第 4 頁 共 25 頁 就這一點就足以給其他的數(shù)據(jù)訪問方式畫上問號。 在 Delphi7 中提供了對 ADO 的全力支持,提供了很多 ADO 組件,還增加了一些新的字段類型如: WideString, GUID, Variant, interface, IDispatch 等。 ADO 是面向各種數(shù)據(jù)的層次很高的接口,它提供了強大的數(shù)據(jù)訪問功能,可以訪問的數(shù)據(jù)對象有: a.關系數(shù)據(jù)庫中的各種數(shù)據(jù); b.非關系型數(shù)據(jù)庫,如層次型數(shù)據(jù)庫,網(wǎng)狀數(shù)據(jù)庫等; c.電子郵件與文件系統(tǒng); d.文本與圖象,聲音; e.客戶事務對象。 Delphi5.0版本成功地引入了這項技術,極大程度地擴展了數(shù)據(jù)庫處理能力,為 Delphi 程序員帶來前所未有的廣闊空間。 Delphi 以其功 能強大、簡單易用等諸多特性,深受編程人員的歡迎。所以我選擇了 Delphi7.0 作為開發(fā)工具。 2.3 C/S 模式介紹 C/S ( Client/Server)結構,即大家熟知的客戶機和服務器結構。它是軟件系統(tǒng)體系結構,通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到Client 端和 Server 端來實現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應用軟件系統(tǒng)都是 Client/Server 形式的兩層結構,由于現(xiàn)在的軟件應用系統(tǒng)正在向分布式的 Web 應用發(fā)展, Web 和 Client/Server 應用都可以進行同樣的業(yè)務處 理,應用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應用系統(tǒng),通過現(xiàn)有應用系統(tǒng)中的邏輯可以擴展出新的應用系統(tǒng)。這也就是目前應用系統(tǒng)的發(fā)展方向。 3 教務排課系統(tǒng)的設計與實現(xiàn) 3.1 教務排課系統(tǒng)簡介 課程編排作為高等院校教務管理中的一項重要而且繁重的工作,從一般意義上講,其實質(zhì)就是對學校學期開設的每門課程合理地分配時間資源和教室資源的過程。其中涉及教師、教室、時間和學生等多種因素,人為要求也比較多,另外由于這幾年的高校擴招導致教室資源比較緊張,諸多因素就加重了課程編排工作的難度和復 雜度。如果完全由人工來編排課表,費時費力,其科學性、方便性更是難以保證,所以利用計算機進行自動排課的想法自然而生。目前,經(jīng)研究用來解決排課問題的方法有 :模擬手工排課法、圖論方法、模擬退火法等。國內(nèi)針對課表問題也相繼研制出了一些排課軟件,但是軟件的通用性差,因各學校教學資源不盡相同,管理課表的方法也不乏個性,很難完全規(guī)范化、程序化。本文根據(jù)某高校的實際情況,結合以往的排課經(jīng)驗,通過靜態(tài)設置教學任務的優(yōu)先級、分第 5 頁 共 25 頁 配時間片資源和教室資源時根據(jù)相關參數(shù)動態(tài)設置其優(yōu)先級的算法設計并實現(xiàn)了一個高校智能排課系統(tǒng)。如何充分利 用有限的教室和時間資源合理地編排課表,是本文致力研究的主要問題。 3.2 教務排課系統(tǒng)分析 3.2.1 算法分析 在排課系統(tǒng)中,關鍵的部分在于算法的選擇。好的算法不僅可以節(jié)省時間,更可以提高效率。 幾種排課算法比較: ( 1)自動排課算法:此算法以課程為中心,進行搜索匹配,取最先匹配的值;具有占有空間少,運算速度快的特點。但其未對數(shù)據(jù)進行擇優(yōu)選取,所以不能對教學資源(教師、教室)合理分配,也不能滿足一些特殊要求(比如有些老師喜歡上午上課,有些老師偏向于集中式上課;有些課程安排在上午更合適些,有些課程不能安排到 上午等)。 ( 2)基于優(yōu)先級的排課算法:從數(shù)學上講 , 排課問題是一個在時間、教師、學生和教室四維空間 , 以教學計劃和各種特殊要求為約束條件的組合規(guī)劃問題。其實質(zhì)就是解決各因素之間的沖突。在設計算法時 , 為了降低課程調(diào)度的算法復雜性 , 可采用化整為零的思想 此算法對班級及教室劃分等價類,對學校資源進行了合理的利用。但對一些特殊要求還是無法具體體現(xiàn)出來。 ( 3)基于時間片優(yōu)先級排課算法:此算法屬于貪婪算法。每次對教師、教室資源的選取都是取當前最優(yōu)的數(shù)據(jù)。按照教師、教室、班級的優(yōu)先級取最優(yōu)值,所以對各對象的一些特 殊要求會很明顯的體現(xiàn)出來,在教師、教室資源不緊缺的情況下,此算法能排出相對合理的課程。相對于之前介紹的兩個算法,在處理各種特殊要求的能力上有明顯的優(yōu)勢。 本系統(tǒng)采用的是動態(tài)加權算法即貪婪算法。貪婪法是一種不追求最優(yōu)解,只希望得到較為滿意解的方法。貪婪法一般可以快速得到滿意的解,因為它省去了為找最優(yōu)解要窮盡所有可能而必須耗費的大量時間。貪婪法常以當前情況為基礎作最優(yōu)選擇,而不考慮各種可能的整體情況。在解決排課沖突時,為減少貪婪法的缺點,特在自動排課功能后加入手動調(diào)節(jié)功能,使用者可對不滿意的課程再次調(diào)節(jié)。以下為 算法過程: ( 1) 初始化排課數(shù)組、課程申請數(shù)組。 ( 2) 賦初始權值并對課程申請數(shù)組排序。 ( 3) 將課程申請碼按序進行排課,結果存儲在排課數(shù)組中。 ( 4) 排課思想是將一星期分為幾個層:星期一至五的上午和下午一二節(jié)、第 6 頁 共 25 頁 星期一至五的上午及下午三四節(jié)、星期六全天、星期一至五的晚間。對不同的層進行排課,可避免同一天同一老師授同一門課的問題。 ( 5) 若全部排完,則轉( 7);否則,計算并重新賦相應權值。 ( 6) 對申請數(shù)組重新排序,轉到( 3)。 ( 7) 結束。 3.2.2 算法流程圖 系統(tǒng)的算法流程圖,如圖 1 所示。 清 空 排 課 記 錄各 種 信 息 初 始 化計 算 權 值計 算 總 周 課 數(shù)將 排 課 記 錄 寫 入 數(shù) 據(jù) 庫檢 測 沖 突異 常 函 數(shù) 處 理打 印 課 表結 束開 始 圖 1 算法流程圖 說明:不管是否首次排課,首先進行清空排課記錄,對各種信息的初始化后,計算權值和總周課數(shù),就可以將排課記錄寫入數(shù)據(jù)庫,這實際也是自動排課的過程。排完后系統(tǒng)會進行檢測沖突,若有沖突則彈出提示框,進行異常函數(shù)的處理。第 7 頁 共 25 頁 有需要的,可打印課表。 3.2.3 功能分析 由于排課算法以及沖突檢測在細節(jié)上有很多限制,在設計之前我們做了詳細的討論和分析,得出了排課系統(tǒng)功能的細節(jié)問題: ( 1) “公共基礎課和公選課優(yōu)先固定”,由于這兩種課一 般由教務處制訂課程計劃,因此應該在自動排課之前將它們優(yōu)先固定。 ( 2) “一師多課”沖突情況,即一位教師在同一時間內(nèi)排了一門以上的課。 ( 3) “一室多課”沖突情況,即一個教室在同一時間內(nèi)排了一門以上的課。 ( 4) “一班多課”沖突情況,即一個班級在同一時間內(nèi)排了一門以上的課。 ( 5) “教室容量匹配”情況,即上課班級人數(shù)應該與所在教室的人數(shù)匹配。 ( 6) “合班和分班課程”情況,即在排課時考慮像英語這樣的分班課和政治這樣的合班課如何排課。 ( 7) “課程單雙周”情況,即某些總課時較少的課程,可以考慮在單周 或雙周排課。 ( 8) “同一課程間隔”盡量讓同一課程在一周內(nèi)課時內(nèi)的排課分布均勻。 ( 9) “課程優(yōu)先級”盡量讓學分值高的,重要的課程排在黃金時間,課程優(yōu)先級低的排在其他時間。 ( 10) “課程擴充”如果正常情況下無法滿足課程的需要,就要在晚上或者周六日進行課時的擴充。 ( 11) “ 課程與教室匹配”情況,課程要求的條件必須與教室設備條件相匹配,如是否需要多媒體授課等。 3.2.4 需求分析 針對功能分析中的各種問題,我們在查閱了一些關于排課設計的資料以及試用了幾種排課軟件之后,認為在排課設計中需要實現(xiàn)以下幾 個需求: ( 1) 手動預排課。由于存在公共基礎課以及公選課,而這些課程的設置完全有教務處制定,因此這些課程應該預先設置。 ( 2) 自動排課。根據(jù)輸入的基本信息,進行自動排課,生成課表。在自動排課完成后,將排課異常信息給予反饋。 ( 3) 手動調(diào)節(jié)。完全依賴自動排課排出的課表不能完全符合客觀需求,同時我們在算法及優(yōu)先級確定的精確度方面的水平也有限,因此,應該增加手動調(diào)節(jié)功能,以進一步確保合理性。 ( 4) 設置沖突檢測方法。主要是針對手動預排課和手動調(diào)節(jié)功能可能出現(xiàn)的沖突情況,完善手動排課。 第 8 頁 共 25 頁 ( 5) 系統(tǒng)友好性。 排課系統(tǒng)與使用者應具有交互性,可以增加排課向導提示用戶的使用。 ( 6) 權限管理。主要針對管理員權限的用戶可以進行擁護的添加、修改和刪除。 3.3 排課系統(tǒng)的功能模塊 在系統(tǒng)分析的基礎上,我們提出了系統(tǒng)的功能模塊,如圖 2 所示。 教 務 排 課 系 統(tǒng)系 統(tǒng) 管 理 基 本 信 息 管 理 排 課 管 理系統(tǒng)幫助權限管理教師信息管理教室信息管理班級信息管理課程信息管理課程申請管理手動預排管理自動排課管理手動調(diào)節(jié)管理基本信息設置 圖 2 功能模塊圖 前面描述了教務排課系統(tǒng)的功能模塊劃分,但沒給出各模塊之間的關系。在本系統(tǒng)中,可以把模塊分為三個功能集合: (1) 系統(tǒng)管理功能集合。該集合包括權限管理和系統(tǒng)幫助兩個模塊。當使用者為管理員時可進行權限管理功能, 它能夠添加新的使用者,也可對已有的用戶進行名稱、密碼的修改和刪除。系統(tǒng)幫助功能介紹了開發(fā)系統(tǒng)的相干信息。 (2) 基本信息管理功能集合。該集合包括教師信息管理、教室信息管理、班級信息管理、課程信息管理、課程申請管理五個模塊。在該集合內(nèi)可查看相應的數(shù)據(jù)表,對于管理員級別的用戶可對以上表的內(nèi)容進行添加、修改、刪除的功能。對于一般用戶,只能實現(xiàn)查看信息的基本功能。 (3) 排課管理功能集合。在基本信息設置模塊中,可查看當前日期,又可設置限制排課的條件,如不加限制排課、不在晚上和星期六排課等。而一般用戶只能查看管理 員設置的條件。在排課時,管理員先在課程信息管理中設置好要預先排課的課程,然后調(diào)節(jié)限制排課的條件,就可以使用自動排課功能。用戶可在排好后的課表中查看課表,對于不滿意的課程安排可用手動進行相應的調(diào)節(jié),而手動排課也可針對實驗課等靈活性的課程。 第 9 頁 共 25 頁 3.4 數(shù)據(jù)庫設計 ( 1)課程信息數(shù)據(jù)表 其中課程代碼唯一標識一門課程,課程類型用來確定課程優(yōu)先級,而課程性質(zhì)是課程所需教室條件的信息。如表 1 所示。 表 1 課程信息表 字段名稱 數(shù)據(jù)結構 說明 課程名稱 varchar 課程類別 varchar 考核方式 varchar 有考試、考查等 課程性質(zhì) varchar 有公共課、必修課等 說明 varchar ( 2)班級信息數(shù)據(jù)表 其中申請代碼唯一標識一個申請記錄,是否合班,合班班級,是否分班分別針對合班課與分班課設置。如表 2 所示。 表 2 班級信息表 字段名稱 數(shù)據(jù)結構 說明 班級名稱 varchar 班級人數(shù) int 專業(yè) varchar 包括系別 年級 varchar 班級碼 int 班級的編號 ( 3)教室信息數(shù)據(jù)表 其中教室代碼唯一標識一個教室,教室容量和性質(zhì)分別判斷是否與班級和課程性質(zhì)的相 匹配。如表 3 所示。 表 3 教室信息表 字段名稱 數(shù)據(jù)結構 說明 教室名稱 varchar 教室容量 int 即最大限度的上課人數(shù) 教室性質(zhì) varchar 一般教室、多媒體教室等 教室碼 int 教室的編號 第 10 頁 共 25 頁 ( 4)老師信息數(shù)據(jù)表 其中教師代碼唯一標識一位教師,教師職稱和學位確定教師優(yōu)先級,住所判斷老師是否在校外居住,排課時給予一定的優(yōu)先級。如表 4 所示。 表 4 老師信息表 字段名稱 數(shù)據(jù)結構 說明 老師姓名 varchar 無 職稱 varchar 無 學位 varchar 本科、碩士、博 士 住所 varchar 校內(nèi)、校外 ( 5)課表信息數(shù)據(jù)表 表 5 是在用戶使用系統(tǒng)的“保存課表”功能鍵時自動生成。它實現(xiàn)自動清除、自動添加,具有流動性和可操作性。如表 5 所示。 表 5 課程安排信息表 字段名稱 數(shù)據(jù)結構 說明 申請碼 int 課程的編號 課程名 varchar 無 星期一 varchar 無 星期二 varchar 無 星期三 varchar 無 星期四 varchar 無 星期五 varchar 無 星期六 varchar 無 教室名 varchar 無 老師名 varchar 無 班級名 varchar 無 周課數(shù) int 一周上課的次數(shù) 學分 int 無 開始周 int 從第幾周開始上課 周數(shù) int 共上幾周的課時 是否預排課 bit 無 第 11 頁 共 25 頁 3.5 系統(tǒng)流程及代碼分析 3.5.1 系統(tǒng)流程圖 系統(tǒng)流程圖,如圖 3 所示。 計 算 總 課 時總 課 時 合 適 ?置 標 志讀 數(shù) 據(jù) 庫當 前 位 置 排 課 ?有 無 沖 突 ?寫 入 課 表排 課 結 束 ?保 存YNY沖 突 解 決YNYN結 束開 始N 圖 3 系統(tǒng)流程圖 系統(tǒng)流程圖主要針對排課過程 ,即當用戶設置好相應的排課條件、點擊“自動排課”項,系統(tǒng)所進行的流程。其中的“沖突解決”項有兩種解決方法:一是在系統(tǒng)運行時進行的自我調(diào)節(jié),另 一種是運用手動排課功能解決?!皩懭胝n表”項,是在運行時已完成寫入課表的功能,若用戶需要,可單擊“保存課表”項生成 Excel 格式的文本。 3.5.2 代碼分析 本系統(tǒng)主要由三部分構成:權限管理,各類信息管理,排課管理。 ( 1)權限管理模塊 第 12 頁 共 25 頁 該模塊可實現(xiàn)管理員級別用戶可以對所有用戶進行添加、刪除、修改的功能。以下摘錄保存功能的代碼: procedure Tfrm_yh.save_ButtonClick(Sender: TObject); begin if ( bSign = 0 ) then MessageDlg(請先添加或修改記錄! , mtInformation, mbOk,0) else begin if ( bSign = 1 )/添加 then with Table1 do begin Table1.First; while (not Eof) and (FieldValues用戶名稱 Name_Edit.Text) do Next; if FieldValues用戶名稱 =Name_Edit.Text then ShowMessageFmt(已有一個名為 %s 的用戶 +#13+請選另一個用戶名,Name_Edit.Text) else if( Name_Edit.Text = )or (PW_Edit.Text = )or ( QX_ComboBox.Text = ) then ShowMessage(你輸入的信息不全 !) else InsertRecord(Name_Edit.Text, PW_Edit.Text, QX_ComboBox.Text); ShowMessage(添加用戶成功 !); end else begin Table1.Delete; Table1.InsertRecord(Name_Edit.Text, PW_Edit.Text, QX_ComboBox.Text); 第 13 頁 共 25 頁 MessageDlg(修改成功! , mtInformation, mbOk, 0); end; Name_Edit.Text:= ; PW_Edit.Text:= ; QX_ComboBox.Text :=; Name_Edit.SetFocus; Delete_Button.Enabled := true; Modify_Button.Enabled := true; end ( 2)各類信息管理模塊 該模塊包括課程申請管理、教室管理、老師管理、班級管理、課程信息管理。以下摘錄課程申請管理中的保存功能代碼: procedure Tfrm_Apply.Save_ButtonClick(Sender: TObject); begin if ( iSign = 0 ) then ShowMessage(請先添加或修改記錄 !) else if ( iSign = 1 ) /添加 then begin if ( kcname_ComboBox.Text = ) or ( lsname_ComboBox.Text = ) or ( bjname_ComboBox.Text = ) or ( zks_Edit.Text =0) or ( xf_Edit.Text =0) or ( bweek_edit.Text=0) or ( weeknum_edit.Text=0) then ShowMessage(你輸入的信息不全 !) else begin Apply_ADOTable.InsertRecord(NULL, 第 14 頁 共 25 頁 kcname_ComboBox.Text,lsname_ComboBox.Text,bjname_ComboBox.Text,(StrToInt(zks_edit.Text),(StrToInt(xf_edit.Text),(StrToInt(bweek_edit.Text),(StrToInt(weeknum_edit.Text),YP_RadioButton.Checked); ShowMessage(添加成功 !); ClearCaption; EditUnEnable; ButtonEnable; end end else begin with Apply_ADOTable do begin Edit; FieldValues課程名稱 :=kcname_ComboBox.Text; FieldValues教師姓名 :=lsname_ComboBox.Text; FieldValues班級名稱 :=bjname_ComboBox.Text; FieldValues周課數(shù) :=StrToInt(zks_edit.Text); FieldValues學分 :=StrToInt(xf_edit.Text); FieldValues開始周 :=StrToInt(bweek_edit.Text); FieldValues周數(shù) :=StrToInt(weeknum_edit.Text); FieldValues是否預排課 := YP_RadioButton.Checked; Post; end; ShowMessage(修改成功 !); ClearCaption; bSign := false; EditUnEnable; ButtonEnable; end; iSign := 0; Save_Button.Enabled := false; end; ( 3)排課管理模塊 第 15 頁 共 25 頁 該模塊可進行預排課的設置、自動排課、手動調(diào)節(jié)功能。在自動排課中分為三步:首先賦權值,其次再檢測各種沖突,最后實現(xiàn)排課過程。 a.權值計算: 設置的權值有:課程信息的權值(包括課程類別、課程性質(zhì)),班級信息的權值(包括年級),教師信息的權值(包括職稱、學位)。 以班級信息權值設 置為例: with bjADOTable do for i := 0 to appNum - 1 do begin First; while FieldValues班級名稱 appi.className do Next; if FieldValues年級 = 1 年級 then appi.currentValue := appi.currentValue + 12 else if FieldValues年級 = 2 年級 then appi.currentValue := appi.currentValue + 9 else if FieldValues年級 = 3 年級 then appi.currentValue := appi.currentValue + 6 else if FieldValues年級 = 4 年級 then appi.currentValue := appi.currentValue + 3; b.檢測沖突: 檢測的沖突有:在同一天是否已經(jīng)排過課,(預)排課的教室沖突,所安排的教室是否合適(包 括教室人數(shù)、容量、性質(zhì))。 以(預)排課的教室沖突為例: function Tfrm_Main.dynamicTest( day : integer; time : integer; current : integer ):Boolean; var t1,t2,room:integer; begin dynamicTest := true; for room := 0 to roomNum - 1 do if( arrdaytimeroom0 = 0 ) then continue else 第 16 頁 共 25 頁 begin t1 := 0; t2 := 0; while appt1.appKey arrdaytimeroom0 do t1 := t1 + 1; if arrdaytimeroom1 0 then while appt2.appKey arrdaytimeroom1 do t2 := t2 + 1 else t2 := t1; if( appt1.teaName = appcurrent.teaName ) or ( appt1.className = appcurrent.className ) or ( appt2.teaName = appcurrent.teaName ) or ( appt2.className = appcurrent.className ) then begin dynamicTest := false; break; end; end; end; c.排課算法: 摘錄設置為“不加限制排課”的代碼為例: procedure Tfrm_Main.FirstFind1( m : integer;var a : appRecord ); var i, j, k : Integer; succ: boolean; begin i := 0;/星期 j := 0;/節(jié)數(shù) k := 0;/教室號 succ := true; while( arrijk0 0 )or (not RoomCheck(a,k)or (not dynamicTest( i, j, m ) 第 17 頁 共 25 頁 ) do if( k roomNum - 1 ) then k := k + 1 else if (i5) and (j=0)or(j=2) then begin j:=j+1; k:=0; end else if (i4) and (j=1)or(j=3) then begin i:=i+1; j:=j-1; k:=0; end else if (i=4) and (j=1)or(j=3) then begin i:=i-4; j:=j+1; k:=0; end else if (i4) and (j=4) then begin i:=i+1; k:=0; end else if (i=4) and (j=4) then begin i:=i+1; j:=j-4; k:=0; end else if (i=5) and (jRun 命令,則會出現(xiàn)系統(tǒng)的登錄界面。 a. 登錄界面,如圖 5 所示: 第 19 頁 共 25 頁 圖 5 登錄界面 說明 :輸入用戶名和密碼,單擊“確定”按鈕,當身份驗證成功后進入檔案管理系統(tǒng)主界面。單擊“取消”退出登錄窗口。 b. 主界面,如圖 6 所示: 圖 6 主界面 說明 :主界面由三部分組成:基本信息管理、基本條件設置、預排課、自動排課及手動調(diào)節(jié)。在菜單欄中,分為系統(tǒng)、信息管理、幫助菜單?!跋到y(tǒng)”菜單含用戶管理和退出功能。“信息管理 ”可查看基本信息。“幫助”中可查看教務排課系統(tǒng)的相應信息。 c. 如身份驗證失敗,則出現(xiàn)如圖 7 所示的提示信息框 圖 7 錯誤提示信息 說明 : 點擊 “ OK” 返回登錄界面 ,重新輸入用戶名和密碼。 d. 點擊 “ 基本信息管理 ” 中的 課程申請管理界面為例 ,如圖 8 所示: 第 20 頁 共 25 頁 圖 8 課程申請管理 說明 :選中某一記錄后可進行刪除和修改的功能 ,也可直接添加記錄 ,修改完后點擊保存或退出完成管理。 e. 基本條件設置管理界面 ,如圖 9 所示: 圖 9 基本條件設置 說明:教學公歷上顯示為當前日期 ,“ 排課條件設置 ” 中設置需要的排課條件 。 f. 排課管理界面 ,如圖 10 所示: 第 21 頁 共 25 頁 圖 10 排課管理 說明:點擊“清空”可清空上次所排信息,點擊“自動排課”能實現(xiàn)自動排課功能,點擊“檢測沖突”可檢測當前排課有無沖突。點擊“保存課表”能將排課信息保存為 excel 格式。 g. 權限管理界面 ,如圖 11 所示: 圖 11 權限管理 說明:權限管理是當管理員用戶在“系統(tǒng)”菜單內(nèi)的設置。在這里可進行用戶的添加、刪除、修改等功能。 ( 2)一般用戶權限 一般用戶與管理員用戶的區(qū)別在于他只能查看相應信息,不能進行其他操作。以排課管理界面為例 ,如圖 12 所示: 第 22 頁 共 25 頁 圖 12 一般用戶界面 說明:一般用戶的界面設計上與管理員用戶基本相同,只有某些按鈕被屏蔽,不能實現(xiàn)相應功能。 其中的清空、自動排課、保存課表鍵被屏蔽,用戶無法進行操作。 4.3 測試結果 教務排課系統(tǒng)是一款基于動態(tài)加權算法的人性化的教務軟件,它采用手動預排 自動排課 手動調(diào)節(jié)的三步排課模式,具有以下特點: (1) 課表合理:具有預排,合班等功能,排出的課表合理性較強。 (2) 排課靈活:采用了局部范圍內(nèi)的動態(tài)隨機加權,排出的課表具有靈活的特點,使用者可以在多次排課中選擇自己認為合適的課表。 (3) 操作便 捷:系統(tǒng)界面簡單明了,用戶很容易掌握對排課軟件的使用。 (4) 人性化:系統(tǒng)界面美觀,具有很強的交互性。 結 論 在分析以往一些排課系統(tǒng)的基礎上,本設計提出一個基于動態(tài)加權算法(即貪婪法)的排課系統(tǒng)設計方案,采用手動預排、自動排課、手動調(diào)節(jié)的三級排課模式,并對一些具體的技術問題做出相應安排。該方案采用 C
溫馨提示
- 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設備租賃合同范本8
- 2025通訊公司員工合同協(xié)議書
- 2025企業(yè)租賃合同版范本
- 2025混凝土工施工勞務分包合同
- 2025企業(yè)借款還款合同模板
- 廣州市夫妻婚內(nèi)協(xié)議書
- 親屬土地贈與合同
- 2025室內(nèi)涂料采購合同范本
- 婚內(nèi)財權協(xié)議書范文
- 撤銷買房認購協(xié)議書
- 借用品牌合同范本
- 噴灑除草劑安全協(xié)議書(2篇)
- 2025年4月自考00015英語二(13000英語專升本)押題及答案
- LTE-V2X系統(tǒng)性能要求及測試規(guī)范
- 2025年北森題庫測試題及答案
- 中國大唐集團有限公司陸上風電工程標桿造價指標(2023年)
- 2025年美容師初級技能水平測試卷:美容師美容護膚實操技能試題匯編
- 茶館里的政治:揭秘《茶館》背后的歷史
- 跨學科實踐活動5探究土壤酸堿性對植物生長的影響教學設計-2024-2025學年九年級化學魯教版下冊
- 國望液晶數(shù)顯切紙機安全操作規(guī)程
- 特種設備事故應急演練方案(附總結)
評論
0/150
提交評論