黑馬程式設計師 java基礎學習(交通燈管理系統)

2021-06-20 15:08:02 字數 2070 閱讀 5430

---------------------- asp.net+android+ios開發、

.net培訓、期待與您交流! ----------------------

需求:非同步隨機生成按照各個路線行駛的車輛。

訊號燈忽略黃燈,只考慮紅燈和綠燈。

應考慮左轉車輛控制訊號燈,右轉車輛不受訊號燈控制。

具體訊號燈控制邏輯與現實生活中普通交通燈控制邏輯相同,不考慮特殊情況下的控制邏輯。

注:南北向車輛與東西向車輛交替放行,同方向等待車輛應先放行直行車輛而後放行左轉車輛。

隨機生成車輛時間間隔以及紅綠燈交換時間間隔自定,可以設定。

不要求實現gui,只考慮系統邏輯實現,可通過log方式展現程式執行結果。

分析:                                      n

w               e

s 路(road),有十二條不同方向的路線(s2n,n2s,s2w,n2e,e2w,w2e,e2s,w2n,s2e,e2n,n2w,w2s)。

路上有車輛資訊(可以通過乙個集合來儲存)。

燈(lamp),燈控制路線上的車是否可以通行。十二條路線對應十二盞燈。燈有紅綠狀態,讓乙個控制器控制。

控制燈的控制器(lampcontroller),對燈進行控制,讓當前綠燈定時變紅。

各個類的實現:

路 (road)

public class road 

/* * 隨機1-10秒在當前路線產生一輛車。

*/private void vehiclecoming() catch (interruptedexception e)

vehicles.add(name + "---" + i);

system.out.println(name + "----" + i + "vehicle coming.");}}

});

} /*

* 啟動定時器,每隔一秒檢查當前路對應的燈是否是綠燈

* 如果是綠燈,移走第一輛車。

*/private void vehiclegone()}}

}, 1,

1, timeunit.seconds);

}}

燈(lamp)通過列舉實現

public enum lamp 

private lamp(string opposite, string nextlamp, boolean lighting)

public boolean islighting()

/* * 讓燈變綠方法

* 乙個燈變綠時,如果有相對應的燈,相對應的燈也要變綠

*/public void light()

} /*

* 燈變紅方法

* 乙個燈變紅,如果有相對應的燈,相對應的燈也要變紅。

*/public lamp blackout()

if(this.nextlamp != null)

return lamp.valueof(this.nextlamp);

}}

控制燈的控制器(lampcontroller)

public class lampcontroller 

/* * 定時將currentlamp儲存的當前綠燈變成紅燈。

*/private void changelamp()

}, 2, 2, timeunit.seconds);

}}

測試功能是否完成(trafficlightstest)

public class trafficlightstest ;

new lampcontroller(lamp.s2n);

for(int i=0,end=directions.length-1; i<=end; i++)

}}

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------

黑馬程式設計師 java基礎 封裝

asp.net unity開發 net培訓 期待與您交流!封裝表示吧資料項和方法隱藏在物件內部,在類定義中用private關鍵字來實現封裝。封裝有什麼好處?用private把類的細節與外界隔離起來,從而實現資料項和方法的隱藏,而要訪問這些資料項和方法唯一的途徑就是通過類本身,類才有資格呼叫它所擁有的...

黑馬程式設計師 Java基礎 陣列

1.陣列的定義格式 1 int arry new int 5 2 int arry new int 5 int arry 3 常見問題 陣列越界異常 空指標異常。2.陣列常見操作 1 遍歷,查詢陣列,輸出陣列 int arry new int 3 for int i 0 i 3 i int a fo...

黑馬程式設計師 交通燈

asp.net unity開發 net培訓 期待與您交流!交通燈管理系統 1,首先向張孝祥老師致敬 張孝祥老師語錄 i.害羞是找不到工作的。ii.細節見真英雄 iii.新技術是為解決問題而誕生的 iv.人的精力是有限的,應該把精力留給自己最愛的事業上,或者最主要的事情上 v.人的精力就那麼一點,不能...