java代码实现编写一个程序,程序模拟某电影院三个售票窗口同时出售电影票的过程。 1) 电影票顺序出售,程序模拟显示售票的详细过程(如:“窗口 X 出售编号 XXX 电影票”)。 2) 三个窗口同时出票,出票间隔采用随机控制。 3) 不能重复出售相同的电影票
时间: 2024-02-18 21:03:08 浏览: 20
好的,以下是实现该程序的Java代码:
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class MovieTicketSalesSimulation {
private static final int NUM_WINDOWS = 3; // 窗口数量
private static final int NUM_TICKETS = 100; // 电影票数量
private static final int MAX_DELAY = 500; // 最大出票间隔(毫秒)
private static final Random random = new Random();
public static void main(String[] args) {
Set<Integer> soldTickets = new HashSet<>(); // 已售出的电影票编号
for (int i = 1; i <= NUM_TICKETS; i++) {
int windowNum = i % NUM_WINDOWS + 1; // 计算出售该电影票的窗口编号
int ticketNum;
do {
ticketNum = random.nextInt(NUM_TICKETS) + 1; // 随机生成电影票编号
} while (soldTickets.contains(ticketNum)); // 直到生成未售出的电影票编号
soldTickets.add(ticketNum); // 标记该电影票已售出
int delay = random.nextInt(MAX_DELAY); // 随机生成出票间隔
try {
Thread.sleep(delay); // 模拟出票间隔
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("窗口 " + windowNum + " 出售编号 " + ticketNum + " 的电影票");
}
}
}
```
该程序模拟了三个售票窗口同时出售电影票的过程,保证了电影票顺序出售且不重复出售相同的电影票。同时,为了模拟出票间隔,采用了随机控制出票间隔的方式。