Ejercicio I01 - Puesto de atención
Consigna
Crear un proyecto de biblioteca de clases para un sistema de atención al cliente.
Se deberán implementar las clases Cliente
, Negocio
y PuestoAtencion
:
Clase PuestoAtencion
- El atributo
numeroActual
es estático y privado. Se inicializará en el constructor de clase (estático) con valor 0. - El método
Atender
simulará un tiempo de atención a un cliente: recibirá un cliente, simulará un tiempo de atención mediante el métodoSleep
de la claseThread
(perteneciente al espacio de nombreSystem.Threading
) y retornarátrue
para indicar el final de la atención. - La propiedad estática
NumeroActual
es la encargada de incrementar en 1 al atributonumeroActual
y luego retornarlo.
Clase Cliente
:
- La sobrecarga del operador
==
retornarátrue
si dos clientes tienen el mismo número.
Clase Negocio
:
- El constructor privado inicializará la colección y el puesto de atención como
Caja1
. - El operador
+
será el único capaz de agregar unCliente
a la cola de atención. Sólo se agregará unCliente
si este no forma parte de la lista. Reutilizar el==
deCliente
. - La propiedad
Cliente
retornará el próximo cliente en la cola de atención en elget
. Elset
deberá controlar que elCliente
no figure en la cola de atención, caso contrario lo agregará. - El operador
==
retornarátrue
si el cliente se encuentra en la colección. - El operador
~
generará una atención del próximo cliente en la cola, utilizando la propiedadCliente
y el métodoAtender
dePuestoAtencion
. Retornarátrue
si pudo realizar la operación completa. - La propiedad
ClientesPendientes
retornará la cantidad de clientes esperando a ser atendidos.
Crear un proyecto de consola y pegar el siguiente código en el método Main
para probar la solución:
Cliente c1 = new Cliente(1,"Lautaro");
Cliente c2 = new Cliente(2,"Mauricio");
Cliente c3 = new Cliente(3, "Esteban");
Negocio n1 = new Negocio("Kiosco-24");
if (n1 + c1)
{
Console.WriteLine("Se agrego c1 a la cola");
}
if (!(n1 + c1))
{
Console.WriteLine("Cliente c1 ya esta en la cola");
}
if (n1 + c2)
{
Console.WriteLine("Se agrego c2 a la cola");
}
if (n1 + c3)
{
Console.WriteLine("Se agrego c3 a la cola");
}
Console.WriteLine("Clientes pendientes: {0}", n1.ClientesPendientes);
while (~n1)
{
Console.WriteLine("Clientes pendientes: {0}", n1.ClientesPendientes);
}
Resolución
Video | Código |
---|