Está en la página 1de 6

class

{













};
class
{


















































Cliente

Cliente *siguiente;
int numerodeatencion;
Cliente() {}
Cliente (int numerodeatencion, Cliente *siguiente)
{
this->numerodeatencion = numerodeatencion;
this->siguiente = siguiente;
}
Cliente (int numerodeatencion)
{
this->numerodeatencion = numerodeatencion;
this->siguiente = NULL;
}

ColaClientes

public:

















































string nombre;
Cliente *primero;
ColaClientes *siguiente;
ColaClientes() { }
ColaClientes(string nombre, Cliente *primero, ColaClientes *siguiente)
{
this->nombre = nombre;
this->primero = primero;
this->siguiente = siguiente;
this->primero->numerodeatencion = 1;
}
ColaClientes(string nombre)
{
this->nombre = nombre;
this->primero = NULL;
this->siguiente = NULL;
}
void Encolar(Cliente *nuevo)
{
if(!primero)
{
this->primero = nuevo;
this->primero->numerodeatencion = 1;
}
else
{
Cliente *aux = this->primero;
while(aux->siguiente)
{
aux = aux->siguiente;
}
aux->siguiente = nuevo;
nuevo->numerodeatencion = aux->numerodeatencion +1;
}
}
Cliente *Desencolar()
{
Cliente *r;
if(primero)
{
if(!primero->siguiente)
{
r = primero;
primero = NULL;
}
else if(!primero->siguiente->siguiente)
{
r = primero->siguiente;
primero->siguiente = NULL;
}














};

#A
class
{
















};
class
{






























else
{







}
}
return r;

Cliente *aux = this->primero;


while(aux->siguiente->siguiente)
{
aux = aux->siguiente;
}
r = aux->siguiente;
aux->siguiente = NULL;

ii)
Caja

Caja *siguiente;
int identificador;
int estado; // 1 activa, 0 inactiva
Caja() { }
Caja (int identificador, Caja *siguiente)
{
this->identificador = identificador;
this->siguiente = siguiente;
this->estado = 0;
}
Caja (int identificador)
{
this->identificador = identificador;
this->siguiente = NULL;
this->estado = 0;
}

ListaDeCajas

public:





























Caja *primero;
int clienteactual;
ListaDeCajas() { }
ListaDeCajas(Caja *primero, int clienteactual)
{
this->primero = primero;
this->clienteactual = clienteactual;
}
ListaDeCajas(int clienteactual)
{
this->clienteactual = clienteactual;
}
/*B*/
int AgregarCaja(Caja *nueva)
{
if(!primero)
{
this->primero = nueva;
this->primero->identificador = 1;
return 1;
}
else
{
Caja *aux = this->primero;
while(aux->siguiente)
{
aux = aux->siguiente;
}
aux->siguiente = nuevo;
nuevo->identificador = aux->identificador +1;






};

class
{






















return (aux->identificador +1);


}
}
/*C*/
void HabilitarCaja(int numeroCaja)
{
Caja *aux = primero;
while(aux)
{
if(aux->identificador = numeroCaja)
{
aux->estado = 1;
cout << "Caja " << numeroCaja << " esta
habilitada" << endl;
return;
}
}
cout << "Error: La caja " << numeroCaja << "no existe" << endl;
}
AtencionDiaria
ListaDeCajas *cajas;
ColaClientes *colas;
AtencionDiaria()
{
this->cajas = new ListaDeCajas();
this->colas = new ColaClientes();
}
/*D*/
void Atender(string NombreCola)
{
ColaClientes *aux = colas->primera;
while(aux)
{
if(aux->nombre == NombreCola)
{
Cliente *x = aux->Desencolar();
Cajas *aux = cajas->primera;
while(aux)
{
if(aux->estado == 1)
{
aux->clienteactual = x->numerodeatencion;
cout << "Pase cliente " << x>numerodeatencion << " a la caja " << aux->identificador << endl;
return;
}
aux = aux->siguiente;
}
}
}
cout << "Porfavor espere, no hay cajas disponibles" << endl;
}
/*E*/
void FinDeAtencion(int numeroCaja)
{
Caja *aux = cajas->primera;
while(aux)
{
if(aux->identificador = numeroCaja)
{
aux->estado = 1;
cout << "Caja liberada" << endl;
return;
}
}
cout << "Error: La caja no existe" << endl;







};

#G#

int
{






















}

}
/*F*/
void CambiarDeFila(int numCliente, string NombreCola)
{
ColaClientes *cl = colas;
while(cl)
{
Cliente *aux = cl->primero;
while(aux)
{
if(aux->numerodeatencion == numCliente)
{
ColaClientes *cl = colas;
while(cl)
{
if(cl->nombre == NombreCola)
{
cl->Encolar(aux);
return;
}
cl = cl->siguiente;
}

}
aux = aux->siguiente;
}
cl = cl->siguiente;

main()

AtencionDiaria *banco = new AtencionDiaria();


banco->cajas->AgregarCaja();
banco->cajas->AgregarCaja();
banco->cajas->AgregarCaja();
banco->cajas->AgregarCaja();
banco->cajas->AgregarCaja();
banco->colas = new ColaClientes("a");
banco->colas->siguiente = new ColaClientes("b");
banco->colas->siguiente->siguiente = new ColaClientes("c");
Cliente *a1 = new Cliente('1');
Cliente *a2 = new Cliente('2');
Cliente *a3 = new Cliente('3');
Cliente *b1 = new Cliente('4');
Cliente *b2 = new Cliente('5');
Cliente *c1 = new Cliente('6');
banco->colas->Encolar(a1);
banco->colas->Encolar(a2);
banco->colas->Encolar(a3);
banco->colas->siguiente->Encolar(b1);
banco->colas->siguiente->Encolar(b2);
banco->colas->siguiente->siguiente->Encolar(c1);
banco->CambiarDeFila(3,"c");

También podría gustarte