【正文】
m so glad, for mine is the handsomest now. Another bang of the street door sent the basket under the sofa, and the girls to the table, eager for breakfast. Merry Christmas, Marmee! Many of them! Thank you for our books. We read some, and mean to every day, they all cried in chor us. Merry Christmas, little daughters! I39。t want anyone to use these but Marmee, said Beth。這些都是在做開(kāi)發(fā)時(shí)做的不夠的地方,由于每個(gè)高校課程安排,人員配置,教學(xué)資源安排和教學(xué)地點(diǎn)分布不同,所以一個(gè)排課系統(tǒng)只能適用于一類或者幾類學(xué)校,而且,由于不同課程科目教學(xué)方法不同,所以排課系統(tǒng)并沒(méi)有把手工調(diào)整從機(jī)器中解脫出來(lái),以后我將盡量注意相關(guān)問(wèn)題,爭(zhēng)取做得更好。由于這三個(gè)表的結(jié)構(gòu)相對(duì)較簡(jiǎn)單,只是為以后的排課提供輔助信息,所以其中沒(méi)有什么復(fù)雜的算法,只提供了簡(jiǎn)單的輸入 、修改功能。 如果不需要更改默認(rèn)的系統(tǒng)設(shè)置,則本步驟可省略。運(yùn)行軟件進(jìn)入“輸入密碼”窗體后有三種選擇:( 1)按“確定”按鈕進(jìn)入主窗體( 2)按“注冊(cè)”按鈕進(jìn)入注冊(cè)窗體,關(guān)閉注冊(cè)窗體回到“輸入密碼”窗體后再按“確定”按鈕進(jìn)入主窗體。 如果學(xué)生 B’ 級(jí)別時(shí)間有課,那么,無(wú)論這個(gè)時(shí)間是 3- 4 節(jié)還是 5- 6 節(jié)都把時(shí)間加‘ 1’,來(lái)尋找新的上課時(shí)間,從而避免午休時(shí)間沖突。我們首先把 teaching plan 表的數(shù)據(jù)按課程代碼排列,這樣便于我們操作。當(dāng)然,如果學(xué)生移動(dòng)到其他較遠(yuǎn)距離地方上課,我們首先考慮可持續(xù)上課問(wèn)題是否可以在異校區(qū)解決也是一個(gè)好辦法。 教學(xué)資 源緊張的問(wèn)題,實(shí)際上是學(xué)生、教師、教室等綜合因素互相作用引起的。 如果學(xué)生不需要移動(dòng) ,那么相鄰上課教學(xué)樓為本身 ,是’ E’級(jí)相鄰關(guān)系。 獨(dú)立教學(xué)區(qū)域,就是在這個(gè)距離范圍內(nèi)的各學(xué)院組 合一起,有獨(dú)立的 行政機(jī)構(gòu)和教學(xué)機(jī)構(gòu),能夠獨(dú)立分配自己的教學(xué)資源 ,各獨(dú)立機(jī)構(gòu)共享這個(gè)范圍內(nèi)的教學(xué)資源。 數(shù)據(jù)項(xiàng)名稱 含義 說(shuō)明 數(shù)據(jù)類型 長(zhǎng)度 是否空 主鍵 days 排課天數(shù) 上課日期的星期數(shù)用阿拉伯?dāng)?shù)字表示 int 4 N Y times 上課課節(jié)數(shù) 上課每節(jié)課課節(jié)數(shù)用阿拉伯?dāng)?shù)字表示 int 4 N N timeclass 時(shí)間級(jí)別 該上課時(shí)間級(jí)別 char 2 N N remarks 備注 備用字段 char 10 Y N 表 6 college relate 教學(xué)樓相鄰關(guān)系表(該表是根據(jù)每個(gè)學(xué)校實(shí)際情況由電腦自動(dòng)生成而定,學(xué)校不相同表不會(huì)相同) relate college1 college2 ?? collegen college1 college2 ?? collegen 表 7 courseplanblank(課程任務(wù) )表 數(shù)據(jù)項(xiàng)名稱 含義 說(shuō)明 數(shù)據(jù)類型 長(zhǎng)度 是否空 主鍵 coursenumber 唯一標(biāo)識(shí)一個(gè)科目 課程科 目代號(hào) int 4 N Y teachernumber 教師編號(hào) 講授該科目的教師編號(hào) int 4 N N dayt 排課天數(shù) 上課日期的星期數(shù)用阿拉伯?dāng)?shù)字表示 int 4 N Y timet 上課課節(jié)數(shù) 上課每節(jié)課課節(jié)數(shù)用阿拉伯?dāng)?shù)字表示 int 4 N N classroommumber 上課教室編號(hào) 學(xué)生上課的教室編號(hào) char 10 N N sameteachernumber 教師同時(shí)上課號(hào) “ 1” 表示教師上課中“ 0”表示無(wú)課 int 4 N N classnumber 學(xué)生分班班級(jí)號(hào) 學(xué) 生分班上課的班級(jí)號(hào) int 4 N N sameroomnumber 教室使用標(biāo)識(shí) “ 1” 表示教室使用中“ 0”表示空閑 int 4 N N samestudentnumber 學(xué)生上課標(biāo)識(shí) “ 1” 表示學(xué)生上課中“ 0”表示學(xué)生無(wú)課 int 4 N N 表 8 courseform( 課程)表 數(shù)據(jù)項(xiàng)名稱 含義 說(shuō)明 數(shù)據(jù)類長(zhǎng)度 是否主鍵 型 空 coursnumberber 唯一標(biāo)識(shí)一個(gè)科目 課程科目代號(hào) int 4 N Y teachernumber 教師編號(hào) 講授該科目教師編號(hào) int 4 N N days 上課日期星期 上課日期是星期幾 char 10 N N times 上課課節(jié)數(shù) 是該星期的第幾節(jié)課 char 10 N N classroommumber 上課教室編號(hào) 學(xué)生上課的教室編號(hào) int 4 N N classnumber 學(xué)生分班班級(jí)號(hào) 學(xué)生分班上課的班級(jí)號(hào) int 4 N N 表 9 classroomnarea(教室區(qū)域關(guān)系 )表(該表是根據(jù)學(xué)校實(shí)際情況形成的,和獨(dú)立教學(xué)區(qū)域不相關(guān)) 數(shù)據(jù)項(xiàng)名稱 含義 說(shuō)明 數(shù)據(jù)類型 長(zhǎng)度 是否空 主鍵 classroomnumber 上課教室編號(hào) 學(xué)生上課的教室編號(hào) int 4 N Y schoolarea 教室所在校區(qū) 教室在那個(gè)校區(qū),校區(qū)名稱 char 10 N N collegeschool 教室所在教學(xué)樓 教室所在的對(duì)應(yīng)校區(qū)教學(xué)樓名稱 char 10 N N sameroomnumber 教室被使用標(biāo)識(shí)號(hào) “ 1” 表示教室使用中“ 0”表示空閑 int 1 N N 表 10 teacherinformation(教師信息 )表 數(shù)據(jù)項(xiàng)名稱 含義 說(shuō)明 數(shù)據(jù)類型 長(zhǎng)度 是否空 主鍵 teachernumber 教師編號(hào) 唯 一標(biāo)識(shí)教師 int 4 N Y teachername 教師姓名 教師姓名 char 10 N N teachersex 教師性別 表示教師性別 char 4 N N sectionnumber 教師所屬部門(mén)代碼 標(biāo)識(shí)教師部門(mén) int 4 N N title 職稱 教師職稱 char 10 N N remarks 備注 備注 char 10 N N 表 11 section (部門(mén))表 數(shù)據(jù)項(xiàng)名稱 含義 說(shuō)明 數(shù)據(jù)類型 長(zhǎng)度 是否空 主鍵 sectionnumber 教師所屬部門(mén)代碼 標(biāo)識(shí)教師部門(mén) int 4 N NY sectionname 教師所屬部門(mén)名稱 部門(mén)名稱 char 10 N N college 部門(mén)所在教學(xué)學(xué)樓名稱 char 10 N N schoolarea 教學(xué)樓所屬校區(qū) char 10 N N remarks 備注 備注 char 10 N N 表 12 courseclass (課程分班 )表 數(shù)據(jù)項(xiàng)名稱 含義 說(shuō)明 數(shù)據(jù)類型 長(zhǎng)度 是否空 主鍵 courseumbertber 唯一標(biāo)識(shí)一個(gè)科目 課程科目代號(hào) int 4 N Y classnumber 班級(jí)編 號(hào) 對(duì)應(yīng)科目班級(jí)編號(hào) int 4 N N professionnumberall 專業(yè)編號(hào) 對(duì)應(yīng)班級(jí)包括的專業(yè)編號(hào) nchar 50 N N remarks 備注 備注 char 10 N N 表 13. admin(用戶登陸 )表 數(shù)據(jù)項(xiàng)名稱 含義 說(shuō)明 數(shù)據(jù)類型 長(zhǎng)度 是否空 主鍵 Qx 權(quán)限 普通教研室和教處權(quán)限的劃分 int 4 N N ID 帳號(hào) 用戶帳號(hào) char 10 N Y czy 密碼 用戶密碼 char 10 N N (四)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)及 ER 模型圖 根據(jù)以上基本信 息及先前所做的需求分析,可以做出以下 ER 模型圖: 教室 使用 班級(jí) 開(kāi)設(shè) 開(kāi)課表教師教授 生成開(kāi)課計(jì)劃生成排課表1 NN1 111N1N 圖 ER 模型圖 ( 五 ) 時(shí)間 數(shù)據(jù)在數(shù)據(jù)庫(kù)中各表間的轉(zhuǎn)化 設(shè)計(jì)好數(shù)據(jù)庫(kù),把各種信息根據(jù)上課科目授課學(xué)時(shí)數(shù),有的科目有的時(shí)候每周兩節(jié)課有時(shí),一周一節(jié)課,這樣考慮同一科目一周上兩節(jié)課的情況,又考慮同一科目一周上一節(jié)課的情況,無(wú)形中把同一科目排兩遍課,那么,排課的工作量就會(huì)增加一倍,增加排課難度和系統(tǒng)運(yùn)行時(shí)間,所以,我們把兩個(gè)星期認(rèn)為是排一次課,把兩個(gè)星期看成是一大周,這樣以后上課按照一大周一大周 的重復(fù),根據(jù):科目授課學(xué)時(shí)數(shù) /純授課時(shí)間=每大周上課次數(shù),來(lái)確定每大周上課次數(shù)。 在 Delphi 中,數(shù)據(jù)庫(kù)應(yīng)用程序必須與數(shù)據(jù)庫(kù)建立聯(lián)系,而這個(gè)聯(lián)系則通過(guò)BDE 來(lái)完成,所有的數(shù)據(jù)庫(kù)的存取也都是由 BDE 來(lái)完成的。 Delphi 是全新的可視化編程環(huán)境,為我們提供了一種方便、快捷的 Windows 應(yīng)用程序開(kāi)發(fā)工具。 要有較自由度較高的結(jié)果修改功能,能夠自由的對(duì)排課結(jié)果時(shí)行調(diào)整。 系統(tǒng)必須具備可修改性 任何系統(tǒng)都有弊端,從系統(tǒng)功能上來(lái)講,系統(tǒng)很多功能都是針對(duì)用戶當(dāng)前需求來(lái)設(shè)計(jì)的,為了滿足用戶需求難免犧牲了系統(tǒng)其他方面的性能,當(dāng)用戶的需求改變時(shí),就要求我們?cè)谧疃痰?時(shí)間里修改系統(tǒng),滿足用戶需求。我們訂為每個(gè)教師每天工作量為兩節(jié)課,如果某一個(gè)教員的日(周)工作量在教師的日(周)平均工作量范圍內(nèi),我們就可以評(píng)價(jià)該排課系統(tǒng)是比較好的。針對(duì)于排課系統(tǒng)評(píng)價(jià)的依據(jù)/因素問(wèn)題,我們從以下幾點(diǎn)做了研究,探求其實(shí)現(xiàn)的可能性: 學(xué)生和教師的移動(dòng) 代價(jià) 這種評(píng)價(jià)是考慮一個(gè)學(xué)校地理分布環(huán)境,可供安排教室上課的教學(xué)樓和每個(gè)校區(qū)各教學(xué)機(jī)構(gòu)(教研室)的分布情況。利用計(jì)算機(jī)輔助進(jìn)行課表編排工作,既提高了排課工作的科學(xué)性,又可大大減輕管理人員的工作強(qiáng)度,提高工作效率,從而使學(xué)校教務(wù)管理現(xiàn)代化邁上了一個(gè)新臺(tái)階。s arrangement), if we must to cater to the constrictions(sometimes they are contrary), maybe we can39。因此對(duì)排課結(jié)果的評(píng)價(jià)標(biāo)準(zhǔn)很難達(dá)到固定和量化,那么對(duì)排課系統(tǒng)的評(píng)價(jià)分析也就十分重要。而且工作繁瑣,工作量巨大。在我 的排課系統(tǒng), 主要對(duì)不同類型課程進(jìn)行等級(jí)劃分 , 排列出課程的排課優(yōu)先級(jí)別,通過(guò)優(yōu)先次序?qū)Σ煌愋偷恼n程使用不同的算法進(jìn)行排課, 能夠非常方便地處理各種排課約束條件的限制,例如教師和教室沖突、班級(jí)沖突、教師上課時(shí)間和地點(diǎn)選擇、分層次教學(xué)、單雙周排課、一課多教師教學(xué)、課程連上和隔天教學(xué)等各種各樣的約束。所謂的教室利用率就是一個(gè)教室在一個(gè)星期內(nèi)被使用的次數(shù),在很多情況下,一個(gè)校區(qū)的一些科目的教師不能滿足學(xué)生上課需求,那么就需要學(xué)生到別的校區(qū)上課,除去路程等因素外 ,其他近距離校區(qū)是否有相應(yīng)教室也是一個(gè)問(wèn)題,所以,當(dāng)發(fā)生以上問(wèn)題時(shí),就需要考慮其他近距離校區(qū)的教室使用情況。 公共課分班教學(xué)問(wèn)題 既然是公共課,避免不了分班上課的 問(wèn)題,但是,分班的方法是一個(gè)讓人頭痛的問(wèn)題,從學(xué)生角度講,不同的學(xué)院同一門(mén)公共課講解的深度和廣度不同,而且同一門(mén)科目對(duì)不同學(xué)院的學(xué)生級(jí)別也不盡相同,例如:理科的數(shù)學(xué)公共課是基礎(chǔ)課,而對(duì)于文科來(lái)說(shuō),未必是基礎(chǔ)課,那么教師對(duì)不同學(xué)院講解深度必然不同,所以,在為學(xué)生分班的時(shí)候,我們以學(xué)院為單位分班,根據(jù)對(duì)應(yīng)科目需要的教室容量,可以把一個(gè)學(xué)院學(xué)生分一個(gè)或盡量分配成各班人數(shù)相差不多的多個(gè)班級(jí)上課(不可能人數(shù)相等,因?yàn)槭前磳I(yè)上課,個(gè)專業(yè)人數(shù)不一定相等)。 排課計(jì)劃要合理,結(jié)果中不能有太多的沖突。 教室數(shù)量有限,原則上是讓所有的教室都充分利用。這樣用戶只需關(guān)心數(shù)據(jù)組件即可,不用去直接和 BDE 打交道。 (三) 系統(tǒng)流程圖 根據(jù)系統(tǒng)要求,設(shè)計(jì)系統(tǒng)流程圖,如下圖: 基于 BDE 的數(shù)據(jù)庫(kù)應(yīng)用程序 BORLANFD DATABASE ENGINE ODBC Socket ODBC 驅(qū)動(dòng)程序 ODBC 數(shù)據(jù)源 SQL Links 網(wǎng)絡(luò)協(xié)議 Oracle Sybase SQL Server DB2 Informix Paradox dBase 圖 排課系統(tǒng)系統(tǒng)流程圖 教室信息 信息處理程序 信息存儲(chǔ)數(shù)據(jù)庫(kù) 排課處理程序 課程調(diào)配數(shù)據(jù)庫(kù) 顯示課程表 表格生成程序 學(xué)院機(jī)構(gòu)相鄰關(guān)系程序 學(xué)院機(jī)構(gòu)相鄰關(guān)系數(shù)據(jù)庫(kù) 學(xué)生信息數(shù)據(jù)庫(kù) 教師信息數(shù)據(jù) 教室數(shù)據(jù) 學(xué)生信息 教師信息 學(xué)院信息 數(shù)據(jù)轉(zhuǎn)換程序 第三章 整體設(shè)計(jì) (一)系統(tǒng)功能模塊設(shè)計(jì) 本系統(tǒng)的主要功能是根據(jù)開(kāi)課表的內(nèi)容結(jié)合班級(jí)表、教師表和教室表的信息生成排課結(jié)果,其功能模塊