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