import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class AplicacaoCompras {
private double limiteCartao;
private double saldoDisponivel;
private List<Compra> compras;
public AplicacaoCompras(double limiteCartao) {
this.limiteCartao = limiteCartao;
this.saldoDisponivel = limiteCartao;
this.compras = new ArrayList<>();
}
public void iniciar(Scanner scanner) {
int opcao;
do {
System.out.print("Digite a descrição da compra: ");
String descricao = scanner.next();
System.out.print("Digite o valor da compra: ");
double valor = scanner.nextDouble();
if (valor <= saldoDisponivel) {
realizarCompra(descricao, valor);
saldoDisponivel -= valor;
} else {
System.out.println("Saldo insuficiente!");
}
System.out.print("Digite 0 para sair ou 1 para continuar: ");
opcao = scanner.nextInt();
} while (opcao != 0);
exibirComprasOrdenadas();
System.out.println("Saldo do cartão: " + saldoDisponivel);
}
private void realizarCompra(String descricao, double valor) {
Compra novaCompra = new Compra(descricao, valor);
compras.add(novaCompra);
System.out.println("Compra realizada!");
}
private void exibirComprasOrdenadas() {
if (!compras.isEmpty()) {
Collections.sort(compras);
System.out.println("COMPRAS REALIZADAS:");
for (Compra compra : compras) {
System.out.println(compra.getDescricao() + " - " + compra.getValor());
}
} else {
System.out.println("Nenhuma compra realizada.");
}
}
}
public class Compra implements Comparable<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 int compareTo(Compra outraCompra) {
return Double.compare(this.valor, outraCompra.getValor());
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite o limite do cartão: ");
double limiteCartao = scanner.nextDouble();
AplicacaoCompras aplicacao = new AplicacaoCompras(limiteCartao);
aplicacao.iniciar(scanner);
scanner.close();
}
}