面向对象大作业

面向对象留大作业了,具体如下,期末前交,先贴上具体要求,写完后贴代码

用面向对象方法和面向对象程序设计语言,实现满足下述要求的一个高速公路客运活动仿真程序。  
 
问题域概述  
 
西安市到宝鸡市之间是我省主要的高速公路客运路线之一,经过简化后的客运路线端点、中途停靠点和里程如下图所示(括号里是简称,里程的单位是公里):     
 
宝鸡( bj )-- > 虢镇( GZ)--> 蔡家坡( CP)--> 武功( WG)--> 兴平( XP )-- > 咸阳( XY )-- > 西安( XA  
 
限定条件  
 
1 XN 始发至 BJ 的客车和从 BJ 始发至 XN 的客车均有两种车型:沃尔沃(限定乘客人数为 40 人);依维柯(限定乘客人数为 21 人)。沃尔沃的速度为 2 公里 / 分钟,依维柯的速度为 1.4 公里 / 分钟。  
 
2 起始状态时, XN 拥有沃尔沃和依维柯客车分别为 5 12 辆, BJ 拥有沃尔沃和依维柯客车分别为 4 15 辆。  
 
3 XN BJ 和从 BJ XN 的沃尔沃,均为上午 8:30 开始,每小时一班,最后一班为下午 5:30 ;从 XN BJ 和从 BJ XN 的依维柯,均为上午 8:00 开始,每 20 分钟一班,最后一班为下午 6:00  
 
4 XN BJ 的客车到达 BJ 后,即成为从 BJ XN 的客车,排在当时 BJ 同类车型的队尾,再按( 3 )确定发车时间;从 BJ XN 的客车到达 XN 后的规则相同。  
 
5 只考虑途中只有乘客下车、没有乘客上车的情况。  
 
6 有乘客下车时,不论方向与车型,停车时间统一为 2 分钟。  
 
7 乘坐从 XN BJ 客车的乘客,其下车点为 XY XP WG CP GZ BJ 的可能性分别为 P_XBXY P_XBXP P_XBWG P_XBCP P_XBGZ P_XBBJ 。这些可能性之和为 1 ;乘坐从 BJ XN 客车的乘客,其下车点为 GZ CP WG XP XY XN 的可能性分别为 P_BXGZ P_BXCP P_BXWG P_BXXP P_BXXY P_BXXN 。这些可能性之和为 1  
 
须仿真的客运活动  
 
1 从上午 7:30 开始到下午 5:59 为止,每分钟分别在 XN BJ 随机产生去往 BJ XN 方向的新到达的乘客。每分钟达到的人数范围为 0~5 人。  
 
2 按照限定条件( 7 )的规定,随机产生新到达的乘客的目的地。  
 
3 乘客按到达的先后顺序上最近一辆(依照限定条件( 3 )的规定)始发的客车,若该车客满则等候下一辆始发的客车。  
 
4 若客车到达中途停靠站时有乘客在此下车,按限定条件( 5 )和( 6 )处理,否则不停车继续行驶。  
 
仿真时的可变参数  
 
确定乘客目的地的可能性 P_XBXY P_XBXP P_XBWG P_XBCP P_XBGZ P_XBBJ ,以及 P_BXGZ P_BXCP P_BXWG P_BXXP P_BXXY P_BXXN 。应注意乘客去往远一些的目的地的可能性,通常大于去往近一些的目的地的可能性。  
 
开发结果的行为特征  
 
1 所仿真的实际客运活动每 1 分钟改变一次所有相关对象的状态。实际仿真时,可用机器时间的 1 秒钟对应于实际客运活动时间的 1 分钟。  
 
2 有简单的界面,以体现:  
  •
客运活动的当前时刻(如 上午 10:02” );  
  • XN
BJ 当前站内的客车(应有车型和编号)和等车乘客人数;  
  •
正在高速公路上行驶的客车的车型和编号;  
  •
正在高速公路上的客车的当前乘客人数和当前位置。如果用数据而不是用图形表示,应给出相对于上次停靠站的位置参数,如:从 BJ XN 时的 蔡家坡以东 3 公里 ,从 XN BJ 时的 咸阳以西 10 公里 ,无论那个方向,正在停车下人时的 武功站 ,等等。  
 
注意能说明问题即可,切忌把主要精力放在界面上而忽视了实质问题。  
 
提示  
 
由于目前多数同学还没有学习过多进程或多线程的实现技术,因此面临的问题是:既要计时,又要改变相关对象的状态,还要展示出当前所有对象的相关状态。建议大家想象一下动画片的原理:将多个固定和静止的画面定时、按顺序地放映出来,就变成了活动的画面。所以,可以在程序中定义一个主循环,在该循环外进行必要的初始化,进入后每秒钟执行一次,以遍历方式一一激励当前已经产生的对象,由它们根据自己的当前状态和相关的状态变化规则,决定是否需要改变、改变成什么样的下状态,以及按照上述行为特征的设计展示必要的对象状态。这样,就可以用串行方式模拟并发的活动了。  
 
另外,乘客到达的概率本应服从泊松分布,但目前语言直接提供的伪随机数产生函数是服从均匀分布的,因此可以简化成均匀分布。  
 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值