交通燈管理系統

2021-05-28 14:28:39 字數 1555 閱讀 7460

銀行業務排程系統模擬銀行排程系統邏輯。需求:

銀行內有6個業務視窗,1-4為普通視窗,5為快速視窗,6為vip視窗。

有三種型別客戶:vip客戶,快速客戶(交水電費類業務),普通客戶。

一部隨機生成各種型別的客戶,概率比例為:vip客戶:快速客戶:普通客戶 = 1:3:6。

客戶辦理用時設定最少時間。

各型別客戶在其對應視窗按照順序辦理業務。

vip和快速視窗無辦理業務時刻受理普通客戶,若有應該優先處理對應客戶。

客戶辦理業務所需時間有最大值和最小值,在該範圍內隨機設定每個vip

sleep

的方式模擬)。各型別客戶在其對應視窗按順序依次辦理業務。  當vip(6

號)視窗和快速業務(

5號)視窗沒有客戶等待辦理業務的時候,這兩個視窗可以處理普通客戶的業務,而一旦有對應的客戶等待辦理業務的時候,則優先處理對應客戶的業務。隨機生成客戶時間間隔以及業務辦理時間最大值和最小值自定,可以設定。不要求實現gui

,只考慮系統邏輯實現,可通過

log方式展現程式執行結果。

物件導向是一種很好的程式設計思想,物件導向的程式語言必須有描述物件及其相互之間關係的語言成分。這些程式語言可以歸納為以下幾類:系統中一切皆為物件;物件是屬性及其操作的封裝體;物件可按其性質劃分為類,物件成為類的例項;例項關係和繼承關係是物件之間的靜態關係;訊息傳遞是物件之間動態聯絡的唯一形式,也是計算的唯一形式;方法是訊息的序列。物件導向的三大特點:繼承、封裝、多型。

利用物件導向程式設計可以更好的的理解事情。從而達到簡化程式設計的目的。

從物件導向的角度分析 我們只要設計三個類:road,lamp,lampcontroler。

road類可設計為乙個容器,裡面存放著資料,比如車。按照誰擁有資料誰就擁有對這些資料操作的方法這樣乙個物件導向的原則(處處體現出物件導向的封裝性)。我們知道,road類裡必須要提供車子的增加和減少的方法,list類裡提供了很多對資料的增刪改查操作。設計為list方便而且準確。

lamp類應該設計為列舉型別。因為我們知道,乙個十字路口車可以行使的路線最多有12條!而且這12條路線是確定的,不能由使用者隨意更改,所以應該設定為列舉。我們認真的縷下思路會結合現實生活中的交通燈發現:四條右拐的路線根本不需要看交通燈可隨時通過(可看做是燈為常綠),而且剩餘的八條具有對稱性,這是我們只需要考慮四個燈就可以了,更好的簡化了程式設計。可以這樣設計lamp,每個lamp(只考慮四燈)都有乙個相對的燈opposite和相鄰的燈next,當然還有自身燈亮的情況,於是只要在類中提供對這些資料操作的方法變好了。

這裡借用張老師的一張圖來更好的說明:

lampcontroler為控制lamp的類。在其中要啟動乙個執行緒專門來管理lamp。我們應盡量使用jdk1.5的新特性,比如產生執行緒池和排程執行緒

scheduledexecutorservice timer= executors.newscheduledthreadpool(1);

timer.schedulewithfixeddelay(

new runnable()  

}, 1,

1, timeunit.seconds);

在以後的程式設計中我要鍛鍊自己的物件導向的思維能力。

交通燈管理系統

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

交通燈管理系統

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

交通燈管理系統

實現步驟 1,建立乙個lamp類 列舉 用於操作燈.定義12個列舉物件,相當於十二盞燈 每個物件包含三個成員物件,自身燈的狀態,相對的燈的名稱,下乙個燈的名稱 初始各個狀態都為false 定義乙個islight 方法,用於返回燈物件的狀態.定義乙個light 方法,用於將當前燈和相對的燈的狀態變綠 ...