运用队列实现银行叫号系统。
银行叫号系统源代码

#include<iostream>
using namespace std;struct Customers {int m_id=1;
};class Bank {public:Bank(int queueCapacity);//创建队列bool QueueEmpty();//判空队列bool QueueFull();//判满函数int QueueLength();//队列长度bool EnQueue(Customers customer);//新元素入队bool DeQueue(Customers& customer);//首元素出队void QueueTraverse();//遍历队列Customers* m_pQueue;//队列数组指针int m_QueueLength;//队列元素个数int m_QueueCapacity;//队列数组容量int m_Head;//队头int m_Tail;//队尾
};Bank::Bank(int queueCapacity) {m_QueueCapacity = queueCapacity;m_Head = 0;m_Tail = 0;m_QueueLength = 0;m_pQueue = new Customers[m_QueueCapacity];
}bool Bank::QueueEmpty() {return m_QueueLength == 0 ? true : false;
}bool Bank::QueueFull() {return m_QueueLength == m_QueueCapacity ? true : false;
}int Bank::QueueLength() {return m_QueueLength;
}bool Bank::EnQueue(Customers customer) {if (QueueFull())return false;else {m_pQueue[m_Tail] = customer;m_Tail++;m_Tail = m_Tail % m_QueueCapacity;m_QueueLength++;return true;}
}bool Bank::DeQueue(Customers& customer) {if (QueueEmpty())return false;else {customer = m_pQueue[m_Head];m_Head++;m_Head = m_Head % m_QueueCapacity;m_QueueLength--;return true;}
}void Bank::QueueTraverse() {for (int i = m_Head; i < m_QueueLength; i++) {cout << m_pQueue[i % m_QueueCapacity].m_id << endl;}
}int main() {Bank bank(10);Customers customer;int count = 1;cout << "欢迎使用银行叫号系统" << endl;cout << "1.有新客户到达,取号" << endl;cout << "2.有窗口空闲,叫号" << endl;cout << "3.退出系统" << endl;int number;while (true) {cin >> number;if (number == 1) {if (bank.EnQueue(customer)) {cout << "您的id是" << count << ",前面还有" << bank.QueueLength() - 1 << "人在排队!" << endl;count++;}else {cout << "取号失败!" << endl;}}if (number == 2) {if (bank.DeQueue(customer)) {count--;cout << "请第" << bank.m_Head << "号客户到窗口办理!" << endl;}else {cout << "队列中已没有客户!" << endl;}}if (number == 3)exit(0);}return 0;
}

数据结构 实验五(银行叫号系统)相关推荐

  1. 数据结构实验二——队列(银行叫号系统)

    一.实验目的 (1)掌握队列的链式存储结构 (2)掌握队列的基本操作,并能进行应用实践 (3)使用C/C++语言和队列实现"银行叫号系统"专题 二.实验任务 设计一个控制台程序,模 ...

  2. 基于IDEA的JavaWeb银行叫号系统

    文档源资源见: https://pan.baidu.com/s/1Vc35QF-SP5NFq1xQJeX1jQ 提取码: 8259 复制这段内容后打开百度网盘手机App,操作更方便哦 基于JavaWe ...

  3. 数据结构大作业——银行排队系统

    数据结构大作业--银行排队系统 离散事件模拟--银行业务处理 题目分析 声明部分 辅助函数 初始化窗口节点 创建顾客节点 比较四个窗口的排队人数 输出离开顾客的信息 主要函数 完整的头文件代码 离散事 ...

  4. 用python写银行叫号系统(这个是学校的实训题目,真的没什么技术含量)

    一. 项目概述 智能排队叫号系统是在银行等待业务办理区域所使用的智能叫号系统,系统可有效解决客户办理业务时排队的无序.业务员工作量的不平衡.就诊环境嘈杂等问题. 二. 需求分析 主要分为取号.排队等待 ...

  5. 数据结构实验五 查找算法的实现

    广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼416B)     2019年6月11日 学院 计算机科学与教育软件学院 年级.专业.班 姓名 学号 实验课程名称 数据结构实验 成绩 实 ...

  6. 数据结构 实验五 停车场管理

    实验五 停车场管理 1.实验目的: (1)掌握栈的使用方法. (2)掌握队列的使用方法. 2.实验环境与设备: 已安装Visual Studio 2010(或其以上版本)集成开发环境的计算机. 3.实 ...

  7. java 银行叫号系统

    ---------------------- ASP.Net+Unity开发. .Net培训.期待与您交流! ---------------------- 项目需求:模拟实现银行业务调度系统逻辑,银行 ...

  8. 数据结构课程设计银行储蓄系统

    /** *版权所有(C)2017,panyanan * *文件名称:main.cpp *文件标识:无 *内容摘要:本文件的作用是调用算法库里面的函数,完成题目要求. *其它说明:无 *当前版本:V1. ...

  9. 2017-2018-1 20162306 实验五实验报告

    2017-2018-1 20162306 实验五实验报告 实验五-0-分析系统架构 精灵类ISprite:所有的类都继承精灵类. 战斗机类CombatAircraft:首先定义一架战斗机,通过获取坐标 ...

  10. 叫号系统排队系统挂号系统实现

    关于队列,使用的地方非常的多.现实中有很多的例子.比如医院的挂号系统,银行里的叫号系统,食堂里的排队打饭等等.市场上又这样的排队取号的设备.他们的功能基本如下: 1.系统可联网联机统一发号: 2.系统 ...

最新文章

  1. ubuntu12.0.4不能正常关机和重启的解决方法
  2. 让代码看起来更舒服, 修改VS颜色样式
  3. arp欺骗攻击——获取内网中用户浏览的图片信息
  4. Java之JSON数据
  5. php丢包率测试,linux 网络延时、丢包与传输带宽关系测试
  6. cuda第一次计算耗时_CUDA优化的冷知识10 | GPU卡和Jetson上显存优化的特色
  7. 获取选中_【字节】如何实现选中复制的功能
  8. oracle先执行哪个from,Oracle(二)SELECT语句执行顺序
  9. 杀掉移动设备幽灵启动
  10. ccna视频教程 红头发讲解
  11. php 判断是否为中文,php判断是否为中文正则表达式大全
  12. SPSS中K均值聚类操作案例
  13. 随机无梯度Frank-Wolfe方法的统一分析
  14. windows sc使用方法之一
  15. Windows无法访问指定设备路径或文件,您可能没有合适的权限访问这个项目
  16. python调用pyd文件_python的py文件生成pyd文件,pycharm直接调用pyd文件
  17. 随机编码生成器MD5加密字符串工具
  18. OJ每日一练——乘方计算
  19. 某东满3000减2020真的有这个劵么
  20. 预训练权重到底是个啥

热门文章

  1. 尚硅谷 硅谷新闻_硅谷如何将真正的创新变成一种夸大的幻想
  2. MPQ Storm库 源代码分析 一个
  3. C语言—贪吃蛇双人对战
  4. 架构之美第四章-架构与美
  5. 2023年东南大学机械工程考研上岸经验
  6. spss 因子分析非正定矩阵解决方案
  7. Qt编译Android库
  8. android win10驱动安装失败,小米手机驱动程序在win10系统中安装失败的解决方案
  9. 三位数除以两位数竖式计算没有余数_三位数除以两位数竖式
  10. 托马斯微积分10版积分简表101 公式修正