1
resposta

Desafio do Curso

Depois de assistir mais algumas aulas percebi que com duas classes não fica muito organizado. mas terminei!

package cardscompras;
import java.util.Scanner;
public class Principal {

    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        System.out.println("Digite o limite do cartão: ");
        double limite = leitura.nextDouble();
        CartaoCredito cartao = new CartaoCredito(limite);


        int sair = 1;
        while (sair != 0) {
            System.out.println("Digite a descrição da compra:");

            String produtoDescricao = leitura.next();


            System.out.println("Digite o valor da compra:");
            double produtoPreco = leitura.nextDouble();


            Compra compra = new Compra(produtoDescricao, produtoPreco);
            boolean compraRealizada = cartao.lancaCompra(compra);


            if (compraRealizada) {
                System.out.println("Compra realizada!");
                System.out.println("Digite 0 para sair ou 1 para continuar");

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

            System.out.println("Compras realizadas:\n");


            for (Compra c : cartao.getCompras()) {
                System.out.println(c.getProdutoDescricao() + " R$" + c.getProdutoPreco());
            }


            System.out.println("\nSaldo do cartão: " + cartao.getSaldo());


        }
    }
}
package cardscompras;

import java.util.ArrayList;

import java.util.List;
import java.util.Scanner;

public class CartaoCredito{

    private double limite;
    private double saldo;
    private List<Compra> compras;

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



    public double getLimite() {
        return limite;
    }

    public double getSaldo() {
        return saldo;
    }

    public List<Compra> getCompras() {
        return compras;
    }
    public boolean lancaCompra(Compra compra){
        if(this.saldo >= compra.getProdutoPreco()){
            this.saldo -= compra.getProdutoPreco();
            this.compras.add(compra);
            return true;
        }
        return false;
    }


}

package cardscompras;

public class Compra implements Comparable<Compra>{
        private String produtoDescricao;
        private double produtoPreco;


        public Compra(String produtoDescricao, double produtoPreco) {
            this.produtoDescricao = produtoDescricao;
            this.produtoPreco = produtoPreco;
        }


        public String getProdutoDescricao() {
            return produtoDescricao;
        }


        public double getProdutoPreco() {
            return produtoPreco;
        }


        @Override
        public String toString() {
            return this.getProdutoDescricao() + " R$" +  this.getProdutoPreco();
        }

        @Override
        public int compareTo(Compra outraCompra) {
            return Double.valueOf(this.produtoPreco).compareTo(Double.valueOf(outraCompra.produtoPreco));
        }
    }


1 resposta

Olá, Terezinha!

Ótimos códigos, parabéns pela dedicação e elaboração deles! Obrigada também por tê-los compartilhado com a nossa comunidade do fórum, tenho certeza que ajudará muitos colegas! Caso surja alguma dúvida, sinta-se à vontade em comunicar por aqui, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!