C++模拟医院排队看病:队列应用实例
C++模拟医院排队看病:队列应用实例
本文将使用C++编写一个程序,模拟病人到医院排队看病的流程,展示队列这种数据结构在实际场景中的应用。
问题描述
病人到医院看病,通常需要排队等候。主要流程包括:
- 病人到达: 病人抵达医院,将病历交给护士,进入等待队列。2. 护士叫号: 护士从等待队列中按顺序叫号,病人进入诊室就诊。
程序功能
我们需要实现以下功能:
- 排队: 输入病人的病历号,将其加入到病人排队队列中。2. 就诊: 队首病人就诊,并将其从队列中移除。3. 查看排队: 显示当前排队所有病人的病历号。4. 结束就诊: 显示剩余所有排队病人的病历号,并结束程序。
C++代码实现cpp#include #include
using namespace std;
queue
void enqueuePatient() { string patient; cout << '请输入病人的病历号: '; cin >> patient; patients_queue.push(patient); cout << '病人已成功排队等待就诊。 ';}
void dequeuePatient() { if (patients_queue.empty()) { cout << '没有病人在排队等待就诊。 '; } else { string patient = patients_queue.front(); patients_queue.pop(); cout << '病人 ' << patient << ' 进入诊室就诊。 '; }}
void viewQueue() { if (patients_queue.empty()) { cout << '没有病人在排队等待就诊。
'; } else { cout << '当前排队的病人病历号如下:
'; queue
void processRemainingPatients() { cout << '以下病人依次就诊: '; while (!patients_queue.empty()) { string patient = patients_queue.front(); patients_queue.pop(); cout << patient << ' '; } cout << '程序退出。 ';}
int main() { int choice;
do { cout << '请选择要执行的操作:
'; cout << '1. 排队 '; cout << '2. 就诊 '; cout << '3. 查看排队 '; cout << '4. 不在排队,余下依次就诊 '; cout << '5. 下班 '; cout << '输入您的选择: '; cin >> choice;
switch (choice) { case 1: enqueuePatient(); break; case 2: dequeuePatient(); break; case 3: viewQueue(); break; case 4: processRemainingPatients(); break; case 5: cout << '程序退出。
'; break; default: cout << '无效的选择。 '; break; } } while (choice != 5);
return 0;}
代码解释
- 使用
queue<string>创建一个存储字符串类型的队列patients_queue,用于存储病人病历号。*enqueuePatient()函数模拟病人排队,将病历号加入队列。*dequeuePatient()函数模拟病人就诊,将队首病人移除队列。*viewQueue()函数用于显示当前排队的所有病人。*processRemainingPatients()函数用于处理剩余的病人,并结束程序。*main()函数提供菜单界面,让用户选择操作。
总结
本程序使用C++模拟了医院排队的过程,展示了队列这种数据结构的实际应用。通过修改代码,可以模拟更复杂的排队场景,例如:
- 不同科室的排队* 优先级队列* 动态调整队列长度等
希望本例能够帮助您理解队列的概念和应用。
原文地址: https://www.cveoy.top/t/topic/be4Z 著作权归作者所有。请勿转载和采集!