实验四 队列的实现及应用

该实验旨在掌握队列的存储表示、基本操作实现及其在解决实际问题中的应用。通过VC环境,模拟银行服务台场景,随机生成客户到达与业务时间,计算业务人员的总空闲时间和客户平均等待时间。实验数据存于文本文件,每行包含到达时间和办理时间。
摘要由CSDN通过智能技术生成

实验四 队列的实现及应用

一、实验实习目的及要求

1.掌握队列的存储表示和实现。
2.掌握队列的基本操作实现。
3.掌握队列在解决实际问题中的应用。

二、实验实习设备(环境)及要求(软硬件条件)

实验室,使用VC上机调试出正确结果

三、实验实习项目、内容与步骤

利用队列模拟服务台前的排队现象问题。
问题描述:某银行有一个客户办理业务站,在单位时间内随机地有客户到达,设每位客户的业务办理时间是某个范围的随机值。设只有一个窗口,一位业务人员,要求程序模拟统计在设定时间内,业务人员的总空闲时间和客户的平均等待时间。假定模拟数据已按客户到达的先后顺序依次存于某个正文数据文件中,对应每位客户有两个数据:到达时间和需要办理业务的时间,文本文件内容如:10 20 23 10 45 5 55 10 58 15 65 10。
【数据描述】

typedef struct{
   
   int arrive;
   int treat;//客户的信息结构
}QNODE;
typedef struct node{
   
QNODE data;
Struct node *next;//队列中的元素信息
}LNODE
LNODE *front,*rear;// 队头指针和队尾指针

【算法描述】

 {
    设置统计初值:业务员等待时间,客户总的待时间,客户总人数等
   设置当前时钟clock时间为0//用变量clock来模拟当前时间.
   打开数据文件,准备读;
   读入第一位客户信息于暂存变量中;//文件读操作have= fscanf(fp,"%d %d",&temp.arrive,&temp.treat);
 do{
   //约定每轮循环,处理完一位客户
if(等待队列为空,并且还有客户)
{
      //等待队列为空时
 		 累计业务员总等待时间;
 		 时钟推进到暂存变量中的客户的到达时间;
  		暂存变量中的客户信息进队;
  		读取下一位客户信息于暂存变量;
  		}
  	从等待队列出队一位客户;
 	 累计客户人数;
  	将该客户的等待时间累计到客户的总等待时间;//=当前时间-客户到达时间
 	 设定当前客户的业务办理结束时间;//=当前时间+客户办理业务所需时间
  while(下一位客户的到达时间在当前客户处理结束之前)
{
   
暂存变量中的客户信息进队;
 读取下一位客户信息于暂存变量;
  		 }
 		时钟推进到当前客户办理结束时间;
 }while(还有未处理的客户);
计算统计结果,并输出;

四、实验实习所得结果及分析

五、实验实习结果分析和(或)源程序调试过程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值