1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. JDK5交通燈模擬控制系統(tǒng)

        時(shí)間:2020-10-05 15:37:12 JAVA認(rèn)證 我要投稿

        關(guān)于JDK5交通燈模擬控制系統(tǒng)

          為了方便廣大程序猿交流和學(xué)習(xí),下面小編準(zhǔn)備了關(guān)于JDK5交通燈模擬控制系統(tǒng),歡迎大家參考!

          本系統(tǒng)由 Lamp.java , LampController.java , Road.java 和MainClass.java組成。

          Lamp.java :

          package com.isoftstone.interview.traffic;

          public enum Lamp {

          //前進(jìn) ,左拐 ,右拐

          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;

          //構(gòu)造函數(shù):初始化當(dāng)前燈

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

          this.opposite = opposite;

          this.next = next;

          this.lighted = lighted;

          }

          //返回當(dāng)前燈的.狀態(tài)

          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(){

          //關(guān)閉當(dāng)前燈 : 設(shè)為false

          this.lighted = false;

          Lamp nextLamp = null;

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

          //檢查下一個(gè)燈并啟動(dòng)它

          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();

          //啟動(dòng)一個(gè)線程 : 每十秒將當(dāng)前燈設(shè)置為紅

          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;

          //模擬車輛不斷隨機(jī)上路的過(guò)程

          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);

          }

          }

          });

          //每隔一秒檢查對(duì)應(yīng)的燈是否為綠,如果是 ,則放行一輛車,具體操作為從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方法中啟動(dòng)系統(tǒng):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]);

          }

          //啟動(dòng)交通燈控制器

          new LampController();

          }

        【關(guān)于JDK5交通燈模擬控制系統(tǒng)】相關(guān)文章:

        EDA的交通燈控制系統(tǒng)設(shè)計(jì)06-04

        關(guān)于專升本填報(bào)志愿模擬演練06-28

        數(shù)控機(jī)床控制系統(tǒng)故障診斷技巧11-14

        關(guān)于沙盤模擬的重要性解析05-16

        單斗液壓挖掘機(jī)分工況節(jié)能控制系統(tǒng)10-18

        關(guān)于司法考試模擬試題及答案解析08-30

        關(guān)于臨床執(zhí)業(yè)醫(yī)師筆試模擬試題及答案09-26

        關(guān)于執(zhí)業(yè)醫(yī)師綜合筆試模擬試題及答案08-31

        CorelDRAW認(rèn)證模擬試題11-15

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>