西农数据结构作业_患者到医院看病事件模拟(队列)

2023-11-01 21:50

本文主要是介绍西农数据结构作业_患者到医院看病事件模拟(队列),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

患者到医院看病的顺序是:先排队等候,再看病治疗。要求设计一个算法,模拟病人等候就诊的过程。

其中:“病人到达"用命令“A”(或“a”)表示,“护士让下一位就诊”用“N”(或“n”)表示,“不再接收病人排队”用“S”(或“s”)表示。

#include <iostream>
#include <string.h>
#include <assert.h>
using namespace std;
class Queue {
public:Queue(int n);bool EnQueue(string x);bool DeQueue(string& x);bool IsEmpty();bool IsFull();string getTop();void Print();
private:string* elements;int front, rear;int maxsize;
};
int main() {Queue q(1000);char temp;while (cin >> temp) {if (temp == 'a' || temp == 'A') {string n;cin >> n;q.EnQueue(n);}else if (temp == 'n' || temp == 'N') {string n;n=q.getTop();if (n == "no")cout << "无病人就诊" << endl;elsecout << "病历号为" << n << "的病人就诊" << endl;q.DeQueue(n);}else if (temp == 's' || temp == 'S') {cout << "今天不再接收病人排队,下列排队的病人依次就诊:" ;q.Print();}else {cout << "输入命令不合法!" << endl;}}}Queue::Queue(int n)
{maxsize = n;elements = new string[maxsize];front = rear = 0;
}bool Queue::EnQueue(string x)
{if(IsFull())return false;elements[rear] = x;rear++;return true;
}bool Queue::DeQueue(string& x)
{if (IsEmpty()) {return false;}x = elements[front];front++;return true;
}bool Queue::IsEmpty()
{return rear == front? true : false;
}bool Queue::IsFull()
{return rear==maxsize-1?true:false;
}string Queue::getTop()
{if (rear == front)return "no";else return elements[front];
}void Queue::Print()
{for (int i = front-1; i <= rear-1; i++) {cout << elements[i] << " ";}cout << elements[rear] ;
}

这篇关于西农数据结构作业_患者到医院看病事件模拟(队列)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/325999

相关文章

Java 单元测试之Mockito 模拟静态方法与私有方法最佳实践

《Java单元测试之Mockito模拟静态方法与私有方法最佳实践》本文将深入探讨如何使用Mockito来模拟静态方法和私有方法,结合大量实战代码示例,带你突破传统单元测试的边界,写出更彻底、更独立... 目录Mockito 简介:为什么选择它?环境准备模拟静态方法:打破“不可变”的枷锁传统困境解法一:使用M

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

golang实现延迟队列(delay queue)的两种实现

《golang实现延迟队列(delayqueue)的两种实现》本文主要介绍了golang实现延迟队列(delayqueue)的两种实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录1 延迟队列:邮件提醒、订单自动取消2 实现2.1 simplChina编程e简单版:go自带的time

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5