java银行业务队列简单模拟
时间: 2023-11-12 15:00:50 浏览: 56
好的,我了解了你的问题。这里是一个简单的Java银行业务队列模拟程序:
```java
import java.util.LinkedList;
import java.util.Queue;
import java.util.Random;
public class BankQueueSimulation {
public static void main(String[] args) {
Queue<Customer> queue = new LinkedList<>();
Random random = new Random();
int totalTime = 0;
int customerNum = 0;
int waitTime = 0;
for (int i = 0; i < 10; i++) {
int serviceTime = random.nextInt(5) + 1;
totalTime += serviceTime;
Customer customer = new Customer(i, serviceTime);
queue.offer(customer);
customerNum++;
System.out.println("顾客" + customer.getId() + "进入队列,需要服务时间:" + customer.getServiceTime());
}
while (!queue.isEmpty()) {
Customer customer = queue.poll();
waitTime += totalTime - customer.getServiceTime();
totalTime += customer.getServiceTime();
System.out.println("顾客" + customer.getId() + "开始服务,等待时间:" + (totalTime - customer.getServiceTime()));
}
System.out.println("共服务" + customerNum + "个顾客,平均等待时间:" + (double) waitTime / customerNum);
}
}
class Customer {
private int id;
private int serviceTime;
public Customer(int id, int serviceTime) {
this.id = id;
this.serviceTime = serviceTime;
}
public int getId() {
return id;
}
public int getServiceTime() {
return serviceTime;
}
}
```
这个程序模拟了一个银行业务队列,其中有10个顾客需要服务,每个顾客需要的服务时间是1到5秒之间的随机数。程序输出了每个顾客进入队列和开始服务的时间,以及最终服务完所有顾客后的平均等待时间。