import br.com.cartaodecredito.Cartao;
import br.com.cartaodecredito.Compra;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
System.out.println("Bem vindo!");
Scanner leitura = new Scanner(System.in);
System.out.println("Digite o limite do seu cartão: ");
double limite = leitura.nextDouble();
Cartao cartaoDeCredito = new Cartao(limite);
int sair = 1;
while (sair != 0) {
System.out.println("Digite a descrição da compra: ");
String descricao = leitura.next();
System.out.println("Digite o valor da compra");
double valor = leitura.nextDouble();
Compra compra = new Compra(descricao, valor);
boolean compraRealizada = cartaoDeCredito.lancaCompra(compra);
if (compraRealizada) {
System.out.println("Compra realizada com sucesso!");
System.out.println("Digite 0 para sair ou 1 para continuar");
sair = leitura.nextInt();
} else {
System.out.println("Seu saldo é insuficiente");
sair = 0;
}
}
System.out.println("___________________________________________");
System.out.println("Compras realizadas: \n");
for (Compra c : cartaoDeCredito.getCompras()) {
System.out.println(c.getDescricao() + " - " + c.getValor());
}
System.out.println("\n_____________________________________________");
System.out.println("Saldo do cartão: " + cartaoDeCredito.getSaldo());
}
}
package br.com.cartaodecredito;
import java.util.ArrayList;
import java.util.List;
public class Cartao {
private double limite;
private double saldo;
private List<Compra> compras;
public double getLimite() {
return limite;
}
public double getSaldo() {
return saldo;
}
public Cartao(double limite) {
this.limite = limite;
this.saldo = limite;
this.compras = new ArrayList<>();
}
public boolean lancaCompra (Compra compra) {
if (this.saldo > compra.getValor()){
this.saldo -= compra.getValor();
this.compras.add(compra);
return true;
}
return false;
}
public List<Compra> getCompras() {
return compras;
}
}
package br.com.cartaodecredito;
public class Compra implements Comparable<Compra> {
private String descricao;
private double valor;
public Compra(String descricao, double valor) {
this.descricao = descricao;
this.valor = valor;
}
public String getDescricao() {
return descricao;
}
public double getValor() {
return valor;
}
@Override
public String toString() {
return "Compra: descrição = " + descricao + ", Valor = " + valor;
}
@Override
public int compareTo(Compra outraCompra) {
return Double.compare(this.valor, outraCompra.valor);
}
}