----------------------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.基本邏輯 任意時刻,只能有一組訊號燈保持亮的狀態,右轉車輛不受訊...