
public class Caja
{
    PilaEnlazada pila = new PilaEnlazada();
    
    public void registrarOperacion(OperacionCaja op) {
        pila.insertar(op);
    }
    
    public double comprobarCaja(double efectivoEnCaja) {
        double sumaSaldo = 0;
        double sumaEntrada = 0;
        double sumaCambio = 0;
        OperacionCaja oc  = null;
        while (!pila.estaVacia())
        {
            oc = (OperacionCaja)pila.retirar();
            switch (oc.tipo)
            {
                case OperacionCaja.SALDO:
                    sumaSaldo += oc.valor;
                    break;
                case OperacionCaja.ENTRADA:
                    sumaEntrada += oc.valor;
                    break;
                case OperacionCaja.CAMBIO:
                    sumaCambio += oc.valor;
                    break;
                default:
                    ;
            }
        }
        return efectivoEnCaja - (sumaSaldo + sumaEntrada - sumaCambio);
    }
}

