Tenho um código Java para reservar ingressos de cinema. Neste programa, cada pessoa só pode comprar dois ingressos, são vendidos no máximo 10 ingressos e no final ele exibe uma lista com os nomes das pessoas. Fiz todo o processo onde inicializei com ArrayList
e armazenando cada nome dentro dessa lista, mas não tenho ideia de como fazer esse programa verificar dentro da própria lista se uma pessoa já comprou mais de dois ingressos.
O programa deve começar com uma lista vazia e um máximo de 10 ingressos disponíveis.
A cada iteração, pergunte ao usuário se ele deseja comprar um ingresso.
Se o usuário quiser comprar, pergunte o nome dele e adicione-o à lista se ainda houver ingressos disponíveis.
Se os ingressos estiverem esgotados, exiba uma mensagem de esgotado.
No final, exiba a lista de todas as pessoas que compraram ingressos.
Aqui está o código:
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();
}
}