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);
}
}
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("Digite o limite do seu cartão de crédito: ");
Scanner sc = new Scanner(System.in);
double limite = sc.nextDouble();
List<Compra> compras = new ArrayList<>();
int opcao = 1;
while (opcao == 1 && limite > 0) {
System.out.println("Digite o nome da compra: ");
Scanner sc2 = new Scanner(System.in);
String desc = sc2.next();
System.out.println("Digite o custo da compra: ");
Scanner sc3 = new Scanner(System.in);
double custo = sc3.nextDouble();
if (custo <= limite) {
compras.add(new Compra(desc, custo));
limite -= custo;
System.out.println("Compra realizada com sucesso!");
System.out.printf("Limite restante: R$ %.2f%n", limite);
} else {
System.out.println("Compra negada! Limite insuficiente!");
}
if (limite > 0) {
System.out.println("\nDigite 0 para sair ou 1 para continuar as compras: ");
opcao = sc.nextInt();
sc.nextLine();
} else {
System.out.println("\nLimite do cartão esgotado!");
}
}
compras.sort(Comparator.comparingDouble(Compra::getValor));
System.out.println("\nCompras realizadas:");
for (Compra compra : compras) {
System.out.println(compra);
}
}
}