import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
double limite = 0;
double valor = 0;
String descricao;
int opcao = 0;
System.out.println("Insira o limite do cartão: ");
limite = entrada.nextDouble();
CartaoDeCredito cartao = new CartaoDeCredito(limite);
while (opcao != 2) {
System.out.println("Insira o nome do item que deseja comprar: ");
descricao = entrada.next();
System.out.println("Insira o valor deste item");
valor = entrada.nextDouble();
Compras compra = new Compras(descricao, valor);
cartao.lancaCompra(compra);
do {
System.out.println("""
Escolha uma opção:
1 - Continuar compras
2 - Sair""");
opcao = entrada.nextInt();
if (opcao < 1 || opcao > 2) {
System.out.println("Opção inválida!");
}
} while (opcao < 1 || opcao > 2);
if (opcao == 2){
cartao.listaDeCompras.sort(Comparator.comparing(Compras::getPrecoItem));
System.out.println("\nSaldo restante: " + cartao.getSaldo());
System.out.println("\nLista de Compras: ");
for (Compras itens : cartao.listaDeCompras){
System.out.println(itens.getNome() + " - R$" + itens.getPrecoItem());
}
}
}
}
}
import java.util.ArrayList;
import java.util.List;
public class CartaoDeCredito {
private double limite;
private double saldo;
List<Compras> listaDeCompras;
public CartaoDeCredito(double limite) {
this.limite = limite;
this.saldo = limite;
this.listaDeCompras = new ArrayList<>();
}
public void lancaCompra(Compras compra){
if (this.saldo >= compra.getPrecoItem()){
this.listaDeCompras.add(compra);
this.saldo -= compra.getPrecoItem();
System.out.println("Compra efetuada!");
} else {
System.out.println("Saldo insuficiente!");
}
}
public double getLimite() {
return limite;
}
public double getSaldo() {
return saldo;
}
public List<Compras> getListaDeCompras() {
return listaDeCompras;
}
}
public class Compras {
private String nome;
private double precoItem;
public Compras(String nome, double precoItem) {
this.nome = nome;
this.precoItem = precoItem;
}
public String getNome() {
return nome;
}
public double getPrecoItem() {
return precoItem;
}
@Override
public String toString() {
return "Nome: " + this.getNome() + " | Preço: R$" + this.getPrecoItem() + "\n";
}
}