1
resposta

[Projeto] Projeto Final - Minha solucao

Fala galera! Vai meu código maroto da solucao do projeto. Caso queiram clonar o projeto...só acessar o meu git.

https://github.com/tux-php/ProjetoComprasJava

Vlw.

package com.br.compras.controller;

public class Cartao {
    private String agencia;
    private String conta;

    public Cartao(String agencia, String conta) {
        this.agencia = agencia;
        this.conta = conta;
    }

    public String getAgencia() {
        return agencia;
    }


    public String getConta() {
        return conta;
    }
}

package com.br.compras.controller;

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

public class CartaoCredito extends Cartao {
    private final double limite;
    private double saldo;
    private final List<Produto> compras;
    public CartaoCredito(String agencia, String conta, double limite) {
        super(agencia, conta);
        this.limite = limite;
        this.saldo = limite;
        this.compras = new ArrayList<>();

    }
    public double getSaldo() {
        return saldo;
    }

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

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

}

package com.br.compras.controller;

public class Produto implements Comparable<Produto> {
    private String descricao;
    private double valor;

    public Produto(String descricao, double valor) {
        this.descricao = descricao;
        this.valor = valor;
    }

    public String getDescricao() {
        return descricao;
    }

    public double getValor() {
        return valor;
    }
    @Override
    public int compareTo(Produto produto) {
        return Double.compare(getValor(),produto.getValor());
    }

    @Override
    public String toString() {
        return getDescricao() + " - " + getValor();
    }
}

package com.br.compras.aplicacao;

import com.br.compras.controller.CartaoCredito;
import com.br.compras.controller.Produto;

import java.util.Collections;
import java.util.Scanner;

public class AplicacaoCompras {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Digite o limite do cartão: ");
        double limite = scan.nextDouble();
        CartaoCredito cc = new CartaoCredito("8888-8", "9.999-X", limite);

        double totalDeCompras = 0;
        int contador = 1;
        boolean sair = false;

        while (!sair) {

            Produto[] p = new Produto[20];

            System.out.println("Digite a descrição da compra " + contador + " : ");
            String descProduto = scan.next();

            System.out.println("Digite o valor da compra " + contador + " : ");
            double vl = scan.nextDouble();

            p[contador] = new Produto(descProduto, vl);
            totalDeCompras += p[contador].getValor();

            if (cc.lancaCompra(p[contador])) {
                System.out.println("Compra realizada!");
                System.out.println("Digite 0 para sair ou 1 para continuar");
                int flag = scan.nextInt();
                if (flag == 0) {
                    extratoConta(cc);
                    sair = true;
                } else if (flag == 1) {
                    contador++;
                } else {
                    System.out.println("Tecla errada.");
                }
            } else {
                System.out.println("Saldo Insuficiente!");
                extratoConta(cc);
                sair = true;
            }
        }
    }

    private static void extratoConta(CartaoCredito cc) {
        System.out.println("***********************");
        System.out.println("COMPRAS REALIZADAS:");
        //cc.getCompras().sort(Comparator.comparing(Produto::getValor));
        Collections.sort(cc.getCompras());
        for (Produto compras: cc.getCompras()) {
            System.out.println(compras);
        }
        System.out.println("***********************");
        System.out.println("Saldo do cartão: " + cc.getSaldo());
    }
}
1 resposta

Olá Fernando, como vai?

Que bom que você realizou a atividade, é isso aí! Espero que continue se dedicando aos estudos e colocando em prática seus aprendizados.

Caso surja alguma dúvida, fico à disposição.

Abraços e bons estudos!