資源簡(jiǎn)介
1. 樓層由上至下依次編號(hào)為9,8,7,6,5,4,3,2,1,0。每層都有向上和向下兩個(gè)按鈕,對(duì)應(yīng)20個(gè)變量callup[0...9]和calldown[0...9]。電梯內(nèi)10個(gè)目標(biāo)層按鈕對(duì)應(yīng)變量out[0...9]。有人按下某個(gè)按鈕時(shí),相應(yīng)的變量就增1,一旦要求滿(mǎn)足后,該變量就減1。當(dāng)有多人的需求相同時(shí),相應(yīng)的處理時(shí)間就增長(zhǎng),用于模擬真實(shí)的情況。
2. 電梯處于三種狀態(tài)之一:UP(上行),DOWN(下行)和Idle(等候)。如果電梯處于Idle狀態(tài)且不在1層超過(guò)20個(gè)時(shí)間單位時(shí),則駛回1層。當(dāng)電梯處于Idle狀態(tài)時(shí),一旦收到前往另一層的命令,就轉(zhuǎn)入U(xiǎn)P或DOWN狀態(tài),執(zhí)行相應(yīng)的操作。
3. 其它重要的變量有:
floor----當(dāng)前電梯外乘客所在樓層;
calling----當(dāng)前電梯外按下按鈕的乘客所在的樓層;
up_or_down----電梯外某層按鈕的狀態(tài)(向上箭頭或向下箭頭);
waittime----電梯空閑時(shí)的等待時(shí)間;
total----電梯內(nèi)的總?cè)藬?shù)(上限為15人);
電梯的數(shù)據(jù)結(jié)構(gòu):
state ---- 電梯的狀態(tài)(UP,DOWN,IDLE)
current ----- 電梯目前所處樓層
imovingto ---- 電梯的目標(biāo)樓層
隊(duì)列成員的數(shù)據(jù)結(jié)構(gòu):
floor―――所在樓層
up_down―――目標(biāo)方向(向上或向下)
struct queue *next―――指向下一個(gè)成員
4. 【進(jìn)入排隊(duì)】先在等候隊(duì)列中查找,若有信息相同(所在樓層相同,目標(biāo)方向一致)的成員,則對(duì)隊(duì)列無(wú)任何操作。若沒(méi)有,則在隊(duì)列末尾插入該人。
5. 【進(jìn)入電梯】電梯根據(jù)人數(shù)停留一定時(shí)間單位,每進(jìn)入一個(gè)人,從隊(duì)列中刪除該人,callup[ele.current]或者calldown[ele.current]減一,total加一。
6. 【走出電梯】電梯根據(jù)人數(shù)停留一定時(shí)間單位,每出去一個(gè)人out[ele.current]減一.
7. 【電梯的活動(dòng)】
E1.[在一樓停候]若有人按下一個(gè)按鈕,則調(diào)用相關(guān)函數(shù)(比如入隊(duì),置樓層標(biāo)志位為1等)處理當(dāng)前事件.
E2.[改變狀態(tài)]如果電梯處于Up(或Down)狀態(tài),但該方向的樓層卻無(wú)人等待,則要看反方向樓層是否有人等待,而決定置State為Down(或Up)還是Idle。
E3.[讓人出入]如果電梯不空且out[ele.current]!=0時(shí),則電梯等候在該樓層出電梯的人離開(kāi)。接著檢驗(yàn)在該樓層是否有等候前往同一方向去的乘客,若有則等候他們進(jìn)入電梯。總原則是先下后上。
E4.[在某樓層(非1樓)停候]若電梯到達(dá)目標(biāo)樓層后,隊(duì)列為空,則電梯在該樓層停候一定時(shí)間,在停候期間若有新的呼叫,則立即轉(zhuǎn)入處理程序處理,否則返回一樓停候。
8. 電梯在上升或下降過(guò)程中需要不停地對(duì)當(dāng)前方向上的最終樓層作調(diào)整。比如當(dāng)前向上,最終樓層為6樓,而有乘客在8樓按了按鈕,則最終樓層調(diào)整為8樓。相反方向同理。

代碼片段和文件信息
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄??????????0??2002-12-04?12:57??電梯模擬
?????文件??????92160??2002-11-23?21:18??電梯模擬\算法文檔.doc
?????文件??????98304??2002-10-23?21:37??電梯模擬\源代碼.doc
?????文件??????48037??2002-10-07?11:05??電梯模擬\電梯模擬.EXE
-----------?---------??----------?-----??----
???????????????238719????????????????????5
-----------?---------??----------?-----??----
?????目錄??????????0??2002-12-04?12:57??電梯模擬
?????文件??????92160??2002-11-23?21:18??電梯模擬\算法文檔.doc
?????文件??????98304??2002-10-23?21:37??電梯模擬\源代碼.doc
?????文件??????48037??2002-10-07?11:05??電梯模擬\電梯模擬.EXE
-----------?---------??----------?-----??----
???????????????238719????????????????????5
評(píng)論
共有 條評(píng)論