用c语言实现以下应用程序:顾客在随机时间到达,两个人连续到达时间间隔大于0,每个人处理时间大于0,首先:设置已函数使得客户端能够添加到队列中;其次,创建一个函数存在客户端队列,在键盘上输入客户数量,初始化每个客户到达日期和等待时间,假设第一个客户在早上8点到达;最后编写一个显示函数,显示每个客户的到达时间和处理时间
时间: 2024-02-13 11:01:22 浏览: 58
简单时间获取,用c语言编写,客户端和服务器
5星 · 资源好评率100%
以下是一个C语言程序,实现了顾客排队模拟的功能,包括添加顾客到队列、初始化顾客到达时间和等待时间、显示队列中每个顾客的到达时间和处理时间等:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_CUSTOMERS 100
struct Customer {
int arrival_time_hour;
int arrival_time_minute;
int processing_time;
};
struct Queue {
struct Customer customers[MAX_CUSTOMERS];
int front;
int rear;
};
void enqueue(struct Queue *q, struct Customer c);
struct Customer dequeue(struct Queue *q);
void initialize_queue(struct Queue *q);
void get_customer_details(struct Queue *q, int n);
void display_queue(struct Queue *q);
int main() {
struct Queue q;
int n;
initialize_queue(&q);
printf("Enter number of customers: ");
scanf("%d", &n);
get_customer_details(&q, n);
display_queue(&q);
return 0;
}
void enqueue(struct Queue *q, struct Customer c) {
if (q->rear == MAX_CUSTOMERS - 1) {
printf("Queue is full!\n");
exit(1);
}
q->rear++;
q->customers[q->rear] = c;
}
struct Customer dequeue(struct Queue *q) {
if (q->front == q->rear) {
printf("Queue is empty!\n");
exit(1);
}
q->front++;
return q->customers[q->front];
}
void initialize_queue(struct Queue *q) {
q->front = q->rear = -1;
}
void get_customer_details(struct Queue *q, int n) {
int i;
struct Customer c;
srand(time(NULL));
c.arrival_time_hour = 8;
c.arrival_time_minute = 0;
for (i = 0; i < n; i++) {
c.arrival_time_minute += rand() % 60;
if (c.arrival_time_minute >= 60) {
c.arrival_time_hour++;
c.arrival_time_minute -= 60;
}
c.processing_time = (rand() % 10) + 1;
enqueue(q, c);
}
}
void display_queue(struct Queue *q) {
int i;
struct Customer c;
printf("Customer\tArrival Time\tProcessing Time\n");
for (i = q->front + 1; i <= q->rear; i++) {
c = q->customers[i];
printf("%d\t\t%d:%02d\t\t%d minutes\n", i, c.arrival_time_hour, c.arrival_time_minute, c.processing_time);
}
}
```
在上述程序中,定义了一个名为Customer的结构体来表示顾客的到达时间和处理时间,以及一个名为Queue的结构体来表示顾客队列。程序中实现了enqueue和dequeue函数来实现顾客入队和出队的操作,initialize_queue函数用于初始化队列,get_customer_details函数用于生成随机的顾客到达时间和处理时间,并将顾客添加到队列中,display_queue函数用于显示队列中每个顾客的到达时间和处理时间。在主函数中,调用了initialize_queue、get_customer_details和display_queue等函数来完成任务。
需要注意的是,由于顾客到达时间和处理时间是随机生成的,因此每次运行程序的结果可能会不同。
阅读全文