可以在代码中添加以下功能来计算顾客等待空闲桌子的时间之和、平均等待时间和最长等待时间:
int totalWaitingTime = 0; // 总等待时间
int longestWaitingTime = 0; // 最长等待时间
for (int i = 0; i < 4; i++) { // 遍历餐桌队列
while (!tables[i].empty()) {
Customer customer = tables[i].front(); // 获取队首顾客信息
tables[i].pop(); // 弹出队首顾客
int waitingTime = max(0, customer.arrivalTime - customer.eatingTime); // 计算该顾客等待空闲桌子的时间
totalWaitingTime += waitingTime; // 累加到总等待时间中
longestWaitingTime = max(longestWaitingTime, waitingTime); // 更新最长等待时间
}
}
double averageWaitingTime = static_cast<double>(totalWaitingTime) / n; // 计算平均等待时间
cout << "Total Waiting Time: " << totalWaitingTime << endl;
cout << "Average Waiting Time: " << fixed << setprecision(2) << averageWaitingTime << endl;
cout << "Longest Waiting Time: " << longestWaitingTime << endl;
将以上代码添加至原有代码后面,即可实现计算顾客来到之后没有空闲桌子情况下的等待空闲桌子的时间之和,并输出平均等待时间和最长等待时间。
内容由零声教学AI助手提供,问题来源于学员提问