网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月26日漏签0天
c++编程吧 关注:4,319贴子:7,048
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回c++编程吧
>0< 加载中...

哪位大神帮我修改一下这个程序,能运行的起来

  • 只看楼主
  • 收藏

  • 回复
  • 莫久吉
  • 小p孩
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include<iostream>
using namespace std;
struct CustomerType
{
unsigned int arrivalTime; //客户到达时间
unsigned int duration; //客户接受服务所需时间
unsigned int curServiceTime; //当前接受服务的时间
};//电话客户服务模拟类
class Callsimulation
{
private:
//电话客户服务模拟类的数据成员
LinkQueue<CustomerType>* callsWaitingQueue; //客服电话等待队列
CustomerType* customerServed; //客服人员正在服务的客户
int curTime; //当前时间
int totalWaitingTime; //总等待时间
int numOfCalls; //处理的电话数
int numOfCustomerServiceStaffs; //客服人员的人数
int limitTime; //时间限制(不再接受更多电话)
double arrivalRate; //客户到达率
int averageServiceTime; //平均服务时间
//辅助函数
void Service(); //服务当前电话(如果有电话)
void CheckForNewCall(); //检查是否有新电话,如果有,则将电话添加到电话队列
void Display(); //显示模拟结果
int GetNumOfWaitingCall(); //得到电话队列中等待的电话数
int MinLengthCallsWaitingQueue(); //最短客服电话等待队列
int MaxLengthCallsWaitingQueue(); //最长客服电话等待队列
public:
//电话客户服务模拟类方法申明
callsimulation(); //无参数的构造函数
virtual ~CallSimulation(); //析构函数
void Run();
};
CallSimulation::CallSimulation()
//操作结果:初始化数据成员
{
//初始化数据成员
curTime = 0; //当前时间初值为0
totalWaitingTime = 0; //总等待时间初值为0
numOfCalls = 0; //处理的电话数初值为0
//活动费模拟参数
cout << "输入客服人员的人数:";
cin >> numOfCustomerServiceStaffs; //输入客服人员的人数
cout << "输入时间限制:";
cin >> limitTime; //不再接受新电话的时间
int callsPerHour; //每小时电话数
cout << "输入每小时电话数:";
cin >> callsPerHour; //输入每小时电话数
arrivalRate = callsPerHour / 60.0; //转换为每分钟电话数
cout << "输入平均服务时间:";
cin >> averageServiceTime; //输入平均服务时间
//分配动态存储空间
callsWaitingQueue = new LinkQueue<CustomerType>[numOfCustomerServiceStaffs];//为客服电话等待队列数组分配存储空间
customerServed = new CustomerType[numOfCustomerServiceStaffs]; //为客服人员正在服务的客户分配存储空间
//初始化客服人员正在服务的客户
for (int i = 0;i < numOfCustomerServiceStaffs;i++)
{//初始化每个客服人员正在服务的客户
customerServed[i].curServicedTime = customerServed[i].duration = 0;
} //表示还没人接受服务
//设置随机数种子
srand((unsigned)time ( NULL )); //设置当前时间为随机数种子
}
void CallSimulation::Service()
//操作结果:服务当前电话(如果有电话)
{
for (int i = 0;i < numOfCustomerServiceStaffs;i++)
{//处理每个客服工作人员提供的服务
if (customerServed[i].curServiceTime < customerServed[i].duration)
{//未到达客户接受服务所需的时间,正在为客户提供服务
customerServed[i].curServiceTime++; //增加客户接受服务时间
}
else
{//已到达客户接受服务所需的时间,为下一个客户提供服务
if (!callsWaitingQueue[i].Empty())
{//有客户在等待
callsWaitingQueue[i].OutQueue(customerServed[i]);
//从等待队列中取出新客户进行服务
totalWaitingTime += curTimec - customerServed[i].arrivalTime;
//更新总等待时间
}
}
}
}
void CallSimulation::CheckForNewCall()
//操作结果:检查是否有新电话,如果有,则将电话添加到电话队列
{
int calls = GetPoissionRand(arrivalRate); //当前时间打进电话的人数
for (int i = 1;i <= calls;i++)
{//第i个电话
CustomerType customer; //客户
customer.arrivalTime = curTime; //客户到达时间
customer.duration = GetPoissionRand(averageServiceTime); //客户接受服务所需的时间
customer.curServiceTime = 0; //当前接受服务的时间
int pos = MinLengthCallsWaitingQueue(); //最短客服电话等待队列的位置
callsWaitingQueue[pos].InQueue(customer); //客户入等待队列
numOfCalls++; //处理的电话数
}
}
void CallSimulation::Display()
//操作结果:显示模拟结果
{
cout << "处理的总电话数:" << numOfCalls << endl;
cout << "平均等待时间:" << (double)totalWaitingTime / numOfCalls << endl
<< endl;
}
void CallSimulation::Run()
//操作结果:模拟电话客户服务
{
while (curTime < limitTime)
{//未到达时间限制,可检查新电话
CheckForNewCall(); //检查是否有新电话,如果有,则将电话添加到电话队列
Service(); //进行服务
curTime++; //增加时间
}
Display(); //显示模拟结果
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回c++编程吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示