package Banco01;
public class Compra implements Comparable {
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 this.getValor().compareTo(outraCompra.getValor());
}
}
package Banco01;
import java.util.ArrayList;
import java.util.List;
public class CartaoDeCredito {
private Double limite;
private Double saldo;
private List<Compra> compras;
public CartaoDeCredito(double limite) {
this.limite = limite;
this.saldo = limite;
this.compras = new ArrayList<>();
}
public boolean compra(Compra compra) {
if (this.saldo > compra.getValor()) {
this.saldo -= compra.getValor();
this.compras.add(compra);
return true;
} else {
return false;
}
}
public Double getLimite() {
return limite;
}
public Double getSaldo() {
return saldo;
}
public List<Compra> getCompras() {
return compras;
}
}
package Banco01;
import java.util.Collections;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) throws Exception {
Scanner entrada = new Scanner(System.in);
System.out.println("Quanto você possui de crédito");
Double limite = entrada.nextDouble();
entrada.nextLine();
CartaoDeCredito cartaoDeCredito = new CartaoDeCredito(limite);
int opcao;
do {
String menu = """
Escolha uma opção
------------------------------------------
1- Comprar um produto
2- Vizualizar a lista de produtos
3- Vizualizar crédito
4- sair
------------------------------------------
""";
System.out.println(menu);
opcao = entrada.nextInt();
entrada.nextLine();
switch (opcao) {
case 1:
System.out.println("O que você quer comprar? ");
String produto = entrada.nextLine();
System.out.println("Qual o valor? ");
Double valor = entrada.nextDouble();
entrada.nextLine();
Compra compra = new Compra(produto, valor);
boolean compraRealizada = cartaoDeCredito.compra(compra);
if (compraRealizada) {
System.out.println("Compra realizada!");
} else {
System.out.println("Saldo insuficiente para realizar a compra.");
}
break;
case 2:
Collections.sort(cartaoDeCredito.getCompras());
for (Compra lista : cartaoDeCredito.getCompras()) {
System.out.println(lista);
}
break;
case 3:
System.out.printf("Você possui R$%.2f de crédito\n", cartaoDeCredito.getLimite());
break;
case 4:
break;
default:
System.out.println("Você precisa digitar as opções 1, 2, 3 ou 4\n");
}
} while (opcao != 4);
}
}