Classe PrincipalCompras:
package desafio4;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class PrincipalCompras {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Digite o limite do cartão de crédito: ");
double limite = sc.nextDouble();
sc.nextLine();
CartaoDeCredito cartao = new CartaoDeCredito(limite);
ArrayList<Compra> compras = new ArrayList<>();
int entradaUsuario = 0;
while(entradaUsuario != -1){
System.out.println(imprimePainel());
entradaUsuario = sc.nextInt();
sc.nextLine();
switch (entradaUsuario){
case 1:
boolean inserirMaisItem = true;
while(inserirMaisItem){
System.out.println("Digite o item: ");
String nomeItem = sc.nextLine();
System.out.println("Digite o preço: ");
double preco = sc.nextDouble();
if (cartao.getLimite() >= preco){
cartao.setCompra(preco);
compras.add(new Compra(nomeItem, preco));
System.out.println("Item adicionado com sucesso!");
System.out.println("Novo limite: " + cartao.getLimite());
} else {
System.out.println("Saldo insuficiente!");;
}
if (cartao.getLimite() > 0){
System.out.println("Inserir novo item? ");
System.out.println("1 - Sim\n2 - Não");
int opcao = sc.nextInt();
sc.nextLine();
if(opcao != 1){
inserirMaisItem = false;
}
} else {
inserirMaisItem = false;
}
}
entradaUsuario = 0;
break;
case 2:
System.out.println("Lista de Compras: " + compras);
entradaUsuario = 0;
break;
case 3:
boolean removerMaisItem = true;
while(removerMaisItem){
System.out.println("Itens da lista de Compras: " + compras);
System.out.println("Digite o nome do item a ser removido: ");
String itemParaRemocao = sc.nextLine();
for (Compra compra : compras) {
if (compra.getNome().equals(itemParaRemocao)) {
compras.remove(compra);
cartao.estorna(compra.getPreco());
break;
} else {
System.out.println("Nenhum item da lista corresponde à descrição.");
}
}
System.out.println("Remover novo item? ");
System.out.println("1 - Sim\n2 - Não");
int opcao = sc.nextInt();
if(opcao != 1){
removerMaisItem = false;
}
}
break;
case 4:
Collections.sort(compras);
System.out.println("Lista de compras ordenada por preço: " + compras);
entradaUsuario = 0;
break;
case 5:
entradaUsuario = -1;
break;
default:
entradaUsuario = 0;
}
}
sc.close();
}
public static String imprimePainel(){
return """
1 - Adicionar Itens à Lista
2 - Mostrar lista de compras
3 - Remover Itens
4 - Ordenar Lista
5 - Sair""";
}
}