0
respostas

[Projeto] Desafio: Aplicação de Compras

package br.com.desafio.cartaocredito.modelo;

public class Cartao {

    private double limiteDisponivel;

    public Cartao() {

    }

    public double getLimiteDisponivel() {
        return limiteDisponivel;
    }

    public void setLimiteDisponivel(double limiteCartao) {
        this.limiteDisponivel = limiteCartao;
    }

}
package br.com.desafio.cartaocredito.modelo;

import java.text.DecimalFormat;

public class Compras extends Cartao {
    private String nomeProduto;
    private double valorProduto;

    public Compras() {

    }

    public void setNomeProduto(String nomeProduto) {
        this.nomeProduto = nomeProduto;
    }

    public double getValorProduto() {
        return valorProduto;
    }

    public void setValorProduto(double valorProduto) {
        this.valorProduto = valorProduto;
    }

    @Override
    public String toString() {
        DecimalFormat df = new DecimalFormat("####.00");
        String precoFormatado = df.format(this.getValorProduto());
        return "Produto: " + nomeProduto + " | Valor: R$ " + precoFormatado;
    }
}
package br.com.desafio.cartaocredito.principal;

import br.com.desafio.cartaocredito.modelo.Cartao;
import br.com.desafio.cartaocredito.modelo.Compras;

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

public class Principal {
    public static void main(String[] args) {

        Scanner leitura = new Scanner(System.in);
        Cartao cartao = new Cartao();
        List<Compras> listaDeCompras = new ArrayList<>();

        System.out.println("Informe o limite disponível: ");
        double limiteCartao = leitura.nextDouble();
        cartao.setLimiteDisponivel(limiteCartao);
        System.out.println(String.format("Limite Disponível: R$%.2f", limiteCartao));

        int continuarComprando = 1;
        while (continuarComprando == 1) {
            Compras novaCompra = new Compras();

            System.out.println("Insira o nome do produto: ");
            String produto = leitura.next();
            novaCompra.setNomeProduto(produto);

            System.out.println("Informe o valor do produto: ");
            double preco = leitura.nextDouble();
            novaCompra.setValorProduto(preco);

            if (cartao.getLimiteDisponivel() >= preco) {
                double novoLimite = cartao.getLimiteDisponivel() - preco;
                cartao.setLimiteDisponivel(novoLimite);
                System.out.println("Compra efetuada com sucesso!");
                System.out.println(String.format("Novo limite: R$%.2f", novoLimite));
                listaDeCompras.add(novaCompra);
            } else {
                System.out.println("Limite insuficiente para efetuar a compra.");
            }

            System.out.println("Digite 1 para continuar comprando ou 0 para sair: ");
            continuarComprando = leitura.nextInt();

        }

        System.out.println("\nCompras finalizadas.");
        System.out.println("\n----- HISTÓRICO DE COMPRAS -----");

        for (Compras compra : listaDeCompras) {
            System.out.println(compra.toString());
        }

        System.out.println("---------------------------------");
        System.out.println(String.format("Limite disponível: R$%.2f", cartao.getLimiteDisponivel()));

        leitura.close();
    }
}

Saída:

Informe o limite disponível: 
5000
Limite Disponível: R$5000,00
Insira o nome do produto: 
Celular
Informe o valor do produto: 
2500
Compra efetuada com sucesso!
Novo limite: R$2500,00
Digite 1 para continuar comprando ou 0 para sair: 
1
Insira o nome do produto: 
Notebook
Informe o valor do produto: 
2000
Compra efetuada com sucesso!
Novo limite: R$500,00
Digite 1 para continuar comprando ou 0 para sair: 
1
Insira o nome do produto: 
Impressora
Informe o valor do produto: 
600
Limite insuficiente para efetuar a compra.
Digite 1 para continuar comprando ou 0 para sair: 
1
Insira o nome do produto: 
Mouse
Informe o valor do produto: 
400
Compra efetuada com sucesso!
Novo limite: R$100,00
Digite 1 para continuar comprando ou 0 para sair: 
0

Compras finalizadas.

----- HISTÓRICO DE COMPRAS -----
Produto: Celular | Valor: R$ 2500,00
Produto: Notebook | Valor: R$ 2000,00
Produto: Mouse | Valor: R$ 400,00
---------------------------------
Limite disponível: R$100,00

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR