0
respostas

[Projeto] Resolução do desafio

public class Compras implements Comparable<Compras>{
    private String nome;
    private double preco;

    public Compras(String nome, double preco) {
        this.nome = nome;
        this.preco = preco;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public double getPreco() {
        return preco;
    }

    public void setPreco(double preco) {
        this.preco = preco;
    }

    @Override
    public String toString() {
        return String.format("%s - R$ %.2f", nome, preco);
    }

    @Override
    public int compareTo(Compras compras) {
        return this.getNome().compareTo(compras.getNome());
    }
}




import java.util.*;

public class Main {
    public static void main(String[] args) {
        Locale.setDefault(Locale.US);
        Scanner sc = new Scanner(System.in);
        boolean continuar = true;
        double limiteCartao = 0;
        List<Compras> produtosComprados = new ArrayList<>();
        System.out.println("Digite o limite do cartão:");
        limiteCartao = sc.nextDouble();

        while(continuar) {
            System.out.println("O que voce quer comprar?");
            String compra = sc.next();
            System.out.println("Digite o valor da compra:");
            double valorCompra = sc.nextDouble();

            if (valorCompra <= limiteCartao) {
                System.out.println("Compra realizada.");
                limiteCartao -= valorCompra;
                produtosComprados.add(new Compras(compra, valorCompra));
            } else {
                System.out.println("Saldo insuficiente.");
            }

            System.out.println("Digite 0 para sair ou 1 para continuar");
            int escolha = sc.nextInt();

            switch (escolha) {
                case 0:
                    continuar = false;
                    System.out.println("Compras realizadas: ");
                    produtosComprados.sort(Comparator.comparing(Compras::getPreco));
                    for (Compras produto : produtosComprados) {
                        System.out.println(produto);
                    }
                    System.out.printf("\nSaldo do cartão: R$ %.2f", limiteCartao);
                    break;
                case 1:
                    break;
                default:
                    System.out.println("Opção inválida. Digite entre 0 e 1.");
            }
        }


        sc.close();
    }
}