C++模拟医院排队看病:队列应用实例

本文将使用C++编写一个程序,模拟病人到医院排队看病的流程,展示队列这种数据结构在实际场景中的应用。

问题描述

病人到医院看病,通常需要排队等候。主要流程包括:

  1. 病人到达: 病人抵达医院,将病历交给护士,进入等待队列。2. 护士叫号: 护士从等待队列中按顺序叫号,病人进入诊室就诊。

程序功能

我们需要实现以下功能:

  1. 排队: 输入病人的病历号,将其加入到病人排队队列中。2. 就诊: 队首病人就诊,并将其从队列中移除。3. 查看排队: 显示当前排队所有病人的病历号。4. 结束就诊: 显示剩余所有排队病人的病历号,并结束程序。

C++代码实现cpp#include #include

using namespace std;

queue patients_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 temp = patients_queue; // 复制队列,避免修改原队列 while (!temp.empty()) { cout << temp.front() << ' '; temp.pop(); } }}

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++模拟了医院排队的过程,展示了队列这种数据结构的实际应用。通过修改代码,可以模拟更复杂的排队场景,例如:

  • 不同科室的排队* 优先级队列* 动态调整队列长度等

希望本例能够帮助您理解队列的概念和应用。

C++模拟医院排队看病:队列应用实例

原文地址: https://www.cveoy.top/t/topic/be4Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录