多路電梯排程的思想

2022-05-04 23:21:11 字數 1744 閱讀 5393

這次是一次團隊合作的開發專案,以前做的程式都是課本上的,就算是小學期的程式總覺得是那麼的理論,但這次軟體工程布置的專案,讓我開始覺得程式能夠運用到實際了,還有就是以前的程式都是乙個人在寫,有時候一些邏輯上的漏洞很難找出來,兩個人一起做,覺得還是好了很多!我和嚴曉雄一組,在後面會有我們兩個人一起合作的具體事項,下面我就說說我們對於這個專案的一些想法!

專案背景:這是乙個關於大樓裡面電梯的排程問題,我們經常坐電梯,可對電梯的具體執行有知道多少呢?該大樓共有21層,其中0層為地下車庫,共有四部電梯,其各項引數如下表:

電梯名稱

停靠層數

乘客限制

重量限制

1所有樓層

10800kg

2所有樓層

10800kg

3所有樓層

201600kg

4所有樓層

202000kg

執行思想:首先將電梯定義成乙個結構體,這個結構體裡面包括停靠層數,乘客人數,乘客重量,還有電梯的執行趨勢(用0表示停止,1表示向上,-1表示向下),該結構體如下:

struct elevatore[4];

這個電梯總的分為三個指令系統,第乙個電梯自身的指令系統,第二個是每一層電梯外部的上下按鍵的指令系統(有乙個變數a,用0表示停止,1表示向上,-1表示向下),第三個是電梯裡面控制到達樓層與開關門的指令系統!當電梯處於靜止狀態時,有乘客發出了請求,此時乘客進入電梯,然後選擇自己所要去的樓層,此時電梯自身系統將當前樓層與乘客將要到達的樓層做差,如果結果為負數,電梯將向下執行,並將trend賦為-1(如果結果為正數,電梯將向上執行,並將trend賦為1),還有一點要宣告,每當有乘客進入電梯時,電梯所在層是不可以被選擇的!當電梯開始執行是,此時電梯的執行趨勢已經被鎖定,此時若有其他層乘客發出請求,通過第二個電梯指令來判斷,如果此時第二個指令的值與電梯執行趨勢的值相同畢竟電梯還沒有達到此樓層,此時電梯將在該樓層停靠,如果不滿足的話,電梯將不響應它的選擇,當執行完第三個指令系統中的情況之後才考慮它!當電梯的停靠層數的陣列中沒有數之後,將所有第二個指令系統指令集中起來,依次與當前樓層做差,如果為正數將m置為1,負數將m置為-1,然後將這個值與原先電梯中的trend比較,如果有相同的或者沒有相同的中選擇離該層最近的樓層,電梯到達該樓層,然後重複前面的操作,如果電梯的三個指令系統都沒有指令時,電梯將處於靜止,trend預設為0!

四部電梯,每個電梯的執行過程都是一樣的,只是對於乘客的選擇有些不同,通過判斷各電梯的最大載客數,最大乘客總重量還有最近樓層第二個指令響應來優先選擇電梯,當乙個電梯響應了乘客的請求之後,這個電梯的請求將在其他的三個電梯中消失,如果達到了電梯的最大載客數和最大乘客總重量時,電梯會發出警報,此時電梯將不再響應第二個指令系統,並且當警報解除之後電梯才會繼續執行,當電梯中有人下去之後,才會進行判斷來選擇是否進行響應!每乙個樓層只有一組按鈕,通過這一組按鈕來控制四部電梯!

以上是我們初步的思想,還有很多不完善的地方,在後面的程式設計中,我們還會對我們的思路進行改善的!

合作時間表:

3月7號下午2:30-4:30:進行初次有關電梯設計的討論,討論具體程式結構以及程式的演算法設計,有了此次程式的大體框架,也明確了目標,使思路更加清晰。

3月8號上午9:00-11:00:討論具體設計結構的細節問題,演算法實現的迴圈巢狀問題最為突出,邏輯上有點混亂,經過討論和重新設計,找出了問題,完善了程式結構

3月9號下午8:00-10:30:提出所想到的極端情況,發現了設計中存在的許多細節上的漏洞,並結合實際情況進行了電梯面對極端情況時的反應(即電梯應該怎樣運動),

並且完成了的記錄!

小組成員:劉三龍     嚴曉雄

電梯時間排程表:

電梯排程演算法

在高峰時間,實習生小飛常常會被電梯每層樓都停弄得很不耐煩,於是他想出了這樣乙個辦法 由於樓層並不高,那麼在繁忙的時間,每次電梯從一層往上走時,我們只允許電梯停在其中的某一層。所有乘客都從一樓上電梯,到達某層樓後,電梯聽下來,所有乘客再從這裡爬樓梯到自己的目的層。在一樓時,每個乘客選擇自己的目的層,電...

電梯排程演算法( )

今天我們做的是乙個結對程式設計作業,其實對結對程式設計,我也有兩種看法,第一 提高自己,第二 埋沒自己。關鍵看是如何去利用結對程式設計,才能達到事半功倍的效果。這次我們做的是乙個關於電梯控制排程的程式,這個程式的演算法思想做了一天,初步有了電梯排程演算法的框架。由於電腦換了,拿到聯想服務站維修,只在...

BUAA OO 電梯排程

設計乙個系統,使其可以根據乘客的當前樓層和目的樓層,為乘客分配電梯資源並運送其至目的樓層。根據需求,可以將整個系統分成三個部分 顯然,這三個部分是有次序關係的 乘客輸入,處理輸入,將請求放入排程佇列,排程器從排程佇列中取出請求,根據各電梯狀態將請求分配給合適的電梯。上述的過程可以看成是三組 prod...