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

2021-06-23 03:51:53 字數 2450 閱讀 9985

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

.net培訓

、期待與您交流! ----------------------

這個案例剛開始看時一頭霧水,特別是路線看起來很多,非常干擾。後來跟著把**敲了一遍,慢慢才理解解題思路以及**的實現。

1.多畫圖分析

2.多寫**,即使不懂也可以跟著示例打

3.多注意各個類之間的關係,通過什麼樣的方式聯絡。

下面說說學習這個案例的總結

模擬實現十字路口的交通燈管理系統邏輯,具體需求如下:

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

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

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

右轉車輛

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

左轉車輛

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

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

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

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

每輛車通過路口時間為1

sleep

的方式模擬)。

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

案例中的實現分為兩個核心部分

一是對燈的實現

二是對車輛的實現

車輛雖然是車輛在行使,但我們真正要操作並不是車輛,因為要體現不是車的屬性和功能如品牌、車速、代步功能等等。要體現的只是車的出現與消失,所以車輛是被當作資料來處理的。示例中定義了road類來操作車輛。

每條路線上都會出現多輛車,路線上要隨機增加新的車,在燈綠期間還要每秒鐘減少一輛車。

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

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

public class road  

catch (interruptedexception e) } }

});//這個執行緒實現的是車輛通行與停止,也是車輛與燈系統連線的地方。

executors.newscheduledthreadpool(1).scheduleatfixedrate(

new runnable() }}

},1,

1,timeunit.seconds); }}

燈系統

這裡主要的問題是如何劃分各種線路的燈,能不能找到規律,能不能找到與車輛系統的連線點是關鍵

畫圖非常有利於理解和分析問題

總共有12

條路線,所以,系統中總共要產生

12個交通燈。右拐彎的路線本來不受燈的控制,但是為了讓程式採用統一的處理方式,故假設出有四個右拐彎的燈,只是這些燈為常亮狀態,即永遠不變黑。

除了右拐彎方向的其他8

條路線的燈,它們是兩兩成對的,可以歸為

4組,所以,在程式設計處理時,只要從這

4組中各取出乙個燈,對這

4個燈依次輪詢變亮,與這

4個燈方向對應的燈則隨之一同變化,因此

lamp

類中要有乙個變數來記住自己相反方向的燈,在乙個

lamp

物件的變亮和變黑方法中,將對應方向的燈也變亮和變黑。每個燈變黑時,都伴隨者下乙個燈的變亮,

lamp

類中還用乙個變數來記住自己的下乙個燈。

無論在程式的什麼地方去獲得某個方向的燈時,每次獲得的都是同乙個例項物件,所以lamp

類改用列舉來做顯然具有很大的方便性,永遠都只有代表

12個方向的燈的例項物件。列舉的應用很有力量,要理解如何運用。

public void light() 

public lamp blackout()

列舉中對外提供了兩個方法,就像給燈裝了開關一樣。那麼下一步就是設定讓它何時開,何時關了。

ublic class lampcontroller 

}, 2,

2, timeunit.seconds);

}}

最後的主函式只要建立12個路線的例項以及乙個控制器的物件即可。

----------------------

asp.net+android+ios開發

.net培訓

、期待與您交流! ----------------------

黑馬程式設計師 交通燈

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

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

交通燈管理系統 例如 由南向而來去往北向的車輛 直行車輛 由西向而來去往南向的車輛 右轉車輛 由東向而來去往南向的車輛 左轉車輛 注 南北向車輛與東西向車輛交替放行,同方向等待車輛應先放行直行車輛而後放行左轉車輛。隨機生成車輛時間間隔以及紅綠燈交換時間間隔自定,可以設定。不要求實現gui,只考慮系統...

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

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