/// <summary> /// Visualiza cuales de las ubicaciones de la Maquina tiene productos disponibles para la venta /// </summary> /// <param name="laMaquinita">La máquina a revisar</param> static void VisualizaUbicacionesAbastecidas(MaquinaVenta laMaquinita) { int totalUbicacionesAbastecidas = 0; for (int i = 0; i < laMaquinita.LasUbicaciones.Length; i++) { if (laMaquinita.LasUbicaciones[i].Cantidad != 0) { Console.WriteLine($"Id: {laMaquinita.LasUbicaciones[i].Identificacion}, " + $"Nombre Producto: {laMaquinita.LasUbicaciones[i].NombreProducto}, " + $"Cantidad disponible: {laMaquinita.LasUbicaciones[i].Cantidad}, " + $"Valor Unitario: {laMaquinita.LasUbicaciones[i].Valor} "); totalUbicacionesAbastecidas++; } } Console.WriteLine($"\nSe encontraron {totalUbicacionesAbastecidas} ubicaciones con productos"); }
static void Main(string[] args) { Console.WriteLine("Programa para simular la utilización de una máquina expendedora de comida\n\n"); Console.WriteLine("La máquina expendedora tiene 6 filas y 10 columnas"); //Paso: Inicializar la maquinita MaquinaVenta miMaquinita = new MaquinaVenta(); Console.WriteLine($"El valor actual de venta de mi maquina es {miMaquinita.ValorVendido}"); Console.WriteLine("Comenzando ciclo de abastecimiento: \n\n"); bool finalizadoAbastecimiento = false; string datoIdUbicacion; string seguirAbasteciendo = ""; int indiceUbicacion = 0; while (!finalizadoAbastecimiento) { Console.Write("Ingresa la identificación de la ubicación (A-F y 0-9, ej: F3): "); datoIdUbicacion = Console.ReadLine().ToUpper(); //Si la ubicación es válida if (miMaquinita.ValidaUbicacion(datoIdUbicacion)) { indiceUbicacion = miMaquinita.ObtieneIndiceUbicacion(datoIdUbicacion); Console.Write($"Nombre para el producto ubicado en {datoIdUbicacion}: "); miMaquinita.LasUbicaciones[indiceUbicacion].NombreProducto = Console.ReadLine(); Console.Write($"Cantidad disponible para el producto ubicado en {datoIdUbicacion}: "); miMaquinita.LasUbicaciones[indiceUbicacion].Cantidad = int.Parse(Console.ReadLine()); Console.Write($"Precio para el producto ubicado en {datoIdUbicacion}: "); miMaquinita.LasUbicaciones[indiceUbicacion].Valor = int.Parse(Console.ReadLine()); } else { Console.WriteLine("\nLa ubicación no es válida. Intenta nuevamente. \n\n"); } Console.Write("\n¿Desea abastecer otra ubicación (S/N)? "); seguirAbasteciendo = Console.ReadLine().ToUpper(); if (seguirAbasteciendo == "N") { finalizadoAbastecimiento = true; } } Console.WriteLine("\n\nAbastecimiento terminado. Estas son las posiciones que tienen productos:\n"); VisualizaUbicacionesAbastecidas(miMaquinita); //Paso 2: comenzar la venta Console.WriteLine("Comenzando ciclo de venta: \n\n"); bool finalizadaVenta = false; string seguirComprando = ""; while (!finalizadaVenta) { Console.Write("Ingresa la identificación de la ubicación para la compra: (A-F y 0-9): "); datoIdUbicacion = Console.ReadLine().ToUpper(); if (miMaquinita.ValidaUbicacion(datoIdUbicacion)) { //Buscamos el indice indiceUbicacion = miMaquinita.ObtieneIndiceUbicacion(datoIdUbicacion); //Validamos que el indice tenga producto para vender if (miMaquinita.LasUbicaciones[indiceUbicacion].Cantidad > 0) { miMaquinita.RealizarVenta(datoIdUbicacion); Console.WriteLine($"Has comprado {miMaquinita.LasUbicaciones[indiceUbicacion].NombreProducto} \n"); } else { Console.WriteLine($"\nNo hay producto disponible en la ubicación {datoIdUbicacion}. Intenta nuevamente. \n\n"); } } else { Console.WriteLine("\nLa ubicación no es válida. Intenta nuevamente. \n\n"); } Console.Write("\n¿Desea seguir comprando en otra ubicación (S/N)? "); seguirComprando = Console.ReadLine().ToUpper(); if (seguirComprando == "N") { finalizadaVenta = true; } } Console.WriteLine($"\n\nVenta finalizada. Se recaudó: {miMaquinita.ValorVendido} en {miMaquinita.CantidadVentas} productos vendidos\n"); }