Main
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double totalGasto = 0;
System.out.print("Digite o limite do Cartão: ");
double limite = scanner.nextDouble();
CartaoDeCredito cartao = new CartaoDeCredito(limite);
String menu = """
\n1- Adicionar Compra
2- Ver Fatura
3- Sair
""";
int menuOption = 0;
while (menuOption != 3) {
System.out.println("\nO que gostaria de fazer?");
System.out.println(menu);
System.out.print("Digite a opção: ");
menuOption = scanner.nextInt();
if (menuOption == 1) {
int sair = 1;
while (sair != 0) {
cartao.orderBuy();
System.out.println("\nDigite 0 para sair ou 1 para continuar");
sair = scanner.nextInt();
scanner.nextLine();
}
} else if (menuOption == 2) {
cartao.showInvoice();
} else if (menuOption > 3 || menuOption < 1) {
System.out.println("Opção Inválida");
}
}
System.out.println("Saindo...");
System.out.println("\nObrigado por utilizar nossos serviços!");
}
}
CartaoDeCredito
import java.util.*;
public class CartaoDeCredito {
private double limite;
private double saldo;
private List<Compras> compras;
private Scanner scanner;
private double totalSpent = 0;
public CartaoDeCredito (double limite) {
this.limite = limite;
this.saldo = limite;
this.scanner = new Scanner(System.in);
this.compras = new ArrayList<>();
}
public double getLimite() {
return limite;
}
public double getSaldo() {
return saldo;
}
public List<Compras> getCompras() {
return compras;
}
public void orderBuy (){
Compras compra = new Compras();
System.out.print("\nNome do Produto: ");
compra.setProduto(scanner.nextLine());
System.out.print("Digite o Valor: ");
compra.setValorProduto(scanner.nextDouble());
scanner.nextLine();
if (compra.getValorProduto() <= this.saldo) {
compras.add(new Compras(compra.getProduto(), compra.getValorProduto()));
this.saldo -= compra.getValorProduto();
System.out.println("\nCompra Realizada!");
totalSpent += compra.getValorProduto();
} else {
System.out.println("\nSaldo insuficiente!");
}
}
public void showInvoice () {
System.out.println(String.format("\nFatura do Cartão | Limite R$ %.2f", this.limite));
System.out.println("-----------------------------------------------");
Collections.sort(compras, Comparator.comparing(Compras::getValorProduto));
for (Compras compra : compras){
System.out.println(compra.getProduto() + String.format(" R$ %.2f", compra.getValorProduto()));
}
System.out.println(String.format("\nTotal Gasto R$ %.2f | Saldo Restante R$ %.2f", totalSpent, this.saldo));
System.out.println("-----------------------------------------------");
}
}
Compras
public class Compras {
private String produto;
private double valor;
public Compras(String produto, double valor) {
this.produto = produto;
this.valor = valor;
}
public Compras() {
}
public String getProduto() {
return produto;
}
public void setProduto(String produto) {
this.produto = produto;
}
public double getValorProduto() {
return valor;
}
public void setValorProduto(double valorProduto) {
this.valor = valorProduto;
}
}