简单分析
1.要想模拟交通灯管理系统 起码得有车 有灯有路
2.我们可以这么做 生成车辆放在路上根据灯的状态 判断车是否还停留在这条路上
3.灯要怎么处理 其实就是给他一个初始状态 再弄个定时器 让灯不断变化就行
4.实体有两个路与灯
进一步分析
1.路类
------路类 要做两件事 就是生成汽车 有消除汽车 (其实就是汽车的增删) 其实就是路类中保存一个字符串数组 用于表示所有这条路上的汽车
-------路类中有个2个变量 一个是字符数组 一个是字符串 字符串是因为有12条路 你要怎么表示呢 用字符串表示到底是那条路
------路要做的是根据灯的状态 来执行车辆的增删
2.灯类(我们要做到的是灯不断的自动变换 要求是相对的灯的状态一样 相邻的灯状态不一样)
要想做到不断自动变换就要用到一个定时器 所以出现了灯的控制器 每10秒灯就变换一次
-----要想做到(生成车辆放在路上根据灯的状态 判断车是否还停留在这条路上)就要有判断灯是否是绿的这样的方法
-----有灯就有红绿 如果我变成了绿灯那么与我相对的也要变成绿灯 如果我变红灯 那么与我相对的也是红灯 但相邻的却是绿灯
-----所以灯类中有3个变量 灯的状态lighted 相对的灯opposite 下一个灯也就是相邻的灯next
-----还有 怎么表示下一个方向和相对方向呢 这时候就用的了枚举 只有12个实例 并给实例赋初值 S2N("N2S", "S2W", false) 参数表示相对的相邻的 是否绿灯
3.测试类主类
----要做的是1.生成12条路 (模拟一个十字路口)2.调用灯的控制器 让灯不断变换
-----这样就做到了12条路不断产生车辆 又根据的灯的状态不断的消除车辆(路类做的事)
-----灯是怎么不断变换的呢 付一个初始值比如s2n灯亮着 过10秒后调用灯灭的方法 而灯灭的方法返回的是此灯的下一个灯
过10秒再调用下一个灯的灯灭方法 这样就可以循环下去了
|
|