c语言银行排队管理系统
时间: 2023-07-03 09:21:09 浏览: 109
银行排队管理系统可以用C语言实现,以下是一个简单的银行排队系统的示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 10
int queue[MAX_SIZE];
int front = -1, rear = -1;
struct customer {
int id;
int transaction_time;
};
void enqueue(struct customer data) {
if (rear == MAX_SIZE - 1) {
printf("Queue is full\n");
return;
}
if (front == -1) {
front = 0;
}
rear++;
queue[rear] = data;
}
void dequeue() {
if (front == -1) {
printf("Queue is empty\n");
return;
}
printf("Customer %d served\n", queue[front].id);
if (front == rear) {
front = -1;
rear = -1;
} else {
front++;
}
}
void display() {
if (front == -1) {
printf("Queue is empty\n");
return;
}
printf("Queue elements: ");
for (int i = front; i <= rear; i++) {
printf("%d ", queue[i].id);
}
printf("\n");
}
int main() {
int n;
printf("Enter the number of customers: ");
scanf("%d", &n);
struct customer customers[n];
for (int i = 0; i < n; i++) {
printf("Enter the transaction time for customer %d: ", i+1);
scanf("%d", &customers[i].transaction_time);
customers[i].id = i+1;
enqueue(customers[i]);
}
int time = 0;
while (front != -1) {
if (time >= queue[front].transaction_time) {
dequeue();
} else {
printf("Time %d: Customer %d waiting\n", time, queue[front].id);
time++;
}
}
printf("All customers served\n");
return 0;
}
```
在这个示例中,我们使用了一个数组来存储排队系统中的顾客。enqueue函数用于将顾客加入队列,dequeue函数用于从队列中删除顾客,display函数用于显示队列中的顾客。我们使用front和rear变量来跟踪队列中第一个顾客和最后一个顾客的位置。当队列为空时,我们将front和rear设置为-1。
我们还定义了一个customer结构体,用于存储每个顾客的id和交易时间。在main函数中,我们首先让用户输入顾客数量和每个顾客的交易时间,并将顾客加入队列。然后我们使用一个while循环来模拟银行的服务过程,时间从0开始递增,如果当前时间大于等于队列中第一个顾客的交易时间,就将该顾客从队列中删除;否则,就打印出当前时间和队列中第一个顾客的id,并将时间加1。当队列为空时,表示所有顾客都已经被服务完毕。
以上是一个简单的银行排队系统的示例代码,你可以根据实际需求进行修改和扩展。
阅读全文