欢迎进入湖南华创照明电器有限公司,我们竭诚为您服务!
数字化系统

首页 > 产品展示 > 数字化系统

传感器传输系统、交通灯管理系统

在线订购
产品详情

一、需求分析。


在进行设计之前我们需要了解具体的十字路口交通规则:1、红灯停绿灯行。2、对于十字路口的四个路口而言,“向右转弯”始终是允许的即该方向始终保持绿灯。3、在十字路口处可以有12条行车路线可以选择(如下图所示),其中可以分为5组,每一组中的一条路线是可行的则表示改组中的其他路线也是可行的。


二、系统设计。


1、  对象分析:系统中可以抽象出的对象为:路、红绿灯和灯控制系统。(在面向对象的分析过程中拥有数据的对象提供操作数据的方法)


2、  对象设计:


1)      路:


每条路线上会出现多辆车,路就是一个集合,路线上要随机增加新的车,当在灯绿期间车通过路口需要一秒,即路集合中每秒减少一辆车,并返回减少车的名字。使用Road类表示路线,每个Road对象代表一个路线,前面已经分析了需要12条路线,即系统中要产生12个Road实例对象。


2)      红绿灯:


每条路线每隔一秒都会检查控制本路线的灯是否为绿,一个灯由绿变红时,应该将下一个方向的灯变绿。设计一个Lamp类来表示一个交通灯,每个交通灯都维护一个状态:亮(绿),不亮(红),每个交通灯要有变亮和变不亮的方法,并且能返回自己的状态。


总共有12条路线,所以,系统中总共要产生12个交通灯。右拐弯的路线本来不受灯的控制,但是为了让程序采用统一的处理方式,故假设出有四个右拐弯的灯,只是这些灯为常亮状态。除了右拐弯方向的其他8条路线的灯,它们是两两成对的,可以归为4组,所以,在编程处理时,只要从这4组中各取出一个灯,对这4个灯依次变亮,与这4个灯方向对应的灯则随之一同变化,因此Lamp类中要有一个变量来记住自己相反方向的灯对象,在一个Lamp对象的变亮和变黑方法中,将对应方向的灯也变亮和变黑。每个灯变黑时,都伴随者下一个灯的变亮,Lamp类中还应该有一个变量来记住自己的下一个灯对象。


无论在程序的什么地方去获得某个方向的灯时,每次获得的都是同一个实例对象,所以Lamp类改用枚举来做显然具有很大的方便性,永远都只有代表12个方向的灯的实例对象。


3)      灯控制系统:设计一个LampController类,它定时让当前的绿灯变红。


三、系统实现。


1、  Road类设计与实现。


相关标签:
热荐产品