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交通燈模擬控制系統

        時間: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交通燈模擬控制系統.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        资深写手 • 1对1服务

        文章代写服务

        品质保证、原创高效、量身定制满足您的需求

        点击体验

        【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

        文章
        代写

        文章代写服务

        资深写手 · 帮您写文章

        品质保证、原创高效、量身定制满足您的需求

        点击体验
        ai帮你写文章
        一键生成 高质量 不重复
        微信扫码,即可体验
        国产高潮无套免费视频_久久九九兔免费精品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>

            1. 關于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();

                }