计算机软件技术基础_第1页
计算机软件技术基础_第2页
计算机软件技术基础_第3页
计算机软件技术基础_第4页
计算机软件技术基础_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机软件技术基础计算机软件技术基础实验实验1 1 加油站模型加油站模型物理电子学院物理电子学院2.2.3 2.2.3 队列及应用队列及应用- -循环队列应用循环队列应用(3)汽车加油站的工作模拟 汽车加油站有两台油泵,每台油泵为一辆汽车加油的时间为d分钟。该加油站的到车率为1辆/g分钟分析:A. 首先,用一个容量为m的循环队列来组织等待加油的汽车,并对到达加油站的汽车按先后顺序用自然数给予编号。假设循环队列的存储空间用一维数组cq(1:m)模拟,初始状态为rear=front=m,并假定该循环队列不会发生队列满的情况。新浪、腾讯课程微博:UESTC算法课程2/502.2.3 2.2.3 队列

2、及应用队列及应用- -循环队列应用循环队列应用B. 其次,假设模拟的时间长度为time分钟,并用时间步长法进行模拟,取采样时间间隔为dt,即每隔dt分钟对汽车加油站的工作情况测试一次,同时输出汽车排队的情况及每台油泵的工作情况。根据问题,可以分为汽车排队、油泵工作、结果输出需要三个子模块;新浪、腾讯课程微博:UESTC算法课程3/502.2.3 2.2.3 队列及应用队列及应用- -循环队列应用循环队列应用(1)模拟汽车排队l一分钟来一辆车的概率为1/g。在采样时间间隔dt分钟内来一辆车的概率为dt/g。要求采样的时间间隔dtg。l在实际模拟时,每隔dt分钟(即每次采样测试时)产生一个0到1之

3、间均匀分布的随机数rnd。若rnddt/g,则认为有一辆车到达,并将它编号,加入到循环队列中。新浪、腾讯课程微博:UESTC算法课程4/502.2.3 2.2.3 队列及应用队列及应用- -循环队列应用循环队列应用模拟汽车排队模块templatevoid simuauto(sq_Quene &cq,int &num,double dt, double g,double rnd) /满足概率条件时,来一辆汽车满足概率条件时,来一辆汽车 if (rad=dt/g) +num; cq.ins_sq_Quene(num); 新浪、腾讯课程微博:UESTC算法课程5/502.2.3 2.

4、2.3 队列及应用队列及应用- -循环队列应用循环队列应用(2)模拟油泵工作l用标志flag(i)表示第i(i=1,2)台油泵的工作进程,aut(i)表示第i台油泵服务的对象(即汽车的编号)。l当第i台油泵开始为一辆车加油服务时,置工作进程标志为flag(i)=ddt;以后每经过dt分钟,令flag(i)=flag(i)dt。l当flag(i)0时,说明第i台油泵刚完成对一辆汽车的加油服务,有可以从循环队列的排头取出一辆汽车进行服务。若此时队列为空,则置油泵为空闲状态,即置flag(i)=0新浪、腾讯课程微博:UESTC算法课程6/502.2.3 2.2.3 队列及应用队列及应用- -循环队列

5、应用循环队列应用templatevoid simupump(sq_Quene &cq,double dt, double d, double flag, int aut,int i) int n; /刚完成一辆汽车加油服务刚完成一辆汽车加油服务 if (flagi-1=0) n=cq.del_sq_Quene(); if(n=0) flagi-1=0; /没有排队的汽车了,已经完成服务没有排队的汽车了,已经完成服务 else auti-1=n; /取出正在排队的第取出正在排队的第n辆汽车辆汽车 flagi-1=d-dt; /开始加油工作开始加油工作 /还在服务还在服务,减去取样时间减去

6、取样时间 else flagi-1-=dt 新浪、腾讯课程微博:UESTC算法课程7/502.2.3 2.2.3 队列及应用队列及应用- -循环队列应用循环队列应用(3)输出结果 每隔dt分钟将汽车队列的情况以及每台油泵的工作情况的模拟结果打印输出。在输出结果中,分以下两种情况:当aut(i)0时: 若flag(i)0,则aut(i)值为油泵i正在服务的对象; 若flag(i)0,则aut(i)值为油泵i刚服务完的对象; 若flag(i)=0, 则aut(i)值为油泵i已服务完的对象。当aut(i)=1时,表示油泵i还未服务过。新浪、腾讯课程微博:UESTC算法课程8/502.2.3 2.2.

7、3 队列及应用队列及应用- -循环队列应用循环队列应用输出模块templatevoid out(sq_Quene &cq,double flag, int aut) /输出队列信息输出队列信息 cq.prt_sq_Quene(); /输出油泵和汽车信息输出油泵和汽车信息 coutflag(1)=flag0,aut(1)=aut0endl; coutflag(2)=flag1,aut(2)=aut1endl;新浪、腾讯课程微博:UESTC算法课程9/50问题描述: 汽车加油站有M台油泵,每台油泵为一辆汽车加油概率d升,加油量与时间成正比,加油时间为td,该加油站每天24小时的到车率为1/gi 分钟(i=023),每两台加油泵需要一个工作人员,模拟加油站一天加油工作模型(加油汽车数量、加油量、工作人员安排)。要求: 1、采用模块化编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论