队列应用

一、问题描述:

1、题目内容:使用队列模拟理发馆的排队现象,通过仿真手法评估其营业状况。

设某理发馆设有N把理发椅,可同时为N位顾客进行理发。当顾客进门时,若有空闲理发椅,则立即入座理发,否则依次排队候理,一旦有顾客理完发离去时,排在队头的顾客便开始理发。假若理发馆每天连续营业T小时(只要有顾客等待,理发椅就不空),求一天内顾客在理发馆内的平均逗留时间(包括理发所需时间和排队等候的时间)与顾客排队等候理发的人数的平均值(排队长度的平均值)。

2、基本要求

1)当给定理发椅数及营业时间后,由随机数确定顾客理发时间及进门间隔时间,求出一天内顾客在理发馆平均逗留时间、平均队长及关门后收尾工作的时间

2)由用户读入的数据仅为理发椅数及营业时间。营业的时间以分钟计,理发椅数及关门时间均为整型,且均大于等于1

3、测试数据

 理发椅数目N及关门时间由用户读入,第一个顾客进门的时刻为0,之后每个顾客的进门时刻在前一个顾客进门时设定。即在进门事件发生时随即产生两个随机数(DUIN),DU为进门顾客理发所需的服务时间(简称理发时间);IN为下一个顾客到达的时间间隔(简称间隔时间)。

二、实现提示:

 R为由随机数发生器的随机数,顾客理发时间和顾客之间的间隔时间不妨假设与R有关,可以由下式确定:

DU=15+R%50    IN=2+R%10

确定的方法与实际越吻合,模拟的结果越接近现实的情况。

//2013-5-25
//panda

//定义客户类
//Guest.h
#pragma once

#ifndef _GUEST
#define _GUEST

class Guest
{
public:
	int id;				//客户id
	int swtime;			//记录客户进店的时间
	int servertime;		//服务时间
	int ncgtime;		//下个客户到达时间
public:
	Guest();			//默认构造函数
	Guest(int id,int swtime,int stime,int ncgtime);
	Guest(const Guest& g);	//复制构造函数
	Guest& operator=(const Guest& g);	//重载=运算符
};

#endif

//panda
//2013-5-21
//Queue.h
#pragma once
#ifndef _QUEUE
#define _QUEUE
#include"Guest.h"

#ifndef _LNODE
#define _LNODE
//节点结构
struct LNode{
	Guest data;	//值域
	LNode* next;	//连接指针域
};
#endif

class Queue{
private:			//数据定义
	LNo
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值