c语言加油站仿真实验报告,c程序队列实现模拟加油站研讨.ppt

c程序队列实现模拟加油站研讨

3 程序调试结果 模拟加油站的工作情况dt > g/2 Time=12 dt=3 12÷3= 4组数据 “ 谢 谢 ” 三枚铜钱94keyboard 制作文档 标准字体 渐变色母板 * 金属字效果与倒影效果 * 金属字效果与倒影效果 * 金属字效果与倒影效果 * 金属字效果与倒影效果 * 结束 * 信软件基础实训答辩 3 选题:模拟加油站的工作情况 小组成员:三枚铜钱94keyboard 时间:2015/5/5 通 模拟加油站的工作情况 √ 加油站有 两台油泵; √ 每台油泵为一辆汽车加油的时间为 d分钟; √ 加油站的到车率为 1辆/g分钟; √ 模拟时间长度为 time分钟; 1 分析问题 2 确定框架 3 实现程序 1 分析问题 1、看是否有车来到(概率决定) 2、若有车再看是否有空闲的油泵 3、若有空闲油泵立即加油,否则排队等待 4、若泵工作忙(未达到加油时间),则时间递减等待 5、时间递减后若为0,将泵置为空闲 1 分析问题 我们要做什么 1 方案思路 模型 油泵1 油泵2 出口 出口 汽车入口 排队 第一段路 第二段路 第三段路 等待可服务 1 分析问题 日常生活中该类模型,是队列应用的典型例子。以加油站为例,假设某加油站有 两台油泵,每台油泵的加油时间为 d分钟,若已知该站的到车率为 g分钟一辆,则该加油站的工作情况可用以下列队模型描述。    定义一个循环队列,容量为MAX(足够大,不发生队列满的问题),用于组织等待加油的汽车序列。按照先到先加油的原则进行处理;整个模拟过程内的时间为 time,每隔 dt分钟监控一次,获取并输出实际情况。    出事状态设为:队列为空(front=rear=MAX),每台油泵为空闲(pump(1)=pump(2)=0),油泵未服务过(auto(1)=auto(2)=-1)。    if(rear+1>MAX) then rear=1; else rear+=1; time queue time queue · · · · · · dt 条件:ωs>= 2ωm 即 dt <= g/2 在模拟时间time内,每隔dt时间,监控并报告一次车排队的情况,油泵的工作状态,被服务的车。 因此用一维整型数组Queue[ ] 存取 车编号num的数据。 量化后 数字信号 模拟信号 整个问题可分为三部分:    1) 汽车排队:已知一分钟来一辆车的概率为 1/g,则每隔 dt分钟来一辆车的概率为 dt/g。由于来车的问题是随机的,因此,实际处理时,每隔t分钟产生一个随机数 rnd (0-1内),若它小于等于 dt/g,则认定有一辆车进站,应将它加入队列中。    2) 油泵工作状态:用pump(i)表示第 i(i=1,2)每台油泵工作进程,用 auto(i)表示第 i台油泵的服务对象。则当第 i台油泵开始为一辆车工作时,置 pump(i)=d-dt,以后每 dt分钟,令pump(i)=pump(i)-dt。若 pump(i)<0,说明第i台已完成加油工作,可以继续为下一辆车服务,因此,应从队列中取出一个元素继续处理;若队列为空,置 pump(i)=0,表示空状态。    3) 监控结果输出:每隔dt分钟输出一次汽车队列现状和每台油泵的工作状态,输出空闲状态。   当auto(i)= -1时,表示油泵 i尚未工作过; 当auto(i)>0时,若pump(i)>0表示油泵 i正在为 auto(i)加油; 若pump(i)<=0表示油泵i空闲;若pump(i)>0表示油泵i 所余时间才能加完油; 若pump(i)<0表示油泵i刚为 auto(i)加完油; 若pump(i)=0表示油泵i已经为 auto(i)加完油。 排队Queue[ ] rear front 尾指针将新元素插入队中 头指针将等待的元素 对应服务油泵 1 2 3 4 5 6 MAX front rear 2 确定框架 第一步 模拟概率 第二步 模拟排队 第三步 模拟加油 第四步 采样报告 2 确定框架 开始 建立循环队列,设置油泵 从未服务过且初始状态空闲 调用函数simu_aut 模拟车排队;尾指针 插入新元素到队列 有车来rear+=1; t < Time? 是 否 报告一次采样 监控结果 从油泵1开始依次查找可以 服务的油泵,找到可服务的 油泵front+=1;对应到相应 油泵。每查找一次加油时间 减去dt 随机数模拟dt内 车是否到来 t=t+dt 结束 车 若到达排队rear+=1 front=rear则油泵2置为空闲 否则油泵2服务front+=1; 油泵2加油时间T= d-dt 油泵1空闲 ? 是 否 继续排队 油泵服务的front的车 油泵front+=1; 油泵1加油

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值