黑马程序员技术交流社区

标题: 交通关灯管理系统优化 [打印本页]

作者: 何苦似梦离    时间: 2014-2-23 07:38
标题: 交通关灯管理系统优化
本帖最后由 何苦似梦离 于 2014-2-23 07:42 编辑

当时候,我脑袋都爆炸了,就因为那个什么N2W之类的方向,我干脆就用这种办法模拟,就是老张的那个7K面试题,我简化了一下,那个交通灯,他用一条路线对应一个灯,太费资源了 ,我用了3个灯,4条1个,4条1个,4条个(这是常绿的),然后,路的名称就我们自己输入进入就可以了,简单发一下灯,和MainClass代码灯代码:

  1. package cn.apple.Traffic;

  2. import java.util.concurrent.Executors;
  3. import java.util.concurrent.ScheduledExecutorService;
  4. import java.util.concurrent.TimeUnit;

  5. public class LampController
  6. {
  7.         private TrafficLamp currentLamp;
  8.         
  9.         public LampController()
  10.         {
  11.                 currentLamp = TrafficLamp.LAMP1;
  12.                 currentLamp.light();
  13.                
  14.                 ScheduledExecutorService timer = Executors.newScheduledThreadPool(1);
  15.                 timer.scheduleAtFixedRate(
  16.                                 new Runnable()                                //一个定时器,每隔10秒转换灯
  17.                                 {
  18.                                         @Override
  19.                                         public void run()
  20.                                         {
  21.                                                 currentLamp = currentLamp.blackOut();
  22.                                                 
  23.                                                 System.out.println(currentLamp+"转绿灯");
  24.                                         }
  25.                                        
  26.                                 },
  27.                                 10,
  28.                                 10,
  29.                                 TimeUnit.SECONDS);
  30.                
  31.                
  32.         }
  33. }
复制代码
MainClass代码:

  1. package cn.apple.Traffic;

  2. public class MainClass
  3. {

  4.         public static void main(String[] args)
  5.         {
  6.                 new Road("南到北","LAMP1");
  7.                 new Road("南到西","LAMP1");
  8.                 new Road("南到东","AFTENGREEN");
  9.                 new Road("北到南","LAMP1");
  10.                 new Road("北到西","AFTENGREEN");;
  11.                 new Road("北到东","LAMP1");
  12.                
  13.                
  14.                 new Road("西到东","LAMP2");
  15.                 new Road("西到北","LAMP2");
  16.                 new Road("西到南","AFTENGREEN");
  17.                 new Road("东到西","LAMP2");
  18.                 new Road("东到北","AFTENGREEN");
  19.                 new Road("东到南","LAMP2");
  20.                
  21.                
  22.                 new LampController();
  23.         }
复制代码





作者: e.c    时间: 2014-2-23 08:15
本帖最后由 e.c 于 2014-2-23 08:18 编辑

没看到楼主Lamp和Road的代码,所以不清楚具体情况。
南到北、南到西、北到南、北到东 这四条路全部由LAMP1这个灯控制。四条路的车同时可以开的吗?如果是,会撞车的。(南到北的车正开着,北到东的车也开着?)
西到东。。。。那四条路也同样。
作者: 何苦似梦离    时间: 2014-2-23 08:28
e.c 发表于 2014-2-23 08:15
没看到楼主Lamp和Road的代码,所以不清楚具体情况。
南到北、南到西、北到南、北到东 这四条路全部由LAMP1 ...

我们想象现实生活中,一旦绿灯有几条路可以走,南北两条,南西,北东,南东,北西,西南,东北,8条对吗.?这样吧,红灯了,有几条路没办法走.?4条对吗.?那就还剩8条可以走.
作者: e.c    时间: 2014-2-23 09:06
好像不是的。。。

未命名.jpg (22.7 KB, 下载次数: 20)

如图。北-东和南-北 方向的车可以同时开的?

如图。北-东和南-北 方向的车可以同时开的?

作者: e.c    时间: 2014-2-23 09:08
何苦似梦离 发表于 2014-2-23 08:28
我们想象现实生活中,一旦绿灯有几条路可以走,南北两条,南西,北东,南东,北西,西南,东北,8条对吗. ...

楼下有图
你看完了再看下图里的这两条道上的车可以同时通行吗?

作者: e.c    时间: 2014-2-23 09:11
我看N2S S2N也脑袋短路了,后来没办法。画了一张北南、西东的十字架图对着看。就很清晰了。
作者: e.c    时间: 2014-2-23 11:30
e.c 发表于 2014-2-23 09:06
好像不是的。。。

南-西的话,你别忘了北-南的车也正在开着。
作者: myzhang    时间: 2014-10-3 14:17
想法不错,支持




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2