版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
packageerview.traffic;importjava.util.ArrayList;importjava.util.List;importjava.util.Random;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;importjava.util.concurrent.TimeUnit;/***每個(gè)Road對(duì)象代表一條路線,總共有12條路線,即系統(tǒng)中總共要產(chǎn)生12個(gè)Road實(shí)例對(duì)象。*每條路線上隨機(jī)增加新車輛,增加到一個(gè)集合中保留。*每條路線每隔一秒全部會(huì)檢驗(yàn)控制本路線燈是否為綠,是則將本路線保留車集合中第一輛車移除,即表示車穿過(guò)了路口。*@author張孝祥315.org**/publicclassRoad{ privateList<String>vechicles=newArrayList<String>(); privateStringname=null; publicRoad(Stringname){ =name; //模擬車輛不停隨機(jī)上途經(jīng)程 ExecutorServicepool=Executors.newSingleThreadExecutor(); pool.execute(newRunnable(){ publicvoidrun(){ for(inti=1;i<1000;i++){ try{ Thread.sleep((newRandom().nextInt(10)+1)*1000); }catch(InterruptedExceptione){ e.printStackTrace(); } vechicles.add(R+"_"+i); } } }); //每隔一秒檢驗(yàn)對(duì)應(yīng)燈是否為綠,是則放行一輛車 ScheduledExecutorServicetimer=Executors.newScheduledThreadPool(1); timer.scheduleAtFixedRate( newRunnable(){ publicvoidrun(){ if(vechicles.size()>0){ booleanlighted=Lamp.valueOf(R).isLighted(); if(lighted){ System.out.println(vechicles.remove(0)+"istraversing!"); } } } }, 1, 1, TimeUnit.SECONDS); }}packageerview.traffic;publicclassMainClass{ /** *@paramargs */ publicstaticvoidmain(String[]args){ /*產(chǎn)生12個(gè)方向路線*/ String[]directions=newString[]{ "S2N","S2W","E2W","E2S","N2S","N2E","W2E","W2N","S2E","E2N","N2W","W2S" }; for(inti=0;i<directions.length;i++){ newRoad(directions[i]); } /*產(chǎn)生整個(gè)交通燈系統(tǒng)*/ newLampController(); }}packageerview.traffic;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;importjava.util.concurrent.TimeUnit;publicclassLampController{ privateLampcurrentLamp; publicLampController(){ //剛開(kāi)始讓由南向北燈變綠; currentLamp=Lamp.S2N; currentLamp.light(); /*每隔10秒將目前綠燈變?yōu)榧t燈,并讓下一個(gè)方向燈變綠*/ ScheduledExecutorServicetimer=Executors.newScheduledThreadPool(1); timer.scheduleAtFixedRate( newRunnable(){ publicvoidrun(){ System.out.println("來(lái)啊"); currentLamp=currentLamp.blackOut(); } }, 10, 10, TimeUnit.SECONDS); }}packageerview.traffic;/***每個(gè)Lamp元素代表一個(gè)方向上燈,總共有12個(gè)方向,全部總共有12個(gè)Lamp元素。*有以下部分方向上燈,每?jī)蓚€(gè)形成一組,一組燈同時(shí)變綠或變紅,所以,*程序代碼只需要控制每組燈中一個(gè)燈即可:*s2n,n2s*s2w,n2e*e2w,w2e*e2s,w2n*s2e,n2w*e2n,w2s*上面最終兩行燈是虛擬,因?yàn)閺哪舷驏|和從西向北、和它們對(duì)應(yīng)方向不受紅綠燈控制,*所以,能夠假想它們總是綠燈。*@author張孝祥315.org**//**/publicenumLamp{ /*每個(gè)枚舉元素各表示一個(gè)方向控制燈*/ S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","E2S",false),E2S("W2N","S2N",false), /*下面元素表示和上面元素相反方向燈,它們“相反方向燈”和“下一個(gè)燈”應(yīng)忽略不計(jì)!*/ 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); privateLamp(Stringopposite,Stringnext,booleanlighted){ this.opposite=opposite; this.next=next; this.lighted=lighted; } /*目前燈是否為綠*/ privatebooleanlighted; /*和目前燈同時(shí)為綠對(duì)應(yīng)方向*/ privateStringopposite; /*目前燈變紅時(shí)下一個(gè)變綠燈*/ privateStringnext; publicbooleanisLighted(){ returnlighted; } /** *某個(gè)燈變綠時(shí),它對(duì)應(yīng)方向燈也要變綠 */ publicvoidlight(){ this.lighted=true; if(opposite!=null){ Lamp.valueOf(opposite).light(); } System.out.println(name()+"lampisgreen,下面總共應(yīng)該有6個(gè)方向能看到汽車穿過(guò)!"); } /** *某個(gè)燈變紅時(shí),對(duì)應(yīng)方向燈也要變紅,而且下一個(gè)方向燈要變綠 *@return下一個(gè)要變綠燈 */ publicLampblackOut(){ this.lighted=false; if(opposite!=null){ Lamp.valueOf(opposite).blackOut()
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度坡屋面小青瓦施工質(zhì)量監(jiān)督與整改服務(wù)合同
- 二零二五年度新加坡留學(xué)就業(yè)輔導(dǎo)合同4篇
- 2025專業(yè)級(jí)防雷系統(tǒng)設(shè)計(jì)與施工監(jiān)管合同3篇
- 商場(chǎng)自動(dòng)扶梯安裝與維護(hù)服務(wù)合同(2025年度)
- 二零二五版羅絲與楊洋的離婚協(xié)議及財(cái)產(chǎn)分割及子女撫養(yǎng)協(xié)議4篇
- 2025年度家具退貨及維修保養(yǎng)服務(wù)協(xié)議范本
- 2025版GB∕T30057(環(huán)保)固體廢物處理與資源化利用合同3篇
- 二零二五年度歷史文化遺址草坪保護(hù)與旅游合同3篇
- 二零二五年度醫(yī)療信息化系統(tǒng)建設(shè)與維護(hù)合同2篇
- 2025版新型綠色建筑勞務(wù)分包合同范本3篇
- 副總經(jīng)理招聘面試題與參考回答(某大型國(guó)企)2024年
- PDCA循環(huán)提高護(hù)士培訓(xùn)率
- 2024-2030年中國(guó)智慧水務(wù)行業(yè)應(yīng)用需求分析發(fā)展規(guī)劃研究報(bào)告
- 《獅子王》電影賞析
- 河北省保定市定州市2025屆高二數(shù)學(xué)第一學(xué)期期末監(jiān)測(cè)試題含解析
- 中醫(yī)護(hù)理人文
- 2024-2030年中國(guó)路亞用品市場(chǎng)銷售模式與競(jìng)爭(zhēng)前景分析報(bào)告
- 貨物運(yùn)輸安全培訓(xùn)課件
- 前端年終述職報(bào)告
- 2024小說(shuō)推文行業(yè)白皮書(shū)
- 市人民醫(yī)院關(guān)于開(kāi)展“改善就醫(yī)感受提升患者體驗(yàn)主題活動(dòng)”2023-2025年實(shí)施方案及資料匯編
評(píng)論
0/150
提交評(píng)論