关于JDK5交通灯模拟控制系统
为了方便广大程序猿交流和学习,下面小编准备了关于JDK5交通灯模拟控制系统,欢迎大家参考!
本系统由 , , 和组成。
:
package fic;
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){
site = opposite;
= next;
ted = lighted;
}
//返回当前灯的状态
public boolean isLighted(){return lighted;}
public void light(){
ted = true;
if(opposite != null){
eOf(opposite)。light();
}
tln(name() + "is Green. Soon there will be cars crossed the street at six deractions.");
}
public Lamp blackout(){
//关闭当前灯 : 设为false
ted = false;
Lamp nextLamp = null;
if(opposite != null){eOf(opposite)。blackout();}
//检查下一个灯并启动它
if(next != null){
nextLamp = eOf(next);
tln(name() + " to the " + next + " 's light is Green.");
t();
}
return nextLamp;
}
}
package fic;
import utors;
import Unit;
public class LampController {
private Lamp currentLamp;
public LampController(){
currentLamp = Lamp.S2N;
t();
//启动一个线程 : 每十秒将当前灯设置为红
cheduledThreadPool(1)。scheduleAtFixedRate(
new Runnable() {
public void run() {
currentLamp = kout();
}
},
10,
10,
NDS
);
}
}
package fic;
import ;
import yList;
import om;
import utors;
import Unit;
public class Road {
private String name;
private List
public Road(String name){
= name;
//模拟车辆不断随机上路的过程
ingleThreadExecutor()。execute(new Runnable() {
public void run() {
for(int i = 0 ; i < 1000 ;i++){
try {
p((new Random()。nextInt(10) + 1) * 1000);
} catch (InterruptedException e) {
tStackTrace();
}
( + "_" + i);
}
}
});
//每隔一秒检查对应的'灯是否为绿,如果是 ,则放行一辆车,具体操作为从vehicles集合中移除第一辆车。
cheduledThreadPool(1)。scheduleAtFixedRate(
new Runnable() {
public void run() {
if(() > 0){
if(eOf()。isLighted()){
tln(ve(0) + " is traversing");
}
}
}
},
1,
1,
NDS);
}
}
最后在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 < th; i++){
new Road(deractions[i]);
}
//启动交通灯控制器
new LampController();
}
-
SUN-Java认证考试题库
Sun认证Java程序员考试旨在考察通过应用软件分配进行复杂编程的能力。以下是小编整理的SUN_Java程序员认证考试题库,希望大家认真阅读!1.下列哪项不是JDK所包含的内容?(选一项)编程语言B.工具及工具的APIEE扩展API平台虚拟机2.下列关于JDK、JRE和JVM的描述。哪...
-
JAVA正则表达式语法大全
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。你知道Java正则表达式语法有哪些吗?跟yjbys小编一起来看看吧![正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^\d{...
-
JAVA认证基础知识:JSP使用数据库操作
在JSP中可以使用Java的JDBC技术,实现对数据库中表记录的查询、修改和删除等操作。JDBC技术在JSP开发中占有很重要的地位。JDBC(JavaDataBaseConnectivity)是Java数据库连接API.简单地说,JDBC能完成三件事:(1)与一个数据库建立连接,(2)向数据库发送SQL语句,(3)处理数...
-
Spring创建Bean过程的方法
1.beans包提供了以编程方式管理和操作bean的基本功能,而context包增加了ApplicationContext,它以一种更加面向框架的方式增强了BeanFactory的功能。2.context包的基础是位于ext包中的ApplicationContext接口。它是由BeanFactory接口派生而来的,提供了BeanFactory...