public class Compras implements Comparable<Compras>{
private String nome;
private double preco;
public Compras(String nome, double preco) {
this.nome = nome;
this.preco = preco;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
@Override
public String toString() {
return String.format("%s - R$ %.2f", nome, preco);
}
@Override
public int compareTo(Compras compras) {
return this.getNome().compareTo(compras.getNome());
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Locale.setDefault(Locale.US);
Scanner sc = new Scanner(System.in);
boolean continuar = true;
double limiteCartao = 0;
List<Compras> produtosComprados = new ArrayList<>();
System.out.println("Digite o limite do cartão:");
limiteCartao = sc.nextDouble();
while(continuar) {
System.out.println("O que voce quer comprar?");
String compra = sc.next();
System.out.println("Digite o valor da compra:");
double valorCompra = sc.nextDouble();
if (valorCompra <= limiteCartao) {
System.out.println("Compra realizada.");
limiteCartao -= valorCompra;
produtosComprados.add(new Compras(compra, valorCompra));
} else {
System.out.println("Saldo insuficiente.");
}
System.out.println("Digite 0 para sair ou 1 para continuar");
int escolha = sc.nextInt();
switch (escolha) {
case 0:
continuar = false;
System.out.println("Compras realizadas: ");
produtosComprados.sort(Comparator.comparing(Compras::getPreco));
for (Compras produto : produtosComprados) {
System.out.println(produto);
}
System.out.printf("\nSaldo do cartão: R$ %.2f", limiteCartao);
break;
case 1:
break;
default:
System.out.println("Opção inválida. Digite entre 0 e 1.");
}
}
sc.close();
}
}