交通燈管理系統筆記

2021-05-23 23:59:16 字數 1607 閱讀 6129

物件導向的分析與設計

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

「球從一根繩子的一段移動到了另一端」,

用物件導向的方法分析設計這兩種過程。 1.

用到的類:

stone

、stonesword

、tree

、wood

、chair

、stonefactory

、woodfactory。

stonefactroy

stonesword createsword(stone stone1, stone stone2);

wood cuttree(tree tree);

woodfactory

createchair(wood wood);

2.用到的類:

ball

、rope

、point。

ball

move();

rope

rope(point start, point end);

point nextpoint(point currentpoint);

設計準則:合適的方法寫在合適的類裡邊,即哪個類裡有方法要操作的屬性,這個方法就寫在哪個類裡邊。

交通燈系統的設計: 1.

確定業務的邏輯: a)

共有12

個方向的車。四條路,每條路上的車有三個轉向方向(不轉向、左轉、右轉)。四個交通燈,分別位於東西南北。兩兩對應,即相對的交通燈的紅綠燈顯示是一致的。 b)

簡單模擬,認為只有紅燈和綠燈。那麼就有兩方面需要考慮,東西方向是紅燈的時候,南北方向是綠燈,反之亦然。先從乙個方向的乙個路口開始,比如:由南向北的車,有三個轉向的方向,當南北方向的燈為紅燈時,此車可轉向東西兩個方向,當南北方向的燈為綠燈時,此車可轉向東、北和西三個防向。其他方向的車同理。

這就是基本的業務邏輯。 c)

涉及到的類: i.

road

類代表路線,共有十二條路線。車屬於路的屬性,用多執行緒生成多輛車,並儲存在向量中,當車穿過路口時,將生成的車移除。

ii.lamp

類使用列舉型別,共有

12個方向,用12個

lamp

表示12

盞燈。由於有

8個拐彎的方向不需看燈,所以只有

4個方向的

lamp

是其作用的。能夠知道每個方向的燈是否亮,能夠控制燈的亮滅。

iii.

lampcontroller

類用執行緒控制

lamp

的開和關。

iv.mainclass

類用於啟動整個系統,建立

12條路和開啟交通燈。 2.

編寫**: a)

遇到的問題:思路不連貫,總斷。不能熟練使用物件導向的方式編寫**。會把**邏輯和業務邏輯相混淆。我還得多練啊。 3.

總結:

a)物件導向的方式分析問題很容易,**不再是**,像是現實世界的一草一木,是有生命的。小技巧啊,小知識點啊,都是次要的。業務的邏輯確定了,剩下的就是把用語言表達的東西**化了吧。有了想要實現的,其他的知識自然會找到,不用死記硬背。嗯,我是這樣認為的。

交通燈管理系統

銀行業務排程系統模擬銀行排程系統邏輯。需求 銀行內有6個業務視窗,1 4為普通視窗,5為快速視窗,6為vip視窗。有三種型別客戶 vip客戶,快速客戶 交水電費類業務 普通客戶。一部隨機生成各種型別的客戶,概率比例為 vip客戶 快速客戶 普通客戶 1 3 6。客戶辦理用時設定最少時間。各型別客戶在...

交通燈管理系統

需求 模擬實現十字路口的交通燈管理系統邏輯,具體需求如下 1.非同步隨機生成按照各個路線行駛的車輛。例如 由南向而來去往北向的車輛 直行車輛 由西向而來去往南向的車輛 右轉車輛 由東向而來去往南向的車輛 左轉車輛 2.訊號燈忽略黃燈,只考慮紅燈和綠燈。3.應考慮左轉車輛控制訊號燈,右轉車輛不受訊號燈...

交通燈管理系統

1 非同步隨機生成按照各個路線行駛的車輛。例如 由南向而來去往北向的車輛 直行車輛 由西向而來去往南向的車輛 右轉車輛 由東向而來去往南向的車輛 左轉車輛 2 訊號燈忽略黃燈,只考慮綠燈和紅燈。3 應考慮左轉車輛控制訊號燈,右轉車輛不受訊號燈控制 4 具體訊號燈控制邏輯與現實生活中普通交通燈控制邏輯...