等待下班

坐不住了,现在的时间是17:15;离下班时间还有15分钟。公司的制度让人难受,做完本本职的工作后,还有很大的限制。所以多少还有些压抑。早上出差回来,竟然还要上班。最近简直忙坏了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于链队列的银行排队叫号系统的C代码: ``` #include <stdio.h> #include <stdlib.h> #define MAX_QUEUE_SIZE 100 // 定义链队列结点 typedef struct QueueNode { int data; struct QueueNode *next; } QueueNode; // 定义链队列 typedef struct Queue { QueueNode *front; QueueNode *rear; int size; } Queue; // 初始化链队列 void initQueue(Queue *queue) { queue->front = NULL; queue->rear = NULL; queue->size = 0; } // 判断队列是否为空 int isQueueEmpty(Queue *queue) { return queue->size == 0; } // 判断队列是否已满 int isQueueFull(Queue *queue) { return queue->size == MAX_QUEUE_SIZE; } // 入队 void enqueue(Queue *queue, int data) { if (isQueueFull(queue)) { printf("Queue is full.\n"); return; } QueueNode *newNode = (QueueNode*)malloc(sizeof(QueueNode)); newNode->data = data; newNode->next = NULL; if (isQueueEmpty(queue)) { queue->front = newNode; queue->rear = newNode; } else { queue->rear->next = newNode; queue->rear = newNode; } queue->size++; } // 出队 int dequeue(Queue *queue) { if (isQueueEmpty(queue)) { printf("Queue is empty.\n"); return -1; } int data = queue->front->data; QueueNode *temp = queue->front; queue->front = queue->front->next; free(temp); queue->size--; if (isQueueEmpty(queue)) { queue->rear = NULL; } return data; } int main() { Queue queue; initQueue(&queue); int num = 0; int choice = 0; while (1) { printf("1. 取号进队\n2. 排队等候\n3. 叫号服务\n4. 当前不排队\n5. 余下依次等待\n6. 下班\n"); printf("请选择操作:"); scanf("%d", &choice); switch (choice) { case 1: if (isQueueFull(&queue)) { printf("队列已满,无法取号进队。\n"); } else { num++; enqueue(&queue, num); printf("您已成功取号,您的号码为:%d\n", num); } break; case 2: if (isQueueEmpty(&queue)) { printf("当前没有客户在排队等候。\n"); } else { printf("当前排队客户号码为:%d\n", queue.front->data); } break; case 3: if (isQueueEmpty(&queue)) { printf("当前没有客户在排队等候。\n"); } else { int data = dequeue(&queue); printf("请 %d 号客户前往 %d 号窗口办理业务。\n", data, choice); } break; case 4: printf("当前不排队,请您稍后再来。\n"); break; case 5: if (isQueueEmpty(&queue)) { printf("当前没有客户在排队等候。\n"); } else { while (!isQueueEmpty(&queue)) { int data = dequeue(&queue); printf("请 %d 号客户前往 %d 号窗口办理业务。\n", data, choice); } } break; case 6: printf("银行已下班,欢迎下次光临。\n"); exit(0); default: printf("无效操作,请重新选择。\n"); break; } } return 0; } ``` 该系统包含了取号进队、排队等候、叫号服务、当前不排队,余下依次等待下班等功能。当客户取号进队时,系统会自动为其分配一个号码,并将其加入队列中。当客户需要查询当前排队客户号码时,系统会显示队列中的队头元素。当柜员需要叫号服务时,系统会将队头元素出队,并提示客户前往某个窗口办理业务。当银行不再排队时,系统会提示客户当前不排队。当银行还有未服务的客户时,系统会依次将队列中的所有客户出队,并提示客户前往某个窗口办理业务。当银行下班时,系统会退出程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值