在做乙個系統之前,首先必須明確這個系統對社會的需求,其次分析專案的要求。
要求:非同步隨機生成按照各個路線行駛的車輛。
例如:由南向而來去往北向的車輛 ---- 直行車輛
由西向而來去往南向的車輛 ---- 右轉車輛
由東向而來去往南向的車輛 ---- 左轉車輛
。。。訊號燈忽略黃燈,只考慮紅燈和綠燈。
應考慮左轉車輛控制訊號燈,右轉車輛不受訊號燈控制。
具體訊號燈控制邏輯與現實生活中普通交通燈控制邏輯相同,不考慮特殊情況下的控制邏輯。
注:南北向車輛與東西向車輛交替放行,同方向等待車輛應先放行直行車輛而後放行左轉車輛。
隨機生成車輛時間間隔以及紅綠燈交換時間間隔自定,可以設定。
不要求實現gui,只考慮系統邏輯實現,可通過log方式展現程式執行結果。
看完要求就需要開始分析。
首先畫圖分析總共有多少條路線,看圖:
總共有12條路線
為了統一程式設計模型,可以假設每條路線都有乙個紅綠燈對其進行控制,右轉彎的
燈 可以假設稱為常綠狀態,另外,其他的
8條線路是兩兩成對的,
為4組,所以,程式只需要考慮途中標註了數字號的4條路線的控制燈的切換順序,這四條路線相反方向的路線的控制燈跟隨這4條路線切換,不必另外考慮。
然後進行物件導向的分析與設計。
首先想到路,12條路都有名字,路上有車。所以應有road類,類中有name和vechicles屬性。車隨時上路,用緩衝池模擬車上路,然後每秒檢查等是否綠,綠了就放一輛車,用緩衝池的排程。
其次是訊號燈,12條線路12個燈,右轉彎可以設定為常亮的不用考慮。其它8個兩兩相對可以設為四組。燈的設計用列舉來實現,每乙個列舉元素都包含相對方向的燈opposite,下乙個亮的next和燈是否為綠lighted等三個屬性。light()方法,某個燈變綠時,相對的燈也要變綠,blackout()方法,某個燈變紅時,相應的燈也變紅,同時下乙個燈變綠。
然後再構建乙個燈的控制類。其中有乙個當前等currentlamp屬性和乙個燈控制方法lampcontroller(). ø
上面幾個類做好了在寫主函式。主函式內部建立12條路,啟動燈控制。專案分析就完成了。
交通燈控制
問題描述,十字路,東西方向和南北方向燈,綠20s黃5s紅25s,倒計時顯示時間,另外,警車救護車等特殊狀態,都顯紅燈,且時間顯示不斷閃爍,通過之後,恢復原狀態。以下是我編寫的源 library ieee use ieee.std logic 1164.all use ieee.std logic u...
智慧型交通燈
交通燈有很多種型別,下面這個,還是比較簡單的。東西 a 南北 b 兩幹道交於乙個十字路口,各幹道有一組紅 黃 綠三色的指示燈,要求用微控制器控制交通燈,實現以下功能 1 a 道和b道上均有車輛要求通過時,a b道輪流放行。a道放行5分鐘 除錯時改為5秒鐘 b道放行4分鐘 除錯時改為4秒鐘 4 綠燈轉...
例程5 交通燈
1.準備 直插led 3 220 電阻 3 麵包板 1 麵包板跳線 1 扎 準備好上述元件我們就可以開工了,和上節課的實驗原理一樣,下面是我們提供參考的原理圖,我們使用的分別是數字10 7 4介面 按照右圖鏈結好電路後,就可以開始編寫程式了。既然是交通燈模擬實驗,紅黃綠三色小燈閃爍時間就要模擬真實的...