您的位置:首页 > 其它

——交通灯管理系统

2014-08-08 13:25 211 查看


---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

交通灯关系系统项目需求:

一,异步随机生成按照各个路线行驶的车辆。

例如:

由南向北的车辆----直行车辆

由西向南的车辆----右转车辆

由东向南的车辆---左转车辆

二,信号灯忽略黄灯,只考虑红灯和绿灯。

三,左转的车辆要受交通灯控制,右转车辆不受信号灯控制。

四,信号灯的控制逻辑和现实 现实中的交通灯控制逻辑相同,不考虑特殊情况下的控制逻辑。

注:南北向的车辆与东西向的车辆交替放行,同方向等待的车辆应先放行直行车辆,然后再放行左转车辆。

五,每辆车通过路口的时间为1秒。

六,随机生成车辆,及定时改变交通灯状态。

需求分析和设计

首先,分析路口中车辆行驶的方向,用以下的图例来描述各个车辆的行驶方向:



上图是演示的一个十字路口,并有12个行驶方向。

一,东南西北直行方向的同时,汽车还可以向左转;即相对的方向有两个行驶方向;

那么四个方向就有了8条行驶方向。

二,由于汽车始终可以向右行驶,所以又转的交通灯始终为绿。此处就有4条行驶方向。

经过以上分析,抽象出以下几个类:路,交通灯,汽车,交通灯控制器。

对类的设计

汽车的设计:

一,汽车的主要操作是添加到路中,或者绿灯时移除出路。所以只要用一个随机数来描述汽车就可以了。

路的设计:

一,路上的汽车是有多个的,所以要用集合来接收汽车。

二,路上的汽车是随机出现的,所以要程序在随机的时间增加一辆车。

三,如果路灯为绿时,则在绿灯时间内,将第一辆车移出。

四,因为交通灯是每个一定时间就改变的,所以路也要有一个功能,在每个一定时间久检查交通灯的,车辆是否可行驶。

灯的设计:

注:此处忽略黄灯,因为黄灯是红灯和绿灯之间转换的一个缓冲,所以忽略也不会对系统有影响。

一,因为有12个行驶方向,所以就要有12个对应方法的灯。

二,每一个等都只能有一个,而不是每一次new都是一个新的,所以灯的类型设计为枚举,保证唯一。

三,灯都要有是否是亮的,所以灯要有一个属性来描述状态:(亮(绿灯)或不亮(红灯)),还要有一个亮灯的方法,一个灭灯的方法。

四,由于向右行驶的方向总是可以行驶的,是不受控制的,但为了统一处理方式,就假设出4个右转的灯,

并将这些灯设置为总是可以通行的。

五,其他8个方向中,都是相对出现的,所以只要控制4组灯就可以了,而每一组灯都是相对应的灯,所以只要用4个灯控制就可以了。

当前灯和对应灯亮,时间过之后呢,当前灯灭,下一个灯亮。依次这样执行。

灯的控制器的设计:

一,控制器要控制灯,所以控制器一有一个灯的属性,通过它类控制灯。

二,因为控制器是每个一定的时间才去改变的灯的,所以灯要有一个定时器。

类的编码:

路的代码:

一,增加车辆;

二,定时检查交通灯的情况;

三,绿灯时,移出车辆。

灯的代码:

一,灯的状态;

二,亮灯的方法;

三,灭灯的方法。

交通灯控制器的代码:

一,每隔一定时间,改变交通灯的状态。

测试类的代码:

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: