黑马日记——交通灯管理系统
来源:互联网 发布:电子狗通用升级数据 编辑:程序博客网 时间:2024/06/09 04:22
---------------------- andro培训 、java培训、期待与您交流!----------------------
一、交通灯设计思路图:
二、设计思路描述
1,对象:路线,信号灯,车。
2,对象对应关系:车在路上行驶,即路为存储车的一个集合,本题可以将车辆定义在路的内部,以随机出现的方式来安排车辆。共有12条路线,每条路线上对应一个灯,灯包括放行与停止放行(即红灯停,路灯行)。当该路线上的灯为放行时,便从路上除去一辆车,可以将路线定义为集合,因为车辆是有序排列,所以可以定义为ArrayList集合。灯与对应的路线是绑定关系。所以对应有12盏灯,灯与灯之间有一定关联,需要一个控制器来控制灯的放行与不放行,所以需要额外定义一个灯控制类。
三、关于信号灯的深入研究
1,信号灯共有12个分别与相应的路线绑定,他们之间有一定的制约关系:
可同时放行的灯有:组1(S-N与N-S)、组2(S-W与N-E)、组3(E-W与W-E)、组4(E-S与W-N)。
需要的先后顺序为:组1——》组2——》组3——》组4。
每个方向上右转的路线均设置为一直放行,所以四条路线(N-W、W-S、S-E、E-N)不受制约。
由上述分析可知,上述4组路线相互制约,也就是控制其中4盏需要先后顺序的灯按如上顺序放行与不放行即可。
四盏灯规律:如一盏灯为放行,那么它对应的灯也为放行。如果状态为不放行,那么对应的灯也为不放行。
四、关于信号灯控制器的深入研究
信号灯控制器用于控制灯放行的先后顺序,也就是:组1——》组2——》组3——》组4。
首先应为信号灯设置初始值,以组1最先放行为例,隔10秒后组1停止放行,组2开始放行,以此类推,组4停止后继续执行组1。
五、信号灯的定义
根据上述分析,信号灯需要在构造时接受三个参数:对应的灯,下一个要放行的灯,灯的当前状态。
信号灯需要对外提供两个方法:自身放行时对应的灯也要放行;自身停止放行时,对应灯也停止放行,并且使下一组灯放行。
六、有关路线的深入研究
车辆在路上行驶,将车定义在路线的内部,每辆车为单独的线程,10秒内随机出现车辆加入路线中,车辆经过路口的时间为1秒,所以每隔一秒钟检查一次放行的情况,如果为放行状态,则在该路线的集合上移除第一辆车。
七、JDK5线程Executors类
该类定义了新的线程调用形式,以及一些其他的体系共同添加了有关多线程、线程池等的新型用法,新的方式较传统方式效率上略有提高。
---------------------- andro培训 、java培训、期待与您交流!----------------------
- 黑马日记——交通灯管理系统
- 黑马程序员——学习日记23 交通灯管理系统
- 黑马程序员--【学习日记十】——交通灯管理系统
- 黑马程序员交通灯管理系统学习日记
- 黑马程序员-交通灯管理系统学习日记
- 黑马程序员————学习日记【15】 【交通灯管理系统】
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 黑马程序员——交通灯管理系统
- 10-2 继承与派生应用(CPerson类)
- 面向程序员的数据库访问性能优化法则
- report builder3.0的基本文档
- VSFTP - 下载,安装,配置,卸载
- PHP常用函数大全【不段更新】
- 黑马日记——交通灯管理系统
- Android将应用程序指定默认语言 .
- JDBC的一些知识的总结
- 由一个日期, 怎样知道是星期几?
- web server和application server到底有什么区别?
- 运用Autoconf和Automake生成Makefile的学习之路
- “SecurityError: Error #2060: 安全沙箱冲突:ExternalInterface 调用者xxx不能访问xxx
- 获取Android应用程序出错信息并将信息发送到指定邮件 .
- linux目录结构