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
numeroActuales estático y privado. Se inicializará en el constructor de clase (estático) con valor 0. - El método
Atendersimulará un tiempo de atención a un cliente: recibirá un cliente, simulará un tiempo de atención mediante el métodoSleepde la claseThread(perteneciente al espacio de nombreSystem.Threading) y retornarátruepara indicar el final de la atención. - La propiedad estática
NumeroActuales la encargada de incrementar en 1 al atributonumeroActualy luego retornarlo.
Clase Cliente:
- La sobrecarga del operador
==retornarátruesi 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 unClientea la cola de atención. Sólo se agregará unClientesi este no forma parte de la lista. Reutilizar el==deCliente. - La propiedad
Clienteretornará el próximo cliente en la cola de atención en elget. Elsetdeberá controlar que elClienteno figure en la cola de atención, caso contrario lo agregará. - El operador
==retornarátruesi el cliente se encuentra en la colección. - El operador
~generará una atención del próximo cliente en la cola, utilizando la propiedadClientey el métodoAtenderdePuestoAtencion. Retornarátruesi pudo realizar la operación completa. - La propiedad
ClientesPendientesretornará 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 |
|---|