黑馬程式設計師 交通燈系統

2022-09-13 20:27:13 字數 2064 閱讀 2070

交通燈管理系統

例如:由南向而來去往北向的車輛 ---- 直行車輛

由西向而來去往南向的車輛 ---- 右轉車輛

由東向而來去往南向的車輛 ---- 左轉車輛

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

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

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

了解了專案需求後,可以通過畫圖具體分析。

分析:專案需要4個類:路、燈、燈控制器、主函式。

路road:隨機產生汽車,並根據燈的狀態決定是否放行汽車。

燈lamp:定義紅綠燈並建立之間的關聯關係。

燈控制器lampcontrol:控制燈的變換

主函式mainclass:產生12個方向的路線,並產生整個交通燈系統。

1)lamp 每個路口車可以往三個方向運動,所以可以分為三組燈。同時右轉總是跟直行相同,不需要單獨控制。

n2s, s2n,  w2e e2w  //直行

n2e, s2w,  w2n, e2s  //右轉

n2w, s2e,  w2s, e2w  //左轉

此外,相對應的燈總是保持相同的狀態,所以只需控制每組中的乙個即可。

**:

public enum lamp 

/*當前燈是否為綠*/

private boolean lighted;

/*與當前燈同時為綠的對應方向*/

private string opposite;

/*當前燈變紅時下乙個變綠的燈*/

private string next;

public boolean islighted()

/*** 某個燈變綠時,它對應方向的燈也要變綠

*/ public void light()

system.out.println(name() + " lamp is green,下面總共應該有6個方向能看到汽車穿過!");

}/**

* 某個燈變紅時,對應方向的燈也要變紅,並且下乙個方向的燈要變綠

* @return 下乙個要變綠的燈

*/ public lamp blackout()

lamp nextlamp= null;

if(next != null)

return nextlamp;

}}

2)路|--每個road物件代表一條線路,總共有12條路線,即系統中總共要產生12個road例項物件。

|--每條路線上隨機增加新的車輛,增加到乙個集合中儲存。

|--每條路線每隔一秒都會檢查控制本路線的燈是否為綠,是則將本路線儲存車的集合中的第一輛移除,即表示車穿過了路口。

**:

public class road  catch (interruptedexception e) 

vechicles.add(road.this.name + "_" + i);

}

}});

//每隔一秒檢查對應的燈是否為綠,是則放行一輛車

scheduledexecutorservice timer = executors.newscheduledthreadpool(1);

timer.scheduleatfixedrate(

new runnable()}}

},1,

1,timeunit.seconds);}}

3)燈控制器:控制燈的轉換

**:

public class lampcontroller 

},10,

10,timeunit.seconds);

}}

4)主函式 

**:

public class mainclass ;

for(int i=0;i

/*產生整個交通燈系統*/

new lampcontroller();

}}

黑馬程式設計師 交通燈

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

黑馬程式設計師 交通燈控制系統

asp.net unity開發 net培訓 期待與您交流!交通燈管理系統 一.專案需求 二.需求分析 1 交通訊號燈控制器的分析 1基本概念 將兩個方向對立的訊號燈歸為一組,如南訊號燈和北訊號燈為一組,東南訊號燈和西北訊號燈為一組 2.基本邏輯 任意時刻,只能有一組訊號燈保持亮的狀態,右轉車輛不受訊...

黑馬程式設計師 交通燈案例學習

asp.net android ios開發 net培訓 期待與您交流!這個案例剛開始看時一頭霧水,特別是路線看起來很多,非常干擾。後來跟著把 敲了一遍,慢慢才理解解題思路以及 的實現。1.多畫圖分析 2.多寫 即使不懂也可以跟著示例打 3.多注意各個類之間的關係,通過什麼樣的方式聯絡。下面說說學習這...