1
resposta

Desafio Compras

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CartaoCredito {
    //Quais os atributos do meu cartão
        private String nome;
        private double limite;
        private double saldo;
        private List<Compras> compra;  //uma lista para receber as compras q serão feitas.


    //Construtor.

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

    public boolean lancaCompra(Compras compra) {
        if(this.saldo > compra.getValor()) {
            this.saldo -= compra.getValor();
            this.compra.add(compra);
            return true;
        }
        return false;
    }

    //getters & Setters
    public String getNome() { return nome;}

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

    public double getSaldo() {return saldo;}

    public List<Compras> getCompra() {return compra;}


    public void listarCompra() {
        Collections.sort(compra);
        System.out.println("**********************************");
        System.out.println("COMPRAS REALIZADAS: \n");
        for (Compras c : compra) {
            System.out.println(c.getProduto() + " - " + c.getValor());
        }
        System.out.println("\n**********************************");
        System.out.println("\nSeu saldo do cartão: R$" +saldo);
    }

}
public class Compras implements Comparable<Compras>{
        private String produto;
        private double valor;



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

    public String getProduto() {
        return produto;
    }

    public double getValor() {
        return valor;
    }


    @Override
    public String toString() {
        return "Compra: " +produto+
               " - Valor: " +valor;
    }

    @Override
    public int compareTo(Compras outra) {
        return Double.compare(this.valor, outra.valor);
    }
}
import java.util.Scanner;

public class TesteUsoCartao {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);//coleta de informações

        System.out.println("------------Cartão de Crédito---------");
        System.out.println("Dados do Cartão");
        System.out.println("Digite seu nome: ");
        String nome = scanner.nextLine();

        double limite = 1000.0;
        System.out.println("O Limite do seu cartão é: R$" + limite);


        CartaoCredito cartao = new CartaoCredito(limite);
        cartao.setNome(nome);


        int sair = 1;
        while (sair != 0) {
            System.out.println("Olá " + nome + " , qual produto deseja comprar?");
            String descricao = scanner.nextLine();

            System.out.println("Digite o valor dessa compra: ");
            double valor = scanner.nextDouble();
            scanner.nextLine();

            Compras novaCompra = new Compras(descricao, valor);

            if (cartao.lancaCompra(novaCompra)) {
                System.out.println("Compra Realizada!!");
                System.out.println("Digite 0 para SAIR ou 1 para Continuar: ");
                sair = scanner.nextInt();
                scanner.nextLine();
                if (sair != 0 && sair != 1) {
                    System.out.println("⚠️ Opção incorreta! Saindo por segurança.");
                    sair = 0;
                }

            } else {
                System.out.println("Saldo Insuficiente!");
                sair = 0;
            }

        }

        cartao.listarCompra();
        scanner.close();

    }
}
1 resposta

Legal!!!