Cartao.java
package DesafioFinal.Curso3;
import java.util.Random;
import java.util.Scanner;
public class Cartao{
private double limite;
public double getLimite() {
return limite;
}
public void setLimite(double limite) {
this.limite = limite;
}
}
Compra.java
package DesafioFinal.Curso3;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Compra {
private String descricao;
private double valor;
public double getValor() {
return valor;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public void setValor(double valor) {
this.valor = valor;
}
public String getDescricao() {
return descricao;
}
@Override
public String toString() {
return this.descricao + " - " + this.valor;
}
}
Menu.java
package DesafioFinal.Curso3;
import ComOO.br.com.alura.screenmatch.modelos.Titulo;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Menu {
private final Cartao cartao;
private final List<Compra> lista = new ArrayList<>();
public Menu(Cartao cartao){
this.cartao = cartao;
}
public void executarMenu(Scanner scanner) {
try {
// Setando o saldo do cartão pelo Menu
System.out.println("Digite o limite do cartão");
double limiteCartao = scanner.nextDouble();
scanner.nextLine();
cartao.setLimite(limiteCartao);
// Pegando o saldo do cartão e iniciando o loop
double saldo = cartao.getLimite();
boolean continua = true;
while(continua){
Compra compra = new Compra();
System.out.println("Digite a descrição da compra");
String descricaoInput = scanner.nextLine();
compra.setDescricao(descricaoInput);
System.out.println("Digite o valor da compra");
double valorInput = scanner.nextDouble();
scanner.nextLine();
compra.setValor(valorInput);
if(saldo < valorInput){
System.out.println("\nSaldo insuficiente!");
continua = false;
break;
}
saldo -= valorInput;
lista.add(compra);
System.out.println("Compra realizada");
System.out.println("Digite 0 para sair ou 1 para continuar");
double decisao = scanner.nextDouble();
scanner.nextLine();
if(decisao == 0) continua = false;
lista.sort(Comparator.comparing(Compra::getValor));
}
System.out.println("\n**********************\nCOMPRAS REALIZADAS:\n");
for(Compra item : lista){
System.out.println(item);
}
System.out.println("\n**********************");
System.out.println("\nSaldo do cartão: "+ saldo);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
Principal.java
package DesafioFinal.Curso3;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Cartao cartao = new Cartao();
Menu menu = new Menu(cartao);
Scanner scanner = new Scanner(System.in);
menu.executarMenu(scanner);
}
}