程序题关于模拟十字路口的车辆通行情况的程序,用c++

关于模拟十字路口的车辆通行情况的程序,用c++(交通灯的变换,车辆的随机出现)可能有点抽象,给个思路就行,当然给出程序更好!

十字路口有四条支道,每道支道上停着等着开往其它三条支道的车辆,每一个时间片段内只允许一条支道上的车辆行驶。
程序整体框架设计上可以采取事件驱动方式比较简单,即程序的主循环体每执行一次表示经历了一个时间片段,在这段时间内要计算四条支道上又增加了几辆车,有几辆车离开了十字路口,注意每随机产生一辆车时至少要包括它在哪条支道上出现要开往哪条支道等,或者反过来在这个时间片断内某条支道上出现了几辆开往特定支道的车辆。
不清楚你要模拟到何种程度,车辆在过十字路的时间可否忽略不计?车辆排队的长度是否也要考虑?不会说要用图形界面形象地演示吧?
如果你的模型足够简单,十字路口被简化成两条相交的直线,那么你只需要一组简单的对象(如12个整型变量)足以表征状态!当然可以还需要几个变量用于统计历史数据。
然而现实世界是足够复杂的,举个简单的案例:某个支道上已经排了很长的车队,交通灯指示当前这个支道上的辆车可以通行了,等你前面的车都开过了十字路口,终于轮到你的时候,时间已到红灯已亮!更为复杂的是交通灯的控制为了避免这种情况可能就不是等时间间隔地轮换了。车辆开开停停不是匀速运动,这点你也该很清楚的。
另外提醒你“车辆的随机出现”,不要以为只有一种均匀分布的随机数产生方式!通过一些公式可以换算出泊松分布什么的...
记住这是一个很有意思的算法设计课题,不要受OOP思潮的毒害,动不动就想到类什么的,我们要关心的是框架设计和流程控制。把它当作是几何题来理解更是可笑至极!
程序流程上还可以设计得更复杂些,就是用多线程去模拟多辆车,用事件去模拟交通灯,如果你愿意程序可以采取时间驱动的方式运作,更为接近现实世界。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-01-29
存在这么几个类

场景
车辆
指示灯
规则

怎么发挥就看你了
第2个回答  2009-01-30
实际就是3维空间中曲面的函数问题.
如果是多叉路口,(包括十字路口)的交通灯状态控制,实际就是四色问题 .