栈的应用之银行叫号系统模拟

#include <stdio.h>

#define STACKSIZE 110
#define TRUE 1
#define FALSE 0

typedef int ElemType;
typedef int Status;
typedef struct
{
    ElemType data[STACKSIZE];
    int top;
} SeqStack;

Status StackEmpty(SeqStack s)
{
    if(s.top==0) return FALSE;
    return TRUE;
}

void InitStack(SeqStack *s)
{
    (*s).top=0;
}

void Push(SeqStack *s)
{
   (*s).data[(*s).top]=(*s).top+1;
   (*s).top++;
}

void Pop(SeqStack *s, int *e)
{
      *e=(*s).data[(*s).top-1];
      (*s).top--;
}

int main()
{
    int n;
    int e;
    SeqStack s;
    printf("***************银行叫号系统模拟***************\n");
    printf("0 :  上班\n");
    printf("1 :  排号\n");
    printf("2 :  叫号\n");
    printf("3 :  下班\n");
    printf("************************************************\n");

    while(scanf("%d", &n),n)
    {
        printf("亲,您还没有开始上班哦~\n");
    }

    printf("美好的一天从上班开始啦~\n");
    InitStack(&s);

    while(scanf("%d", &n), n!=3)
    {
        if(n==1)
        {
            Push(&s);
            printf("您的号码为%d,您前面共有%d个人.请耐心等待.\n", s.data[s.top-1], s.top-1);
        }
        else if(n==2)
        {
            if(!StackEmpty(s)) printf("当前没有办理业务的人员.\n");
            else
            {
                Pop(&s, &e);
                printf("请号码为%d的顾客前来办理业务.\n", e);
            }
        }
    }
    printf("终于下班啦~为辛苦一天的自己点赞.\n");
    return 0;
}
时间: 2024-10-12 06:10:21

栈的应用之银行叫号系统模拟的相关文章

使用多线程模拟一个银行叫号窗口

使用继承Thread类的方式创建线程 银行叫号部分的代码 package com.dwz.concurrency.chapter2; /** * 使用static保证号码数据共享 * 线程的创建方式:继承Thread类 */ public class TicketWindow extends Thread{ private static final int MAX = 100; //号码 private static int index = 1; private final String nam

2011 银行叫号服务问题

sem mutex=1;//取号机互斥信号量 sem empty=10;//空余座位信号量 sem full=0;//已占座位信号量 sem service=0//等待叫号数量 顾客() { p(empty); p(mutex); 取号 v(mutex); v(full); p(service); 获取服务 } 柜员() { while(true) { p(full); v(empty); v(service)//叫号 } } 原文地址:https://www.cnblogs.com/yangm

3-9-模拟银行排队过程-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第3章  栈和队列 - 模拟银行排队过程 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.SinglyLinkedList.c.LinkQueue

叫号系统排队系统挂号系统实现(JAVA队列)

关于队列,使用的地方很的多. 现实中有许多的样例. 比方医院的挂号系统,银行里的叫号系统,食堂里的排队打饭等等.市场上又这种排队取号的设备.他们的功能基本例如以下: 1.系统可联网联机统一发号.2.系统可无线对接,也可有线连接:3.系统支持100种业务以上:4.系统支持多个等候区提示等候信息,各等候区语音及显示可独立.5.个性化语音可呼叫客户所办理的业务名称(医院版可呼叫病人姓名)等信息.6.号码可在不同服务类别的柜台窗体之间相互转移,顾客不必反复排队:7.具备登录操作功能和退出操作功能:工作開

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

关于队列,使用的地方非常的多.现实中有很多的例子.比如医院的挂号系统,银行里的叫号系统,食堂里的排队打饭等等.市场上又这样的排队取号的设备.他们的功能基本如下: 1.系统可联网联机统一发号: 2.系统可无线对接,也可有线连接: 3.系统支持100种业务以上: 4.系统支持多个等候区提示等候信息,各等候区语音及显示可独立: 5.个性化语音可呼叫客户所办理的业务名称(医院版可呼叫病人姓名)等信息: 6.号码可在不同服务类别的柜台窗口之间相互转移,顾客不必重复排队: 7.具备登录操作功能和退出操作功能

python进程基础

# 理论知识 #操作系统基础知识 #顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象 #进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最 #古老也是最重要的抽象概念之一.操作系统的其他所有内容都是围绕进程的概念 #展开的> #ps:利用cpu自有一个,也能保证支持并发的能力.将一个单独的cpu变成多个虚拟的cpu #(多道技术:时间多路复用和空间多路复用+硬件隔离),没有进程的抽象,现代计算机将不复存在. # 必备基础理论: #操作系统的作用: #1.隐藏

深入理解同步/异步与阻塞/非阻塞区别 (转)

转载自:http://chuansong.me/n/2124760 几年前曾写过一篇描写同步/异步以及阻塞/非阻塞的文章,最近再回头看,还存在一些理解和认知误区,于是重新整理一下相关的概念,希望对网络编程的同行能有所启发. 同步与异步 首先来解释同步和异步的概念,这两个概念与消息的通知机制有关. 举个例子,比如一个用户去银行办理业务,他可以自己去排队办理,也可以叫人代办,办完之后再告知用户结果.对于要办理这个银行业务的人而言,自己去办理是同步方式,而别人代办完毕再告知则是异步方式. 两者的区别在

对各小组第一个冲刺阶段展示的评价

在4月28日下午我们在软件工程课上对自己第一阶段的成果进行了展示,对各小组的项目有了大致了解,以下为对各组第一阶段的成果的评价: 一.理财猫 1.界面不是很好看,能不能美化一下. 2.没有数据库,数据存储感觉不是很方便,能不能建立数据库. 3.不能自动添加记录,只能手动添加,希望能实现自动添加 二.跑什么操 1.项目名和展示内容没什么联系,感觉计步和跑操没什么关系,希望能体现主题. 2.界面不是很美观,希望能改进. 3.能不能添加跑操相关内容 三.水骑士 1.登录界面反应慢,能不能优化 2.界面

哆唻咪发团队 各项目意见

团队名称 意见一 意见二 意见三 阶段目标(分) 阶段成果(分) 1.理财猫 界面不够美观,字体可以再美化一下 功能有点少,可以添加一些功能,比如收支详情. 连接数据库 2.跑什么操 0 0 3.水骑士 界面背景有待改善 能不能实现在线交易 注册成功以后,返回界面时返回时间太长. 4.铁大云盘 界面有些简单 可以与学号等个人信息绑定 学校内网下载不耗流量,还有上传下载速度的限制 5.天气小贴士 可不可以缩小天气查询的范围 添加自动定位功能 可以添加一些贴心的提醒 6.youi聊天交流工具 界面可