public class Compra {
private String description;
private double Precio;
public Compra(String description, double precio) {
this.description = description;
Precio = precio;
}
public String getDescription() {
return description;
}
public double getPrecio() {
return Precio;
}
@Override
public String toString() {
return getDescription() + " - " + getPrecio();
}
}
import java.util.ArrayList; import java.util.Comparator; import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int opcion = 1;
int listaNumero = 0;
System.out.println("Escribe el Limite de la Tarjeta");
double limiteTarjeta = scan.nextDouble();
scan.nextLine();
ArrayList<Compra> listaCompras = new ArrayList<>();
while (opcion == 1){
System.out.println("Escriba la Descripton de la Compra");
String compra = scan.nextLine();
System.out.println("Escriba el Valor de la Compra:");
double precio = scan.nextDouble();
if (limiteTarjeta > precio){
Compra Compras = new Compra(compra, precio);
listaCompras.add(Compras);
limiteTarjeta = limiteTarjeta - listaCompras.get(listaNumero).getPrecio();
System.out.println("Compra Realizada con Exito");
listaNumero++;
} else {
System.out.println("Compra excede el límite disponible.");
break;
}
System.out.println("Escriba 0 para Salir o 1 para Continuar");
opcion = scan.nextInt();
scan.nextLine(); // limpiar el buffer
}
System.out.println("*******************\n\nLista de compras realizadas: \n\n**********************");
listaCompras.sort(Comparator.comparing(Compra::getPrecio));
for (Compra c : listaCompras) {
System.out.println(c.toString());
}
System.out.println("Límite restante: $" + limiteTarjeta);
}
}