Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Cartão de Crédito | Minha Solução

Main

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double totalGasto = 0;

        System.out.print("Digite o limite do Cartão: ");
        double limite = scanner.nextDouble();
        CartaoDeCredito cartao = new CartaoDeCredito(limite);

        String menu = """
                \n1- Adicionar Compra
                2- Ver Fatura
                3- Sair
                """;
        
        int menuOption = 0;
        while (menuOption != 3) {
            System.out.println("\nO que gostaria de fazer?");
            System.out.println(menu);
            System.out.print("Digite a opção: ");
            menuOption = scanner.nextInt();

            if (menuOption == 1) {
                int sair = 1;
                while (sair != 0) {
                    cartao.orderBuy();

                    System.out.println("\nDigite 0 para sair ou 1 para continuar");
                    sair = scanner.nextInt();
                    scanner.nextLine();
                }
            } else if (menuOption == 2) {
                cartao.showInvoice();

            } else if (menuOption > 3 || menuOption < 1) {
                System.out.println("Opção Inválida");

            }
        }
        System.out.println("Saindo...");
        System.out.println("\nObrigado por utilizar nossos serviços!");
    }
}

CartaoDeCredito

import java.util.*;

public class CartaoDeCredito {
    private double limite;
    private double saldo;
    private List<Compras> compras;
    private Scanner scanner;
    private double totalSpent = 0;

    public CartaoDeCredito (double limite) {
        this.limite = limite;
        this.saldo = limite;
        this.scanner = new Scanner(System.in);
        this.compras = new ArrayList<>();
    }

    public double getLimite() {
        return limite;
    }

    public double getSaldo() {
        return saldo;
    }

    public List<Compras> getCompras() {
        return compras;
    }

    public void orderBuy (){
        Compras compra = new Compras();
        System.out.print("\nNome do Produto: ");
        compra.setProduto(scanner.nextLine());

        System.out.print("Digite o Valor: ");
        compra.setValorProduto(scanner.nextDouble());
        scanner.nextLine();

        if (compra.getValorProduto() <= this.saldo) {
            compras.add(new Compras(compra.getProduto(), compra.getValorProduto()));
            this.saldo -= compra.getValorProduto();
            System.out.println("\nCompra Realizada!");
            totalSpent += compra.getValorProduto();

        } else {
            System.out.println("\nSaldo insuficiente!");
        }
    }

    public void showInvoice () {
        System.out.println(String.format("\nFatura do Cartão | Limite R$ %.2f", this.limite));
        System.out.println("-----------------------------------------------");

        Collections.sort(compras, Comparator.comparing(Compras::getValorProduto));
        for (Compras compra : compras){
            System.out.println(compra.getProduto() + String.format(" R$ %.2f", compra.getValorProduto()));
        }
        System.out.println(String.format("\nTotal Gasto R$ %.2f | Saldo Restante R$ %.2f", totalSpent, this.saldo));
        System.out.println("-----------------------------------------------");
    }
}

Compras

public class Compras {
    private String produto;
    private double valor;

    public Compras(String produto, double valor) {
        this.produto = produto;
        this.valor = valor;
    }

    public Compras() {

    }

    public String getProduto() {
        return produto;
    }

    public void setProduto(String produto) {
        this.produto = produto;
    }

    public double getValorProduto() {
        return valor;
    }

    public void setValorProduto(double valorProduto) {
        this.valor = valorProduto;
    }
}
1 resposta
solução!

Oi, Matheus! Tudo bem?

Ótimos códigos, parabéns! Espero que continue a explorar os conteúdos para ampliar seu conhecimento e desenvolver novas habilidades. Caso tenha restado alguma dúvida em relação a qualquer conteúdo do curso ou atividade, não hesite em perguntar, estou disponível e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!