黑馬程式設計師 交通燈管理

2021-06-16 18:55:34 字數 2444 閱讀 4175

asp.net+android+io開發s、.net培訓、期待與您交流!交通燈管理系統:

首先我們應該明確:在路上一共有幾條通路,由幾個燈來控制:這個問題我們的考慮只要是一下這些線路,在十字路口有各個同行的車,而紅綠燈能控制的只有八個路線即:四條直行的     線路,和南往西、北往東、東往南和西往北這些線路,有考慮到實際情況,中只要四展交通燈就可以控制這八條線路上車的執行

第二、如何使用物件導向的方法實現該系統

在物件導向設計中要牢記乙個規律:誰擁有資料,誰就對外提供操作這些資料的方法

這個規律幫我們解決如何將需求抽象出物件導向的類的操作

下面幾個小例來說明如何確定一句話中可以定義幾個類,哪些類中有啥方法,什麼是方法的形參等等

1、人在黑板上畫圓

這裡畫圓方法是屬於那個物件的呢?首先要畫乙個圓,必須有圓心座標,有半徑;黑板為畫圓提供乙個圓心位置,所以我們可以確定畫圓是圓這個類的乙個方法,同時我們應該在園的建構函式中傳入乙個黑板的物件,這樣是為了確定圓心在黑板上的那個位置。

2、列車司機緊急剎車

剎車是列車通過剎車的傳動控制,使車輪停止運動的一種行為,人在這個行為中只是給列車乙個外力,使傳動控制能夠執行下去,所以剎車應該是列車提供的乙個方法,這句話中我們可以抽象出來的物件是列車

3、售貨員統計收穫小票的金額

這裡只有兩個物件,乙個是售貨員,乙個是小票,人是為小票統計提供外力,小票中涵蓋商品的**,商品的數量,還有商品的名稱等資訊,根據規律:誰擁有了資料,誰就是對外提供操作這些資料的方法。可知小票對外提供了統計總價的方法

4、球從一根繩子的一段移動到了另一端

對於本例我們先明確誰是資料,小球的移動,,但是小球的移動需要有繩子位之提供移動的方向:小球下一次移動到那個點兒。這樣我們可以通過以下程式來實現繩子是由兩個端點來確定繩子的存在的位置

class rope

public point nextpoint(point currentpoint)

}class ball

public void move()

}    

5、兩塊石頭磨成一把石刀,石刀可以砍樹,砍成木材,木材做成椅子

這兒可以用工廠方法來解決,有乙個做刀的工廠可以將兩塊石頭磨製成刀具,刀可以砍伐樹木製成木材,再由坐椅子的工廠將木材製成椅子

三、交通燈管理系統:使用物件導向的方式來設計

1、明確系統中設計到的類:我們先分析該系統中涉及到的類。交通工具中沒有要處理的資料,因此我們不用將交通工具作為乙個類,交通工具在路上跑,如果遇到紅燈就等待,這樣我們可以把路看做交通工具的容器,交通燈作為交通的訊號,這裡交通燈為外部提供方法即可不可以讓車通過的訊號(紅燈還是綠燈)

2、類的實現,road類每乙個road類中都有乙個存放交通工具的集合,這裡用面向介面的設計理念實現,每條路有路名。在構造路時,我們應該在路上隨機的加入車輛,同時當某個方向上的燈變為綠色時我們就將路上的車從前面一輛一輛的減少;交通燈lamp,這裡講交通燈設為列舉型別,同時交通燈有變綠,變紅的功能;

看著張老師的講解,我跟著寫的**:

s2n("n2s","s2w",false),s2w("n2e","e2w",false),e2w("w2e","e2s",false),e2s("w2n","s2n",false),

n2s(null,null,false),n2e(null,null,false),w2e(null,null,false),w2n(null,null,false),

s2e(null,null,true),e2n(null,null,true),n2w(null,null,true),w2s(null,null,true);

//上面是定義列舉型別的物件,物件鐘指明了它的對應的交通燈,下乙個交通燈,交通燈是否為綠燈

private lamp(string opposite,string next, boolean lighted)

private lamp()

private boolean lighted;//交通燈是否為綠燈

private string next;//下乙個變綠的燈

private string opposite;//該燈對應的燈

public boolean islighted()

public void light()

public lamp balckout()//交通燈變紅的方法

lamp nextlamp = null;//定義下乙個交通燈物件

if(next != null)

return nextlamp;

}該系統中最重要的是定時器技術,下面是交通燈控制的定時器設定

scheduledexecutorservice timer = executors.newscheduledthreadpool(1);

timer.scheduleatfixedrate(new runnable()

}, 10, 10, timeunit.seconds);

asp.net+android+ios開發、.net培訓、期待與您交流!

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

本來的想法 交通燈管理系統,初步有car lamp road三個物件吧,車碰到紅綠燈的時候,各個方向會有12個方向可以行使,這12條路線可以用12個執行緒來表示,要是沒有紅綠燈控制的話,很容易發生事故,根據實際情況,實際只有8條路線受控制,其中能同時執行的只有2條路線,還有4條供車輛隨時向右拐的路線...

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

asp.net unity開發 net培訓 期待與您交流!專案需求分析 1 首先,要根據我們生活中的交通模型來建立程式設計模型,並畫出草圖進行分析 根據需求做出草圖如圖 2 在圖中一共有12條線路,所有的右轉路線也即綠色線路為常通線,黃燈不做考慮,為了設計一致每一條線路有紅綠燈,右轉線路上的燈常用,...

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

終於把前面的東西看完了,今天在看張老師的交通燈管理系統。個人總結了一下,隨著老師的激情的講課,也激情的聽了一天,連飯都忘了吃。說的有點誇張了。原本對於我目前水平,做這樣的專案簡直是可望而不可及的。但是隨著老師的講課,思路也變的清晰了好多,但也沒說完全能理解。之後手動的編寫仍是乙個重要的鍛鍊。課堂知識...