---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------
專案需求分析
1、首先,要根據我們生活中的交通模型來建立程式設計模型,並畫出草圖進行分析:
根據需求做出草圖如圖:
2、在圖中一共有12條線路,所有的右轉路線也即綠色線路為常通線,黃燈不做考慮,為了設計一致每一條線路有紅綠燈,右轉線路上的燈常用,
剩下的八條路兩兩對應;其實在設計的時候我們只需要研究其中的四條路線就可以了,因為對應線路和它的完全;
3、在這個交通系統中,我們生活中我們所看得到的哪些物件呢?這是在研究整個程式的起點;把所有我們看得到的物件羅列出來後,
根據程式設計思想、程式設計特點將這些物件逐一按照程式設計的語言特點進行分類研究並實現。
我們看得到的物件有:汽車、馬路、紅綠燈
他們擁有的行為:紅綠燈的紅黃綠轉化、汽車過馬路
根據物件和實現功能將他們劃分為若干物件:
馬路物件:由於汽車在馬路上經過,我們考慮的就是他的幾個關鍵狀態,汽車停下了、汽車開始過馬路了、汽車完成過馬路;這些狀態根據物件導向思想,誰擁有資料誰就擁有方法,就把它作為乙個研究物件,那麼我們就給馬路定義集合用於汽車的存放,汽車的轉移也就是集合元素的移動,
紅綠燈物件:紅綠燈物件提供指示,路面是否能通行,它應該有的屬性,乙個是自己的通行狀態,下乙個該通行的狀態(下一燈由上乙個燈喚醒),然後就是由於在這裡我們在對所有路線分析時發現,12條線他們是兩兩對應,我們就只去處理一半的燈,讓另外一半的燈跟著相同的燈變化就ok了,那麼我們再給紅綠燈乙個屬性和自己相同狀態的燈是哪乙個,一共三個屬性
紅綠燈控制系統:紅綠燈有了,那麼這些紅綠燈的紅綠怎麼變化呢?那就需要有乙個紅路燈指揮中心即紅綠燈紅綠控制系統物件,
這些物件有了,那麼物件應該怎麼產生呢?要物件肯定是先得有物件自己的所屬類,於是就有三個類產生了,分別是路round類、紅綠燈lamp、控制lampcontroller類
具體的**實現如下:
使用列舉實現的lamp類:
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;
}}
控制紅綠燈狀態的lampcontroller類:
public class lampcontroller
},10,
10,timeunit.seconds);
}}
馬路物件所屬的馬路類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);}}
主函式類mainclass:
public class mainclass ;
for(int i=0;i
---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------
黑馬程式設計師 交通燈管理系統
本來的想法 交通燈管理系統,初步有car lamp road三個物件吧,車碰到紅綠燈的時候,各個方向會有12個方向可以行使,這12條路線可以用12個執行緒來表示,要是沒有紅綠燈控制的話,很容易發生事故,根據實際情況,實際只有8條路線受控制,其中能同時執行的只有2條路線,還有4條供車輛隨時向右拐的路線...
黑馬程式設計師 交通燈管理
asp.net android io開發s net培訓 期待與您交流!交通燈管理系統 首先我們應該明確 在路上一共有幾條通路,由幾個燈來控制 這個問題我們的考慮只要是一下這些線路,在十字路口有各個同行的車,而紅綠燈能控制的只有八個路線即 四條直行的 線路,和南往西 北往東 東往南和西往北這些線路,有...
黑馬程式設計師 java 交通燈管理系統
終於把前面的東西看完了,今天在看張老師的交通燈管理系統。個人總結了一下,隨著老師的激情的講課,也激情的聽了一天,連飯都忘了吃。說的有點誇張了。原本對於我目前水平,做這樣的專案簡直是可望而不可及的。但是隨著老師的講課,思路也變的清晰了好多,但也沒說完全能理解。之後手動的編寫仍是乙個重要的鍛鍊。課堂知識...