999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JAVA的十字路口紅綠燈系統設計與實現

2019-05-23 10:44:40楊華
電腦知識與技術 2019年5期
關鍵詞:系統

楊華

摘要:為了能夠使多個交通燈最大化協調工作,使車輛不至于在十字路口滯留的時間過長,我們利用Java語言設計十字路口交通燈管理系統,通過系統對十字路口車輛及交通參與者進行有效管理,提高十字路口交通控制水平,充分發揮路口通行能力,使其更加靈活有效地提高道路的利用率,從而達到暢通交通工程目的。

關鍵詞:業務邏輯;系統;java;管理系統

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2019)05-0102-03

近年來,隨著經濟發展,城市汽車數量的增加,我國城市交通正面臨十分嚴峻的考驗,從而導致交通問題的日益嚴重,其主要變現在:交通事故頻發,交通擁堵嚴重,人們出行時間增加,日常的交通堵塞成為人們司空見慣而又不得不忍受的問題,也是迫切需要解決的社會問題。作為城市交通路網的關鍵部分,十字路口成為道路通行能力的瓶頸,十字路口的通行能力決定了城市交通暢通程度。因此,如何設計出智能化十字路口信號燈控制系統,是保障十字路口交通通行能力的重要措施,是解決城市交通擁塞的有效途徑。本文我們將利用Java來開發十字路口紅綠交通燈系統。

1 十字路口交通燈管理系統邏輯需求分析

根據我國城市交通的實際狀況及車輛行駛慣例,分析十字路口管理系統實現邏輯,具體如下:

1.1 交通參與者車輛行進路線分析

設計生成按照各個路線行駛的異步隨機路線。例如:由西向東則直行,由西向南則設計為右轉,由西向北則設計為左轉等等,各個路口車輛行駛路線如圖1所示:

1.2 路口信號燈模擬

根據十字路口交通狀況,在設計信號燈系統的時候,我們主要考慮以下情況:

右轉車輛不受信號燈控制,只考慮直行和左轉車輛控制信號燈;南北向與東西向車輛交替行駛,同向車輛應遵循“先直行后左轉原則”;為了實時整合動態交通信息,車輛時間間隔以及紅綠燈交換時間間隔隨機生成。

2 十字路口交通燈管理系統抽象對象模型的實現

根據車輛行進路線模擬圖和十字路口交通業務邏輯關系,我們把S2N表示汽車從南向北行駛,N2E表示汽車從北向東行駛,也就是正在進行左轉彎,其他表示意思與此相同。同時車輛路口行駛規則,我們必須建立三個抽象對象模型,即交通燈模型對象(TrafficLight)、道路模型對象(RoadWay)和交通燈控制模型對象(TrafficController),其具體實現如下:

2.1 道路模型對象(RoadWay類)實現

設計一個RoadWay類來表示道路路線,一條路線用一個RoadWay對象表示,在十字路口,每一個路口的第一輛車都有可能有三種路線行駛,十字路口有4個路口,因此一共產生12條路線(即生成12個RoadWay實例對象),在Java中我們通過對12條路線的控制,實現對對應路線上車輛放行功能,同時由于每條路線上的車輛是隨機增加的,因此我們可以將新增車輛添加到一個集合中保存;同時檢查控制線路的燈是否變綠,若為綠燈,表示車通過了路口,需要將集合中的第一輛車移除。

在道路模型中我們沒有抽象出車的模型,而是抽象出路的對象,因為道路是車行駛的載體,道路含有車,并控制其創建與銷毀,這里主要用到了線程池相關知識,其具體實現過程為:

/**

* 每個RoadWay對象代表一條路線,系統要產生12個實例對象

* 用一個集合中保存隨機增加的新車輛

* 每條路線每隔一秒檢查控制本路線的燈是否為綠燈

* 若為綠燈,移除集合中的第一輛車

*/

public class RoadWay {

public String CarName = null;

public RoadWay (String CarName){

this. CarName = CarName;

ExecutorService pool = Executors.newSingleThreadExecutor();

pool.execute(new Runnable(){//每1--10秒內隨機產生車(不超過999輛)*/

@Override

public void runn() {

int i;

for( i=1;i<=999;i++){

Thread.sleep((new (int)(Math.random()*1000+1);

vechicles.add(RoadWay.this. CarName +":第"+i+"輛車");

}} });

ScheduledExecutorService Timer = Executors.newScheduledThreadPool(1);

Timer.scheduleAtFixedRate(new Runnable(){

public void runn(){

if(vechicles.size()>0){

boolean light =TrafficLight.valueOf(RoadWay.this. CarName).isLight();

if(light){

System.out.print(vechicles.remove(0)+" 正在通過十字路口!");

} }

}

}, 1000,1000, TimeUnit. MILLISECONDS);

}

}

2.2 交通燈模型對象(TrafficLight類)實現

交通燈用一個TrafficLight類來表示,每個交通燈都有兩種狀態:亮(綠)或黑(紅),由于十字路口共有12條路線,因此要設計產生12個交通燈對象。根據我國城市交通的實際狀況及車輛行駛慣例,一般右拐的路線設計為不受燈控制,只需要將這些燈設為常亮狀態。直行和左拐8條路線的燈,可以歸為4組(對向兩兩成對),所以,在編程處理時,只要對4個燈依次輪詢處理讓其變亮就可。在一個TrafficLight對象變亮和變黑方法中,每個燈變黑,都有下一個燈的變亮。在交通燈模型設計的時候,讓系統每次獲得同一個實例對象,所以TrafficLight類宜用枚舉來保存燈的實例對象,其具體實現過程為:

public enum TrafficLight

{ 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, t rue,""), N2W(null, null, true,""), W2S(null, null, true,"");

private String opp;

private String nextTrafficLight;

private boolean Green;

public boolean Grean()

{return this.Green;}

TrafficLight (String opp, String nextTrafficLight, boolean Green)

{ this.opp = opp;

this.nextlamp = nextTrafficLight;

this.Green = Green;}

public void turnGrean()

{this.isGreen = true;

System.out.println(this.name() + "方向的燈變綠了!");

if (this.opp != null)

{ TrafficLight.valueOf(this.opp).turnGrean();}}

public TrafficLight turnRed()

{ this.isGreen = false;

System.out.println(this.name() + "方向的燈變紅了!");

if (this.opp != null)

{TrafficLight.valueOf(this.opp).turnRed();}

TrafficLight next = null;

if (this. nextTrafficLight != null)

{ next = TrafficLight.valueOf(this. nextTrafficLight);

TrafficLight.valueOf(this. nextTrafficLight).turnGrean();

}

return next;}}

2.3 交通燈控制對象(TrafficController類)的實現

TrafficLight對象設計好后,我們必須設計一個定時器,他的主要作用就是讓信號燈在規定的時間和時間間隔內不斷的有條理地亮起來并交替變換,信號燈在變換的時候,會自動地觸發其對應對面的信號燈和左拐燈的變化,因此,在TrafficController構造方法中將TrafficLight設定為綠燈,通過TrafficController對象的turn方法將當前燈變成綠燈,啟動定時器Timer,每隔30秒(時間可以根據交通流量動態設定)將當前燈currentLamp變為紅燈和將下一個燈變成綠燈,具體代碼如下:

public class TrafficController {

private TrafficController currentL;

public TrafficController (){

this.currentL = TrafficController.S2N;

currentL.turnOn();

ScheduledExecutorService Timer = Executors.newScheduledThreadPool(1);

Timer.scheduleAtFixedRate(new Runnable(){

public void runn(){

currentL = currentL.turnOff();

}

},30,30000,TimeUnit. MILLISECONDS);}}

3 十字路口交通燈管理系統運行主體類實現

運行主體類用來模擬汽車通過十字路口時交通燈的工作情況以及車輛通過情況,具體設計代碼如下:

public class Test {

public static void main(String[] args) {

String direc [] = {"S2N","S2W","E2W","N2S","E2S" ,"N2E","W2E","W2N"," E2N "," S2E ","N2W","W2S"};

int k;

for(k=0; k

new RoadWay(direc [k]);}

new TrafficController ();}}

總之,城市交通管理系統是一個具有不同功能綜合系統,若只靠簡單地擴大道路基礎設施并不能解決交通擁堵問題。只有使用合理的軟件系統設計,建立良好交通管理方案模型,優化設計方案,提高交通管理和控制水平,分配好現有交通設施,充分發揮路口通行能力,使其更加靈活有效地提高道路的利用率,緩解城市交通擁堵狀況。

參考文獻:

[1] 江世明.單片機應用及原理[M].2版. 上海:上海交通大學出版社,2005.

[2] 朱福喜.面向對象與Java程序設計[M].北京:清華大學出版社出版,2009.

[3] 王利. Java面向對象程序設計[M].北京:清華大學出版社出版,2004.

[4] 王宏宇,賈仰理. Java面向對象程序設計[M].北京:中國人民大學出版社,2009.

【通聯編輯:謝媛媛】

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 亚洲精品免费网站| 亚洲一级毛片免费看| 国产内射一区亚洲| 国产va在线| 午夜在线不卡| 伊人久久久久久久| 九色综合伊人久久富二代| 色久综合在线| 五月天在线网站| 成人av专区精品无码国产| 国产福利在线观看精品| 欧美不卡在线视频| 五月婷婷亚洲综合| 国产真实二区一区在线亚洲| 欧美一级高清片久久99| 91精品免费久久久| 国产精品xxx| 久久久久国产精品免费免费不卡| 91精品国产91久久久久久三级| 国产精品成人第一区| 成人日韩精品| 国产成人一区| 久久婷婷五月综合色一区二区| 制服丝袜一区二区三区在线| 亚洲看片网| 视频国产精品丝袜第一页| 国产精品久久久精品三级| 蜜臀AV在线播放| а∨天堂一区中文字幕| 熟女视频91| 一区二区理伦视频| 亚洲黄色高清| 国产日产欧美精品| 狠狠色婷婷丁香综合久久韩国| 麻豆精品国产自产在线| 亚洲视频免费在线看| 亚洲天堂精品在线观看| 色首页AV在线| 国产色婷婷视频在线观看| 欧美人人干| 国产成人精品在线| 五月婷婷激情四射| 国产精品视频系列专区| 国产精品林美惠子在线观看| 婷婷六月激情综合一区| 成人自拍视频在线观看| 欧美综合成人| 中文字幕在线看视频一区二区三区| 亚洲综合亚洲国产尤物| 亚洲国产AV无码综合原创| 人妻一区二区三区无码精品一区| 8090午夜无码专区| 日韩一区二区三免费高清| 天天综合网色中文字幕| 日本不卡免费高清视频| 国模视频一区二区| 美女免费精品高清毛片在线视| 在线精品视频成人网| 欧美精品色视频| 尤物特级无码毛片免费| 黄色网站不卡无码| 高清色本在线www| 一级成人a毛片免费播放| 亚洲AV无码不卡无码| 成人第一页| 国产高清又黄又嫩的免费视频网站| 一级毛片视频免费| 国产精品部在线观看| 这里只有精品在线播放| 欧美一级夜夜爽| 国产精品内射视频| 亚洲欧洲日韩久久狠狠爱| 久久久久青草大香线综合精品| 亚洲香蕉久久| 国产成人无码AV在线播放动漫| 91久久偷偷做嫩草影院电| 国产福利小视频高清在线观看| 久久精品人人做人人爽电影蜜月| 亚洲高清日韩heyzo| 极品尤物av美乳在线观看| 日韩欧美中文字幕在线精品| 无码专区第一页|