package com.entronomia.aplicaciones.comercio.operaciones;
public class Compra implements Comparable<Compra> {
private double costo;
private String producto;
public Compra(double costo, String producto) {
this.costo = costo;
this.producto = producto;
}
public double getCosto() {
return costo;
}
public String getProducto() {
return producto;
}
@Override
public int compareTo(Compra compra) {
if (this.getCosto() < compra.getCosto()) {
return -1;
} else if (this.getCosto() > compra.getCosto()) {
return 1;
} else {
return 0;
}
}
@Override
public String toString() {
return "producto: " + this.getProducto() + " costo: " + this.getCosto();
}
}
package com.entronomia.aplicaciones.comercio.principal;
import com.entronomia.aplicaciones.comercio.operaciones.Compra;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Tienda {
public static void main(String[] args) {
double saldo = 0;
String producto;
double costo;
boolean estado = true;
int operacion = 0;
Scanner entrada = new Scanner(System.in);
List<Compra> listaDeCompras = new ArrayList<>();
System.out.println("**********************************************");
System.out.println("Operaciones de compra con tarjeta de debito");
System.out.println("**********************************************");
System.out.println("¿Cuál es el saldo inicial de la tarjeta?");
saldo = entrada.nextDouble();
while (estado) {
System.out.println("Escriba el número de la operación a realizar:");
System.out.println("1. Realizar compra");
System.out.println("2. Consultar saldo y listar compras realizadas");
System.out.println("3. Salir");
operacion = entrada.nextInt();
switch (operacion) {
case 1: {
System.out.println("¿Que producto va a comprar?");
producto = entrada.next();
System.out.println("¿Cuál es el monto de la compra?");
costo = entrada.nextDouble();
if (costo > saldo) {
System.out.println("El saldo es insuficiente, intente con otro producto");
break;
} else {
saldo = saldo - costo;
Compra compra = new Compra(costo, producto);
listaDeCompras.add(compra);
break;
}
}
case 2: {
Collections.sort(listaDeCompras);
System.out.println("El saldo actualizado es: " + saldo + "$");
System.out.println("La lista de compras realizadas ordenadas por monto es: " + listaDeCompras);
break;
}
case 3: {
System.out.println("Finalizando el programa. Muchas gracias por usar nuestros servicios");
estado = false;
}
}
}
}
}