Ejercicio C03 - La maquina expendedora
Consigna
Parte I
Crear un proyecto de Consola.
Crear e instanciar un objeto de la clase Dictionary<TKey,TValue>
llamado maquinaExpendedora.
Cargar por lo menos 10 elementos en formato clave-valor (clave = numero de posición, valor = nombre del producto)
Una vez cargado, desarrollar el flujo del proyecto de consola de modo que:
Al iniciarse muestre al usuario todos los productos con sus respectivos códigos.
Pida al usuario elegir el número del producto que quiere
Al seleccionar número, informar al usuario que recibió ese producto y volver a mostrar todos los productos SIN el producto que ya eligió
El programa se repetirá indefinidamente hasta que el usuario elija la opción “S”.
BONUS: Refactorizar el programa para que en vez de tener un diccionario <int,string>
, tengamos un diccionario <int,Producto>
(que contenga nombre y precio del producto)
Parte II - Se acabó la comida
La máquina que creamos se quedó sin productos, es hora de recargarla.
Adicionar el atributo código de producto (debe ser único e irrepetible)
Crear e instanciar 3 Stack
distintos que van a contener 1 producto cada uno (simularemos el mecanismo de “reparto” de la máquina expendedora)
Por ejemplo:
Stack<Producto> papasFritas = new Stack<Producto>();
Una vez creadas estas 3 pilas, deberemos modificar nuestra maquina expendedora para que reciba un par clave-valor que no sea <int,Producto>
, sino que va a recibir un int
(posición en la máquina) y un Stack<Producto>
(una pila con los productos que van en cada “resorte”).
Ahora, modificar la lógica de nuestra consola para que al iniciarse muestre posición, nombre y cantidad de cada producto, y que al seleccionar cada opción nos muestre la información del producto elegido (incluido el CODIGO
, para diferenciar cada producto de nuestra stack) y lo borre de la lista. Recordar los métodos PEEK
, POP
y PUSH
Crear un proyecto de tipo Windows Forms App y darle la siguiente funcoinalidad
Parte III - Ahora hay que atender también
Debido a numerosos incidentes, ahora los usuarios no pueden operar directamente la máquina expendedora, así que harán fila para que los atendamos y les demos su producto.
Crear e instanciar la
Queue<string> filaDeClientes
Agregar al menos 5 clientes
En cada iteración indicar a qué cliente se está atendiendo y qué producto se lleva.
Indicar tamaño de la cola (también en cada iteración)
Cada cliente atendido debe ser borrado de la cola
Modificar la iteración para que ahora su condición para continuar sea la cantidad de clientes en la cola
BONUS: Al terminar de atender a los clientes, informarlo y preguntar si se quiere agregar clientes a la cola.
Parte IV - Lo hacemos buffet
La ola de violencia por las medidas anteriores solo fue en aumento, por lo que la gerencia decidió ofrecer servicio buffet, para que cada uno elija lo que quiera
Crear e instanciar la
List<Producto> mesaBuffet
Agregar al menos 5 platos/bebidas
Esta lista va a reemplazar al
dictionary maquinaExpendedora
, realizar todas las modificaciones necesarias para que todo funcione de manera que cada cliente de la cola vaya avanzando, eligiendo sus productos y saliendo.Al terminar de servirse, se debe informar el costo de cada cliente
Indicar tamaño de la cola (también en cada iteración)
Cada cliente atendido debe ser borrado de la cola
Modificar la iteración para que ahora su condición para continuar sea la cantidad de clientes en la cola
note
Acá el código
no va a ser necesario, por lo que pueden borrar
esa propiedad o sobrecargar el constructor para que no sea
obligatorio ponerlo al crear un producto
Resolución
Video | Código |
---|