黑马程序员---交通灯管理系统 学习笔记

原创 2012年03月21日 04:26:49
---------------------- android培训java培训、期待与您交流! ----------------------

交通灯管理系统:

1. 思路分析

          <1>. 路线与向分析: 总共有12条路线;  每一条直行路线都有直行方向, 左转方向, 右转方向; 每条直行方向都是先放行直行车辆, 再放行左转车辆, 右转车辆不受限制, 可以一直行驶; 先确定任意一条直行路线, 其对面的红绿灯状态和它一致, 故对面的可以不用考虑, 再出去右转车辆, 现在只剩下4条路线有逻辑 ; 假设从南到北开始, 只需考虑南到北, 南左转西, 东向西, 东左转南;(因此可以设计12个方向, 其中四个方向为主体逻辑)

          <2>. 交通灯转换分析: 假设以南到北为初始方向, 当南到北为绿灯,其对面的行驶方向也必须是绿灯,而每条直行方向上的右转方向由于不受限制, 我们可以假设它都是绿灯, 这样在任意时刻就总是有6个绿灯, 6个红灯; 当南到北为绿灯后, 假设10秒后该方向切换为红灯, 那么此时南左转西方向则为绿灯, 再10秒后轮到东到西方向为绿灯, 然后再是东左转南, 最后回到南到北为绿灯的状态, 如此循环每条路线上就绿灯10秒, 红灯30秒; (可以设计一个控制红绿灯交换的类, 当本方向为绿灯时, 10秒后下一个方向即变为绿灯,而且它对面方向也是绿灯状态,应该打印出每条处于绿灯状态的方向, 这样更明确)

          <3>. 车辆行驶分析: 假设每个方向的路上初始化有100辆车, 每辆车通过路口耗时1秒, 理论上,每一个处于绿灯(假设为10秒)状态的方向的路应该通过10辆车, 但是注意: 车辆是随机产生的, 一个处于绿灯方向上的路可能有车通过, 也可能没有, 也可能一开始没有车,但是中间来了车, 因此让每条路上的车辆随机产生, 不能固定

2.逻辑方面要求::

         <1>. 异步随机生成按照各个方向行驶的车辆

         <2>.信号灯忽略黄灯,只考虑红灯和绿灯; 左转车辆受信号灯控制, 右转不受控制; 具体逻辑和现实生活一致, 不考虑特殊情况; 同方向车辆先放直行, 再放行左转车辆,

         <3>. 每辆车通过路口时间为1秒, (可用sleep方式模拟)

         <4>. 随机生成车辆时间和红绿灯交换时间均可以自定义设置;

    

    3. 实现代码部分:

          <1>.Lamp类------每个Lamp元素代表一个方向上的灯,总共有12个方向,所有总共有12个Lamp元素.有如下一些方向上的灯,每两个形成一组,一组灯同时变绿或变红,所以, *程序代码只需要控制每组灯中的一个灯即可:

              /*每个枚举元素各表示一个方向的控制灯*/ 
             S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","E2S",false),E2S("W2N","S2N",false),
             /*下面元素表示与上面的元素的相反方向的灯,它们的“相反方向灯”和“下一个灯”应忽略不计*/
             N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false),
             /*由南向东和由西向北等右拐弯的灯不受红绿灯的控制,所以,可以假想它们总是绿灯*/
             S2E(null,null,true),E2N(null,null,true),N2W(null,null,true),W2S(null,null,true);
 
             private Lamp(String opposite,String next,boolean lighted){
                         this.opposite = opposite;
                         this.next = next;
                         this.lighted = lighted;
            }

            / **
             * 某个灯变绿时,它对应方向的灯也要变绿
             */ 
            public void light(){
                        this.lighted = true;
                        if(opposite != null){
                               Lamp.valueOf(opposite).light();
                        }
                      System.out.println(name() + " lamp is green,下面总共应该有6个方向能看到汽车穿过");
            }

看过了张老师的交通等管理系统的视频后, 自己在逻辑方面还是有些欠缺, 张老师所讲的能听懂,所写的代码, 也还可以看懂, 但是写不出来, 对基础知识还要进行加强, 理解知识不够全面,张老师所讲的可以听懂, 证明还是有很大进步的, 就是对知识的运用来解决现实的问题上的能力不够, 长老师的课讲的很清晰, 而且所用的例子也非常的突出,可以用知识和现实的事物完美的联系起来传授给我们这些后辈.长老师是个好前辈!

 

---------------------- android培训java培训、期待与您交流! ----------------------

相关文章推荐

黑马程序员-java学习笔记之交通灯管理系统

------- android培训、java培训、期待与您交流!------- 1.需求 模拟实现十字路口的交通灯管理系统逻辑,具体需求如下: 异步随机生成按照各个路线行驶的车辆。 例如: 由南向...

黑马程序员----【张孝祥7K面试题】一交通灯管理系统视频学习笔记

------- android培训、java培训、期待与您交流! ---------- 一、需求: 1,模拟实现十字路口的交通灯管理系统逻辑,异步随机生成按照各个路线行驶的车辆。 例如:    ...

黑马程序员_java学习笔记14—交通灯管理系统

------- android培训、java培训、期待与您交流! ---------- 交通灯管理系统 一、交通灯管理系统逻辑需求分析 1、异步随机生成按照各个路线行驶的车辆...

黑马程序员——交通灯管理系统学习笔记

------- android培训、java培训、期待与您交流! ---------- 交通灯管理系统学习笔记 模拟实现十字路口的交通灯管理系统逻辑,具体需求如下:  异步随机生成按照各个路线行...

黑马程序员-交通灯管理系统学习笔记

---------------------- android培训、java培训、期待与您交流! -------------------- 谁拥有数据,谁就拥有对外提供操作这些数据的方法。刚开...

黑马程序员_交通灯管理系统学习笔记

------- android培训、java培训、期待与您交流! ----------         要做好交通灯管理系统这个项目,首要的是联系生活经验,在脑海里模拟系统需要实现的功能。其次...

黑马程序员学习笔记九——交通灯管理系统

----------------------android培训、java培训、期待与您交流! ---------------------- 交通灯管理系统 首先简单思考下,该怎么创建对象。...

黑马程序员 java学习笔记——交通灯管理系统

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------...

黑马程序员-10-交通灯管理系统笔记

------- android培训、java培训、期待与您交流! ----------

黑马程序员 交通灯管理系统笔记总结

----------android培训、java培训、java学习型技术博客、期待与您交流! ------------ 交通灯管理系统 题目: 模拟实现十字路口的交通灯管理系统逻辑,具体...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员---交通灯管理系统 学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)