我有一个用于预订电影票的 Java 代码。在这个程序中,每个人只能购买两张票,最多售出 10 张票,最后会显示一个包含人员姓名的列表。我完成了整个过程,初始化并将ArrayList
每个姓名存储在该列表中,但我不知道如何让这个程序在列表本身中检查一个人是否已经购买了两张以上的票。
该计划应以空列表开始,最多可提供 10 张票。
每次迭代时,询问用户是否想要买票。
如果用户想要购买,则询问他们的姓名,如果还有票可用,则将他们添加到列表中。
如果门票已售完,则显示售完信息。
最后,显示所有购买门票的人的名单。
代码如下:
public class BookingTickets{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> list = new ArrayList<>();
int ticketsPurchased = 0;
int allTickets = 10;
System.out.print("Do you want to buy a ticket? (y/n): ");
String response = sc.next().toLowerCase();
if (response.equals("n")) {
System.out.println("Thank you. See you next time.");
}
while (response.equals("y")) {
if (ticketsPurchased <= 2) {
if (allTickets == 0) {
System.out.print("Sorry, we have no more tickets!\n");
System.out.println(list);
}
System.out.print("How many tickets do you want to buy? ");
ticketsPurchased = sc.nextInt();
System.out.print("Enter the buyer's name: ");
String name = sc.next();
list.add(name);
allTickets -= ticketsPurchased;
} else {
System.out.print("Limit of 2 tickets per person.");
}
System.out.print("Do you want to buy a ticket? (y/n): ");
response = sc.next().toLowerCase();
}
System.out.println(list);
sc.close();
}
}