package Principal;
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Scanner;
class Compra { String descripcion; double valor;
public Compra(String descripcion, double valor) {
this.descripcion = descripcion;
this.valor = valor;
}
}
public class Principal2 { public static void main(String[] args) {
double limiteTarjeta;
String descripcionCompra;
double valorCompra;
int escribirSalir = 0;
int ahoraSalgo = 1;
ArrayList<Compra> listaCompras = new ArrayList<>();
Scanner sc = new Scanner(System.in);
System.out.println("Escribe el limite de la tarjeta");
limiteTarjeta = sc.nextDouble();
sc.nextLine();
while (escribirSalir != ahoraSalgo) {
System.out.println("Escribe la descripcion de la compra");
descripcionCompra = sc.nextLine();
System.out.println("Escribe el valor de la compra");
valorCompra = sc.nextDouble();
sc.nextLine();
if (valorCompra <= limiteTarjeta) {
listaCompras.add(new Compra(descripcionCompra, valorCompra));
limiteTarjeta = limiteTarjeta - valorCompra;
System.out.println("Compra Realizada");
} else {
System.out.println("Saldo Insuficiente En Tarjeta");
mostrarResumen(listaCompras, limiteTarjeta);
break;
}
System.out.println("Escribe 0 para salir y 1 para continuar");
ahoraSalgo = sc.nextInt();
sc.nextLine();
if (ahoraSalgo == 0) {
mostrarResumen(listaCompras, limiteTarjeta);
break;
} else if (ahoraSalgo != 1) {
System.out.println("Has ingresado un número inválido, continuaré por defecto.");
ahoraSalgo = 1;
}
}
}
public static void mostrarResumen(ArrayList<Compra> lista, double saldo) {
if (lista.isEmpty()) {
System.out.println("No se realizaron compras.");
} else {
Collections.sort(lista, Comparator.comparingDouble(c -> c.valor));
System.out.println("\n*******************************\n");
System.out.println("Compras Realizadas: ");
for (Compra c : lista) {
System.out.println("Compra: " + c.descripcion + " - $" + c.valor);
}
System.out.println("\n*******************************\n");
}
System.out.println("Saldo en tarjeta: " + saldo);
}
}