2017-07-27 73 views
1

正如標題所述,這是作業,我不是在尋找特定的代碼,只是想法如何實現這一點。有兩個並行運行的進程。家庭作業

我需要在建築物中模擬電梯。

所以我有一個電梯陣列,我的程序隨機生成這些電梯從1個隨機樓層到另一個樓層的請求。當收到一個請求時,電梯從當前位置開始起飛,將乘客送到目的地。移動每個樓層需要1個單位的時間。

我想模擬在一定的時間內,或多或少的電梯是如何影響乘客的數量的。

我產生的請求:

while (!arrayOfRequests.isEmpty()){ 
sourceFloor = arrayOfRequets[0].getSource(); 
destinationFloor = arrayOfRequets[0].getDestination(); 

elevatorMovement(sourceFloor, destinationFloor); 

remove(arrayOfRequests[0]); 
} 

現在elevatorMovement方法進入並做它的事情,一旦做了,我刪除從堆棧的請求。

問題是我需要我的程序來照顧下一個請求並將其交給電梯#2,同時電梯#1正忙於處理先前的請求。

這是如何實現的?這個類太基本了,不需要像線程等先進的概念。 哦,這一切都在Java中。

非常感謝您的幫助!

+0

我知道你不是要求代碼,但這個網站也不是要求你設計代碼的地方。網上有其他網站可以幫助這個 –

+0

另外,我認爲線程將是我會採取的方式。這將是一個很好的應用程序來學習如何線程,因爲它很簡單,線程也是 –

+0

請您引導我到正確的資源。 – doddy

回答

1

不幸的是,我知道同時運行2個循環的唯一方法就是線程化。如果你想要線程,請檢查How to run two FOR loops at the same time。 我使用的另一種方式是不能同時運行,只是一個接一個地運行。要做到這一點,您可能需要在每個循環之後運行if/elif序列。或者,您可以隨機選擇陣列,並隨機選擇arrayOfRequests/arrayOfRequests2(第二個電梯),說明您有一個if條件來檢查電梯是否運動。 我建議跟你的老師談談穿線。如果他說不,隨機化它(它甚至會使它看起來像一個真正的電梯!)。如果他說是的,那麼你可以把它(並實現你的目標)。

+0

謝謝。你可能是對的。我想我可能誤解了這個任務。我會和我的教授談談這件事。 – doddy

+0

我希望它有幫助! –