帮我写一段关于银行排队管理系统的c语言代码
时间: 2023-08-28 22:20:08 浏览: 327
好的,以下是一个简单的银行排队管理系统的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX_QUEUE_SIZE 10
// 定义队列结构体
typedef struct {
int front;
int rear;
int count;
int queue[MAX_QUEUE_SIZE];
} Queue;
// 初始化队列
void initQueue(Queue *q) {
q->front = 0;
q->rear = -1;
q->count = 0;
}
// 判断队列是否为空
bool isQueueEmpty(Queue *q) {
return (q->count == 0);
}
// 判断队列是否已满
bool isQueueFull(Queue *q) {
return (q->count == MAX_QUEUE_SIZE);
}
// 入队
void enqueue(Queue *q, int data) {
if (isQueueFull(q)) {
printf("Queue is full, cannot add more data.\n");
return;
}
q->rear = (q->rear + 1) % MAX_QUEUE_SIZE;
q->queue[q->rear] = data;
q->count++;
}
// 出队
int dequeue(Queue *q) {
if (isQueueEmpty(q)) {
printf("Queue is empty, cannot remove data.\n");
return -1;
}
int data = q->queue[q->front];
q->front = (q->front + 1) % MAX_QUEUE_SIZE;
q->count--;
return data;
}
// 显示队列中的数据
void displayQueue(Queue *q) {
if (isQueueEmpty(q)) {
printf("Queue is empty.\n");
return;
}
printf("Queue data: ");
int i;
for (i = 0; i < q->count; i++) {
printf("%d ", q->queue[(q->front + i) % MAX_QUEUE_SIZE]);
}
printf("\n");
}
int main() {
Queue queue;
initQueue(&queue);
int choice, data;
do {
printf("\n\n1. Enqueue");
printf("\n2. Dequeue");
printf("\n3. Display Queue");
printf("\n4. Exit");
printf("\nEnter your choice: ");
scanf("%d", &choice);
switch(choice) {
case 1:
printf("\nEnter the data to be added: ");
scanf("%d", &data);
enqueue(&queue, data);
break;
case 2:
data = dequeue(&queue);
if (data != -1)
printf("\nThe removed data is %d.\n", data);
break;
case 3:
displayQueue(&queue);
break;
case 4:
printf("\nExiting program...\n");
exit(0);
default:
printf("\nInvalid choice, please try again.\n");
break;
}
} while (true);
return 0;
}
```
这个代码示例实现了一个简单的队列,可以用来模拟银行排队管理系统中的客户排队。用户可以选择将一个整数添加到队列中,或者从队列中删除一个整数,还可以显示队列中的所有数据。循环在用户选择退出程序之前一直运行。
阅读全文