<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            JDK5交通燈模擬控制系統

            時間:2024-10-11 20:52:38 JAVA認證 我要投稿
            • 相關推薦

            關于JDK5交通燈模擬控制系統

              為了方便廣大程序猿交流和學習,下面小編準備了關于JDK5交通燈模擬控制系統,歡迎大家參考!

              本系統由 Lamp.java , LampController.java , Road.java 和MainClass.java組成。

              Lamp.java :

              package com.isoftstone.interview.traffic;

              public enum Lamp {

              //前進 ,左拐 ,右拐

              S2N("N2S","S2W",false), S2W("N2E","E2W",false), S2E(null,null,true),

              E2W("W2E","E2S",false), E2S("W2N","S2N",false), E2N(null,null,true),

              N2S(null,null,false) , N2E(null,null,false), N2W(null,null,true),

              W2E(null,null,false) , W2N(null,null,false), W2S(null,null,true);

              String opposite;

              String next;

              boolean lighted;

              //構造函數:初始化當前燈

              private Lamp(String opposite,String next,boolean lighted){

              this.opposite = opposite;

              this.next = next;

              this.lighted = lighted;

              }

              //返回當前燈的狀態

              public boolean isLighted(){return lighted;}

              public void light(){

              this.lighted = true;

              if(opposite != null){

              Lamp.valueOf(opposite)。light();

              }

              System.out.println(name() + "is Green. Soon there will be cars crossed the street at six deractions.");

              }

              public Lamp blackout(){

              //關閉當前燈 : 設為false

              this.lighted = false;

              Lamp nextLamp = null;

              if(opposite != null){Lamp.valueOf(opposite)。blackout();}

              //檢查下一個燈并啟動它

              if(next != null){

              nextLamp = Lamp.valueOf(next);

              System.out.println(name() + " to the " + next + " 's light is Green.");

              nextLamp.light();

              }

              return nextLamp;

              }

              }

              LampController.java

              package com.isoftstone.interview.traffic;

              import java.util.concurrent.Executors;

              import java.util.concurrent.TimeUnit;

              public class LampController {

              private Lamp currentLamp;

              public LampController(){

              currentLamp = Lamp.S2N;

              currentLamp.light();

              //啟動一個線程 : 每十秒將當前燈設置為紅

              Executors.newScheduledThreadPool(1)。scheduleAtFixedRate(

              new Runnable() {

              public void run() {

              currentLamp = currentLamp.blackout();

              }

              },

              10,

              10,

              TimeUnit.SECONDS

              );

              }

              }

              Road.java

              package com.isoftstone.interview.traffic;

              import java.util.List;

              import java.util.ArrayList;

              import java.util.Random;

              import java.util.concurrent.Executors;

              import java.util.concurrent.TimeUnit;

              public class Road {

              private String name;

              private List vehicles = new ArrayList();

              public Road(String name){

              this.name = name;

              //模擬車輛不斷隨機上路的過程

              Executors.newSingleThreadExecutor()。execute(new Runnable() {

              public void run() {

              for(int i = 0 ; i < 1000 ;i++){

              try {

              Thread.sleep((new Random()。nextInt(10) + 1) * 1000);

              } catch (InterruptedException e) {

              e.printStackTrace();

              }

              vehicles.add(Road.this.name + "_" + i);

              }

              }

              });

              //每隔一秒檢查對應的燈是否為綠,如果是 ,則放行一輛車,具體操作為從vehicles集合中移除第一輛車。

              Executors.newScheduledThreadPool(1)。scheduleAtFixedRate(

              new Runnable() {

              public void run() {

              if(vehicles.size() > 0){

              if(Lamp.valueOf(Road.this.name)。isLighted()){

              System.out.println(vehicles.remove(0) + " is traversing");

              }

              }

              }

              },

              1,

              1,

              TimeUnit.SECONDS);

              }

              }

              最后在Main方法中啟動系統:public static void main(String[] args) {

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

              //模擬十二條方向的路線

              for(int i = 0 ; i < deractions.length; i++){

              new Road(deractions[i]);

              }

              //啟動交通燈控制器

              new LampController();

              }

            【JDK5交通燈模擬控制系統】相關文章:

            沙盤模擬的介紹10-19

            模擬主持實例08-18

            模擬主持的開場語-模擬主持注意事項07-06

            CorelDRAW認證模擬試題10-14

            小升初模擬試卷語文06-28

            小學小升初模擬試卷09-02

            美國CPA模擬試題10-22

            erp沙盤模擬的攻略05-28

            Java筆試模擬試卷10-18

            《經營與管理》模擬試題07-15

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看