【正文】
ions(sometimes they are contrary), maybe we can39。s a standard and ununiform problem。傳統(tǒng)的人工進行排課,最令人擔心的問題就是 —— 出現(xiàn)教室資源沖突或教師資源沖突的情況。計算機軟件技術應用于學校的課程安排是發(fā)展的必然。利用計算機輔助進行課表編排工作,既提高了排課工作的科學性,又可大大減輕管理人員的工作強度,提高工作效率,從而使學校教務管理現(xiàn)代化邁上了一個新臺階。 計算機排課系統(tǒng)的關鍵技術是形成采用框架式可維護的排課策略庫。 ① (三) 本文解決的技術關鍵 目前在國內眾多的高校自動排課系統(tǒng)中,沒有一個能夠適應高校內部復雜約束條件 的限制,所以已經(jīng)趨向于沖突檢查與手工排課結合完成排課功能。同時該 系統(tǒng)還能夠非常迅速地得到排課結果,例如排一千門課只需幾分鐘時間 等一系列問題。針對于排課系統(tǒng)評價的依據(jù)/因素問題,我們從以下幾點做了研究,探求其實現(xiàn)的可能性: 學生和教師的移動 代價 這種評價是考慮一個學校地理分布環(huán)境,可供安排教室上課的教學樓和每個校區(qū)各教學機構(教研室)的分布情況。如果經(jīng)常讓同一批學生和教師在兩個或兩個距離較遠的地區(qū)奔波,時間、經(jīng)濟和精力上的花費必然很大,學生經(jīng)濟和精力負擔會過重,從學生角度講,經(jīng)濟負擔是一個問題。 教室的利用 隨著高校招生的規(guī)模日益擴大,在為課程排定教室的教室利用率問題也日益尖銳起來,這給教務管理部門對教室的靈活管理和分析統(tǒng)計方面提出了一個新的課題。 教師的工作量 在高等院校對于 一門課程均有若干名教員擔任該課程的講課任務,有的排課系統(tǒng)軟件是按照隨機抽取的原則進行班級與教員的匹配的,那么這就存在著一個教師工作量是否安排合理的問題。我們訂為每個教師每天工作量為兩節(jié)課,如果某一個教員的日(周)工作量在教師的日(周)平均工作量范圍內,我們就可以評價該排課系統(tǒng)是比較好的。從教師的工作量角度來評價一個排課系 統(tǒng),我們可以對其排課算法進行優(yōu)劣評價。我們要盡量然讓每個專業(yè)的課程均勻分布在所有上課時間內。分班問題大部分由各教研室人工完成,我們的目的是要得到分班信息,進 行排課。 系統(tǒng)必須具備可修改性 任何系統(tǒng)都有弊端,從系統(tǒng)功能上來講,系統(tǒng)很多功能都是針對用戶當前需求來設計的,為了滿足用戶需求難免犧牲了系統(tǒng)其他方面的性能,當用戶的需求改變時,就要求我們在最短的 時間里修改系統(tǒng),滿足用戶需求。 ② (二)需求分析 本系統(tǒng)是針對大學的開課特點進行開發(fā),主要操作人 員為教務處老師,根據(jù)學校各教研室提供的開課計劃生成開課表。 排課計劃的生成是根據(jù)已給出的開課計劃( Word 文檔),可以采用手動輸入方式,最好能實現(xiàn)文檔導入功能。每門課程的上課時間在可能的情況下盡量采取隔一天(或幾天)上一次的方式。 要有較自由度較高的結果修改功能,能夠自由的對排課結果時行調整。 一般大學各校區(qū)分布在該學校所在地區(qū)的各處,即使同一個校區(qū),個別教學樓或各學院之間距離相距也很遠,不能讓學生把上課時間放在走路上。 有部分課程要求多班合上。 體育課的開設是以年級為單位,開課時間由學 校統(tǒng)一安排。 Delphi 是全新的可視化編程環(huán)境,為我們提供了一種方便、快捷的 Windows 應用程序開發(fā)工具。 對于廣大的程序開發(fā)人員來講,使用 Delphi 開發(fā)應用軟件,無疑會大大地提高編程效率 ③ 。事實上,應用程序是通過數(shù)據(jù)訪問組件和 BDE 連接,再由 BDE去訪問數(shù)據(jù)庫來完成對數(shù)據(jù)庫的操作的,并非直接操作 BDE。 數(shù)據(jù)庫引擎 (BDE) Delphi 內置了數(shù)據(jù)庫引擎( BORLANFD DATABASE ENGINE)( BDE), 為開發(fā)數(shù)據(jù)庫應用程序提供了靈活性和通用性工具。 在 Delphi 中,數(shù)據(jù)庫應用程序必須與數(shù)據(jù)庫建立聯(lián)系,而這個聯(lián)系則通過BDE 來完成,所有的數(shù)據(jù)庫的存取也都是由 BDE 來完成的。例如, Paradox 用一個目錄來表示數(shù)據(jù)庫,目錄中的每一個文件表示一個數(shù) 據(jù)庫表。 因為本人對數(shù)據(jù)庫的操作主要是通過 Borland 數(shù)據(jù)庫引擎 BDE,所以在設置系統(tǒng)環(huán)境變量的 時候,把數(shù)據(jù)庫的連接文件加入到目錄中,來實現(xiàn)對數(shù)據(jù)庫的連接。它的繪制依據(jù)是現(xiàn)行系統(tǒng)流程圖,數(shù)據(jù)流程圖是管理信息系統(tǒng)的總體設計圖。 數(shù)據(jù)項名稱 含義 說明 數(shù)據(jù)類型 長度 是否空 主鍵 days 排課天數(shù) 上課日期的星期數(shù)用阿拉伯數(shù)字表示 int 4 N Y times 上課課節(jié)數(shù) 上課每節(jié)課課節(jié)數(shù)用阿拉伯數(shù)字表示 int 4 N N timeclass 時間級別 該上課時間級別 char 2 N N remarks 備注 備用字段 char 10 Y N 表 6 college relate 教學樓相鄰關系表(該表是根據(jù)每個學校實際情況由電腦自動生成而定,學校不相同表不會相同) relate college1 college2 ?? collegen college1 college2 ?? collegen 表 7 courseplanblank(課程任務 )表 數(shù)據(jù)項名稱 含義 說明 數(shù)據(jù)類型 長度 是否空 主鍵 coursenumber 唯一標識一個科目 課程科 目代號 int 4 N Y teachernumber 教師編號 講授該科目的教師編號 int 4 N N dayt 排課天數(shù) 上課日期的星期數(shù)用阿拉伯數(shù)字表示 int 4 N Y timet 上課課節(jié)數(shù) 上課每節(jié)課課節(jié)數(shù)用阿拉伯數(shù)字表示 int 4 N N classroommumber 上課教室編號 學生上課的教室編號 char 10 N N sameteachernumber 教師同時上課號 “ 1” 表示教師上課中“ 0”表示無課 int 4 N N classnumber 學生分班班級號 學 生分班上課的班級號 int 4 N N sameroomnumber 教室使用標識 “ 1” 表示教室使用中“ 0”表示空閑 int 4 N N samestudentnumber 學生上課標識 “ 1” 表示學生上課中“ 0”表示學生無課 int 4 N N 表 8 courseform( 課程)表 數(shù)據(jù)項名稱 含義 說明 數(shù)據(jù)類長度 是否主鍵 型 空 coursnumberber 唯一標識一個科目 課程科目代號 int 4 N Y teachernumber 教師編號 講授該科目教師編號 int 4 N N days 上課日期星期 上課日期是星期幾 char 10 N N times 上課課節(jié)數(shù) 是該星期的第幾節(jié)課 char 10 N N classroommumber 上課教室編號 學生上課的教室編號 int 4 N N classnumber 學生分班班級號 學生分班上課的班級號 int 4 N N 表 9 classroomnarea(教室區(qū)域關系 )表(該表是根據(jù)學校實際情況形成的,和獨立教學區(qū)域不相關) 數(shù)據(jù)項名稱 含義 說明 數(shù)據(jù)類型 長度 是否空 主鍵 classroomnumber 上課教室編號 學生上課的教室編號 int 4 N Y schoolarea 教室所在校區(qū) 教室在那個校區(qū),校區(qū)名稱 char 10 N N collegeschool 教室所在教學樓 教室所在的對應校區(qū)教學樓名稱 char 10 N N sameroomnumber 教室被使用標識號 “ 1” 表示教室使用中“ 0”表示空閑 int 1 N N 表 10 teacherinformation(教師信息 )表 數(shù)據(jù)項名稱 含義 說明 數(shù)據(jù)類型 長度 是否空 主鍵 teachernumber 教師編號 唯 一標識教師 int 4 N Y teachername 教師姓名 教師姓名 char 10 N N teachersex 教師性別 表示教師性別 char 4 N N sectionnumber 教師所屬部門代碼 標識教師部門 int 4 N N title 職稱 教師職稱 char 10 N N remarks 備注 備注 char 10 N N 表 11 section (部門)表 數(shù)據(jù)項名稱 含義 說明 數(shù)據(jù)類型 長度 是否空 主鍵 sectionnumber 教師所屬部門代碼 標識教師部門 int 4 N NY sectionname 教師所屬部門名稱 部門名稱 char 10 N N college 部門所在教學學樓名稱 char 10 N N schoolarea 教學樓所屬校區(qū) char 10 N N remarks 備注 備注 char 10 N N 表 12 courseclass (課程分班 )表 數(shù)據(jù)項名稱 含義 說明 數(shù)據(jù)類型 長度 是否空 主鍵 courseumbertber 唯一標識一個科目 課程科目代號 int 4 N Y classnumber 班級編 號 對應科目班級編號 int 4 N N professionnumberall 專業(yè)編號 對應班級包括的專業(yè)編號 nchar 50 N N remarks 備注 備注 char 10 N N 表 13. admin(用戶登陸 )表 數(shù)據(jù)項名稱 含義 說明 數(shù)據(jù)類型 長度 是否空 主鍵 Qx 權限 普通教研室和教處權限的劃分 int 4 N N ID 帳號 用戶帳號 char 10 N Y czy 密碼 用戶密碼 char 10 N N (四)數(shù)據(jù)庫概念結構設計及 ER 模型圖 根據(jù)以上基本信 息及先前所做的需求分析,可以做出以下 ER 模型圖: 教室 使用 班級 開設 開課表教師教授 生成開課計劃生成排課表1 NN1 111N1N 圖 ER 模型圖 ( 五 ) 時間 數(shù)據(jù)在數(shù)據(jù)庫中各表間的轉化 設計好數(shù)據(jù)庫,把各種信息根據(jù)上課科目授課學時數(shù),有的科目有的時候每周兩節(jié)課有時,一周一節(jié)課,這樣考慮同一科目一周上兩節(jié)課的情況,又考慮同一科目一周上一節(jié)課的情況,無形中把同一科目排兩遍課,那么,排課的工作量就會增加一倍,增加排課難度和系統(tǒng)運行時間,所以,我們把兩個星期認為是排一次課,把兩個星期看成是一大周,這樣以后上課按照一大周一大周 的重復,根據(jù):科目授課學時數(shù) /純授課時間=每大周上課次數(shù),來確定每大周上課次數(shù)。 學校根據(jù)自己的教學資源情況,制訂教學計劃表,因為開課任務書是由各教研室根據(jù)自己校區(qū)的教學資源情況而,也就是說,系統(tǒng)數(shù)據(jù)庫被各專業(yè)自行維護更改,而不是統(tǒng)一由教務處更改,減少數(shù)據(jù)庫維護的難度和工作量,同時,由于這一部分由人工維護,大大減少了系統(tǒng)的開銷。雖然教師已經(jīng)由人工分配完畢,但是,卻需要教師上課的時間,如果教師相距授課地點很遠,那么時間問題更為重要,關系有兩種:第一,就是教室不足,如果判斷教學資源緊張,會完不成教學任務, 就移動學生去臨近校區(qū)上課;如果教學資源不緊張,就需要等其他時間上課完成教學任務。 需要把 表轉化為計算機便于操作的數(shù)據(jù)庫,根據(jù)教學計劃關系表,我們把其中的授課教師編號和學習該科目專業(yè)項設為‘ char’型,如果一課程科目需要多個不同類型的教室和多個相關科目的教師,就在該項中用符號分隔開,我們在對數(shù)據(jù)操作的時候,對‘ char’型數(shù)據(jù)雖然簡單,但是卻會造成數(shù)據(jù)混亂,每一次都要對數(shù)據(jù)進行判斷,增加數(shù)據(jù)庫開銷,所以我們把‘ char’型數(shù)據(jù)的每一項從teaching plan ( 教學計劃)表中分離出來,對應每條依次放入到 course plan blank(課程任務 )表的各項中,我們在排課時對 course plan blank(課程任務 )表中的數(shù)據(jù)進行操作,分配上課時間、上課地點等等,當對 course plan blank(課程任務 )表的數(shù)據(jù)分配時間、教室完畢,再把 course plan blank(課程任務 )表的數(shù)據(jù)轉換到 course form( 課程)表 , 對應一個科目需要的所有教師和所有類型的教師全部分配到對應的 teachernumber 和 professionnumber 項中,同時把course plan blank(課程任務 )表中的 day 和 times 項中的數(shù)據(jù)轉換成規(guī)范的上課時間,放入到 course form( 課程)表中,時間轉換對應表如下: 表 14 星期關系轉換對應表: course plan blank(課程任務 )表中的‘ day’ course form( 課程)表中的‘ week’ 1 星期一 2 星期二