1
resposta

[Projeto] Minha versão do desafio

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        double limite = 0;
        double valor = 0;
        String descricao;

        int opcao = 0;

                System.out.println("Insira o limite do cartão: ");
                limite = entrada.nextDouble();
                CartaoDeCredito cartao = new CartaoDeCredito(limite);

        while (opcao != 2) {

            System.out.println("Insira o nome do item que deseja comprar: ");
            descricao = entrada.next();

            System.out.println("Insira o valor deste item");
            valor = entrada.nextDouble();

            Compras compra = new Compras(descricao, valor);

            cartao.lancaCompra(compra);

            do {
                System.out.println("""
                       Escolha uma opção:
                                           
                       1 - Continuar compras
                       2 - Sair""");
                opcao = entrada.nextInt();
                if (opcao < 1 || opcao > 2) {
                    System.out.println("Opção inválida!");
                }
            } while (opcao < 1 || opcao > 2);

            if (opcao == 2){
                cartao.listaDeCompras.sort(Comparator.comparing(Compras::getPrecoItem));
                System.out.println("\nSaldo restante: " + cartao.getSaldo());
                System.out.println("\nLista de Compras: ");
                for (Compras itens : cartao.listaDeCompras){
                    System.out.println(itens.getNome() + " - R$" + itens.getPrecoItem());
                }
            }
        }
    }
}
import java.util.ArrayList;
import java.util.List;

public class CartaoDeCredito {
    private double limite;
    private double saldo;
    List<Compras> listaDeCompras;

    public CartaoDeCredito(double limite) {
        this.limite = limite;
        this.saldo = limite;
        this.listaDeCompras = new ArrayList<>();
    }

    public void lancaCompra(Compras compra){
        if (this.saldo >= compra.getPrecoItem()){
            this.listaDeCompras.add(compra);
            this.saldo -= compra.getPrecoItem();
            System.out.println("Compra efetuada!");
        } else {
            System.out.println("Saldo insuficiente!");
        }
    }

    public double getLimite() {
        return limite;
    }

    public double getSaldo() {
        return saldo;
    }

    public List<Compras> getListaDeCompras() {
        return listaDeCompras;
    }
}
public class Compras {
    private String nome;
    private double precoItem;

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

    public String getNome() {
        return nome;
    }

    public double getPrecoItem() {
        return precoItem;
    }

    @Override
    public String toString() {
        return "Nome: " + this.getNome() + " | Preço: R$" + this.getPrecoItem() + "\n";
    }
}
1 resposta

Olá, Miqueias, como vai? Espero que esteja bem!

Fico feliz em ver que realizou a atividade, é isso aí! Continue se dedicando aos estudos e colocando em prática seus aprendizados.

Caso tenha dúvidas, fico à disposição.

Abraços e bons estudos!