import java.util.Scanner;
import java.util.ArrayList;
public class App {
public static void main(String[] args) throws Exception {
Scanner sc= new Scanner(System.in);
ArrayList compras = new ArrayList<>();
System.out.println("informe a o numero do cartao: ");
String numero = sc.nextLine();
System.out.println("infome o limite do cartao de credito");
double limite = sc.nextDouble();
Cartao cartao = new Cartao( numero, limite);
int opcao;
do{
System.out.print("\n [1]- fazer compra \n");
System.out.print("\n [2]-ver saldo da compras \n");
System.out.print("\n [3]- sair \n");
opcao = sc.nextInt();
sc.nextLine();
switch (opcao) {
case 1:
System.out.println("\n Produto que deseja comprar ");
String descricao = sc.nextLine();
System.out.println("\n valor da compra ");
double valor = sc.nextDouble();
if (cartao.Comprar(valor)) {
compras.add(new Compra(descricao, valor));
System.out.println("\n Compra aprovada !");
}else{
System.out.println("\n Saldo insuficiente para realizar a compra ");
}
break;
case 2:
System.out.println("\n ===Historico de compras====\n");
for(Compra c : compras){
System.out.println(c);
}
System.out.println("Saldo restante "+ String.format("%.2f", cartao.getSaldo()) );
break;
case 3:
System.out.println("Sistema encerrado ....");
break;
default:
System.out.println("Opicao invalida" );
}
}while (opcao !=3);
sc.close();
}
}
public class Cartao {
private String numero;
private int limite;
private double saldo;
public Cartao( String numero, int limite, double saldo){
this.numero = numero;
this.limite = limite;
this.saldo = limite;
}
public String getNumero(){
return numero;
}
public int getLimite(){
return limite;
}
public double getSaldo(){
return saldo;
}
public boolean Comprar(double valor){
if (valor <= saldo){
saldo -= valor;
return true;
}else{
return false;
}
}
}
public class 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 descricao +"- R$ " + String.format("%.2f",valor);
}
}