c++排队取号
时间: 2023-06-29 16:16:31 浏览: 38
你可以使用一个计数器来记录当前的号码,每次有人取号时,计数器加一,并将当前的号码赋给该人。具体的实现可以使用一个简单的队列数据结构来管理等待队列,每当队列中有人取号时,将其添加到队列尾部,并返回当前的号码。当有人被叫号时,将队列头部的人出队即可。以下是一个简单的 C++ 代码示例:
```c++
#include <iostream>
#include <queue>
using namespace std;
int main() {
int current_number = 0;
queue<int> waiting_queue;
while (true) {
// 打印当前号码和等待队列
cout << "当前号码:" << current_number << endl;
cout << "等待队列:[";
queue<int> temp = waiting_queue;
while (!temp.empty()) {
cout << temp.front() << " ";
temp.pop();
}
cout << "]" << endl;
// 询问是否需要取号
char choice;
cout << "是否需要取号?(y/n)";
cin >> choice;
if (choice == 'y') {
// 取号
waiting_queue.push(current_number);
cout << "您的号码是:" << current_number << endl;
current_number++;
}
// 询问是否需要叫号
cout << "是否需要叫号?(y/n)";
cin >> choice;
if (choice == 'y') {
if (waiting_queue.empty()) {
// 等待队列为空
cout << "当前没有等待的人!" << endl;
} else {
// 叫号
int next_number = waiting_queue.front();
waiting_queue.pop();
cout << "请 " << next_number << " 号到窗口办理业务!" << endl;
}
}
}
return 0;
}
```