專案分析
路:一共12條路線
先考慮乙個方向的線比如:南到北的直線、南到西的拐彎。那麼北到南的路線正好相反
東到西這個路線:東到西的直線、東到南德拐彎。反之西到東、西到北正好相反。加上各條路線向右拐彎的路線共12條。但只考慮4條就可以。
路跟燈繫結 汽車看自己所在的這條路上的燈是什麼顏色 判斷是否過路口,而且還要判斷前面是否有車(怎麼問自己前面有沒有車 問路)路(是個集合)。所以,就應該有汽車有增加和減少
的方法,因為只是捕捉車減少的過程。所以說,車不用時物件 用字串就可以了。
路://newscheduledthreadpool 建立乙個執行緒池,它可安排在給定延遲後執行命令或者定期地執行。
//executorservice可安排在給定的延遲後執行或定期執行的命令
executorservice pool = executors.newscheduledthreadpool(1);
pool.execute(new runnable() catch (interruptedexception e)
//內部類訪問外部類的變數 用法
list.add(road.this.name + "_" +i);}}
});//定時器 第乙個引數new runnable()是個介面加上大括號表示實現這個介面的類要重寫run這個方法,第二個引數是表示什麼時間開始,第三個引數表示多久再次執行
,第四個引數表示用什麼時間單位
scheduledexecutorservice timer = executors.newscheduledthreadpool(1);
timer.scheduleatfixedrate(
new runnable()}}
},1,
1,timeunit.seconds);
}燈:12個燈(包括路線右拐的燈)可以用列舉。考慮燈亮的順序 他對應的燈和他下乙個燈。
所以只設計4個燈比如說:南到北的路線,南到北直線的燈然後是南到西的燈在執行時把他物件的路線一起執行,然後再考慮東到西的路線用上,所以只考慮4個燈。
燈裡有三個屬性:自己的狀態、對應的燈、下乙個燈
燈: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 opposite;//對應的燈
private string next; //下乙個燈
//獲得燈的狀態
public boolean islighted()
//把燈變綠
public void light()
system.out.println(name()+"lamp is green 下面總共應該有6個方向能看到汽車");
}//把燈變紅
public lamp blackout()
return nextlamp;
}燈控制器:進行燈的紅綠切換。控制4組燈的切換
有個變數:當前綠的燈是哪乙個 有個定時器,時間一到把當前等變紅 當這個變紅的同時返回下乙個綠燈
燈控制器:
private lamp dangqiandeng;
public lampkongzhi()
},10,
10,timeunit.seconds);
}專案總結
執行緒的運用
/*executorservice這個介面可安排在給定的延遲後執行或定期執行的命令
executors這個類呼叫newscheduledthreadpool這個方法建立乙個執行緒池,它可安排在給定延遲後執行命令或者定期地執行*/
executorservice pool = executors.newscheduledthreadpool(1);
定時器 第乙個引數執行緒物件,第二個引數是表示什麼時間開始,第三個引數表示多久再次執行,第四個引數表示時間單位
scheduledexecutorservice timer = executors.newscheduledthreadpool(1);
列舉---valueof()可以把你給他的相應字串返回乙個其對應的列舉物件
lamp.valueof(opposite).light();
內部類訪問外部類的變數 用法 外部類名.this.變數名
list.add(road.this.name + "_" +i);
交通燈管理系統
銀行業務排程系統模擬銀行排程系統邏輯。需求 銀行內有6個業務視窗,1 4為普通視窗,5為快速視窗,6為vip視窗。有三種型別客戶 vip客戶,快速客戶 交水電費類業務 普通客戶。一部隨機生成各種型別的客戶,概率比例為 vip客戶 快速客戶 普通客戶 1 3 6。客戶辦理用時設定最少時間。各型別客戶在...
交通燈管理系統
需求 模擬實現十字路口的交通燈管理系統邏輯,具體需求如下 1.非同步隨機生成按照各個路線行駛的車輛。例如 由南向而來去往北向的車輛 直行車輛 由西向而來去往南向的車輛 右轉車輛 由東向而來去往南向的車輛 左轉車輛 2.訊號燈忽略黃燈,只考慮紅燈和綠燈。3.應考慮左轉車輛控制訊號燈,右轉車輛不受訊號燈...
交通燈管理系統
1 非同步隨機生成按照各個路線行駛的車輛。例如 由南向而來去往北向的車輛 直行車輛 由西向而來去往南向的車輛 右轉車輛 由東向而來去往南向的車輛 左轉車輛 2 訊號燈忽略黃燈,只考慮綠燈和紅燈。3 應考慮左轉車輛控制訊號燈,右轉車輛不受訊號燈控制 4 具體訊號燈控制邏輯與現實生活中普通交通燈控制邏輯...