交通燈管理系統 需求分析篇

2021-05-27 22:32:12 字數 1363 閱讀 1395

首先,交通燈管理的需求如下:

1、能夠非同步隨機生成按照各個路線行駛的車輛

2、訊號燈忽略黃燈,只考慮紅燈和綠燈

3、應考慮左轉車輛控制訊號燈,右轉車輛不受控制

4、具體訊號燈控制邏輯與現實生活中普通交通燈的控制邏輯相同,不考慮特殊情況下的控制邏輯

注:南北向車輛與東西向車輛交替放行,同方向等待車輛應先放行直行車輛,而後放行左轉車輛

5、每輛車通過路口的時間為1秒

6、不要求實現gui,只考慮系統邏輯實現

通過對需求的分析,可以抽象出以下的概念:

1、東西南北一共是4個方向,其中每個方向駛來的車又分別有左轉、右轉、直行3種前進方向

2、對於正對的兩個方向來說(東正對西,南正對北),可以使用同一盞交通燈來控制

3、對於每個方向來說,需要使用交通燈控制的都只有兩個行進方向:左轉和直行

綜上所述,我們可以得到以下結論

1、在隨機生成車輛時,車輛一共有12條行進路線

它們分別是:s2w(south to west,下同)、s2m、s2e、w2s、w2n、w2e、n2s、n2w、n2e、e2s、e2w、e2n

2、在交通燈控制模型中,就需要實現4盞交通燈的控制邏輯就足夠了

它們分別控制的路線是:s2n,s2w,e2w,e2s

其中,這四盞交通燈亮起的順序應當為:s2n -> s2w -> e2w -> e2s

並且,在前一盞交通燈滅掉之後,後一盞交通燈就需要亮起

需要抽象出來的物件:

在我們這個問題中,我們關注的只是每條路線上車輛的數量,以及這個數量的增減情況

所以,我們只需要建立乙個路線物件

並在路線物件中提供增加車輛和減少車輛的方法就足夠了

至於車以什麼形式來表示並不重要(例如可以用字串)

所以,從這個問題中,我們就可以抽象出以下3個物件:

交通燈類、路線類、交通燈控制類

物件導向設計的兩個基本原則:

1、誰擁有資料,誰就提供對資料進行操作的方法

例如:球從繩子的一端移動到另一端

由於繩子擁有的資料為一端和另一端,所以,繩子就應當提供從一端移動到另一端的方法

由於球擁有的資料為當前所處的位置,所以,球就應當提供設定當前所處的位置的方法

2、如果在對物件操作的過程中,物件的型別發生了轉變,那麼就應當由第三個類來提供對它們進行操作的方法

例如:石頭可以被加工成石刀

由於石頭和石刀分別為兩個不同的物件,所以應當提供乙個石刀加工廠,來提供將石頭變成石刀的方法

交通燈管理系統

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

交通燈管理系統

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

交通燈管理系統

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