static void Main(string[] args) { // Creo Comp. Central. ComputadorCentral cc = new ComputadorCentral(); //Creo una maquina de cada tipo. Recepcion r1 = new Recepcion(); Almacenamiento a1 = new Almacenamiento(); Ensamblaje e1 = new Ensamblaje(); Verificacion v1 = new Verificacion(); Empaque emp1 = new Empaque(); //Creo algunas piezas. Pieza p1 = new Pieza(); Pieza p2 = new Pieza(); Pieza p3 = new Pieza(); Pieza p4 = new Pieza(); //Vamos a simular un dia de operacion: //Primero parto dando la orden al comp. central de que encienda //todas las maquinas en el orden correspondiente. cc.encenderMaquina(r1); cc.encenderMaquina(a1); cc.encenderMaquina(e1); cc.encenderMaquina(v1); cc.encenderMaquina(emp1); //Procesamos la primera pieza. //Despues de realizar cada accion, ordeno a comp. central que //checkee memoria de cada maquina y la resetee si corresponde. r1.recibir(p1); cc.checkMemoriaMaquina(r1); a1.almacenar(p1); cc.checkMemoriaMaquina(a1); e1.ensamblar(p1); cc.checkMemoriaMaquina(e1); v1.verificar(p1); cc.checkMemoriaMaquina(v1); emp1.empacar(p1); cc.checkMemoriaMaquina(emp1); //La segunda. r1.recibir(p2); cc.checkMemoriaMaquina(r1); a1.almacenar(p2); cc.checkMemoriaMaquina(a1); e1.ensamblar(p2); cc.checkMemoriaMaquina(e1); v1.verificar(p2); cc.checkMemoriaMaquina(v1); emp1.empacar(p2); cc.checkMemoriaMaquina(emp1); //.. la tercera. //Notemos que aca voy a exceder mi limite de memoria (cada maquina aguanta maximo 2 ops //y por ende se va a resetear x orden del computador central). r1.recibir(p3); cc.checkMemoriaMaquina(r1); a1.almacenar(p3); cc.checkMemoriaMaquina(a1); e1.ensamblar(p3); cc.checkMemoriaMaquina(e1); v1.verificar(p3); cc.checkMemoriaMaquina(v1); emp1.empacar(p3); cc.checkMemoriaMaquina(emp1); //.. la cuarta. r1.recibir(p4); cc.checkMemoriaMaquina(r1); a1.almacenar(p4); cc.checkMemoriaMaquina(a1); e1.ensamblar(p4); cc.checkMemoriaMaquina(e1); v1.verificar(p4); cc.checkMemoriaMaquina(v1); emp1.empacar(p4); cc.checkMemoriaMaquina(emp1); //Concluido el dia, apagamos las maquinas en el orden que corresponde. cc.apagarMaquina(r1); cc.apagarMaquina(a1); cc.apagarMaquina(e1); cc.apagarMaquina(v1); cc.apagarMaquina(emp1); }
public static void Main(string[] args) { int hora = 8; int min = 0; Maquina maquinaRe = new Recepcion("Recepcion", 6, 1); Maquina maquinaAl = new Almacenamiento("Almacenamiento", 24, 4); Maquina maquinaEns = new Ensamblaje("Ensamblaje", 10, 2); Maquina maquinaVer = new Verificacion("Verificacion", 10, 1); Maquina maquinaEmp = new Empaque("Empaque", 7, 1); Console.WriteLine(hora + ":0" + min + ":00 - Abrimos!"); Console.WriteLine("\n"); Console.WriteLine("Desea Trabajar Manualmente las maquinas?"); Console.WriteLine("1.- Si"); Console.WriteLine("2.- No"); int metodo = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("\n"); maquinaRe.Encendido(); maquinaAl.Encendido(); maquinaEns.Encendido(); maquinaVer.Encendido(); maquinaEmp.Encendido(); Console.WriteLine("\n"); Console.WriteLine("\n"); if (metodo == 1 || metodo == 2) { if (metodo == 1) { Console.WriteLine("Ha seleccionado el Metodo Manual"); Console.WriteLine("\n"); while (hora != 17) { if (min == 60) { min = 0; hora++; Console.WriteLine(hora + ":0" + min + ":00"); min += 10; } else { Console.WriteLine(hora + ":" + min + ":00"); min += 10; } //Maquina Recepcion maquinaRe.UsoMemoria(); if (maquinaRe.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.ReinicioManual("Recepcion", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp); } //Maquina Almacenamiento maquinaAl.UsoMemoria(); if (maquinaAl.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.ReinicioManual("Almacenamiento", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp); } //Maquina Ensamblaje maquinaEns.UsoMemoria(); if (maquinaEns.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.ReinicioManual("Ensamblaje", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp); } //Maquina Verificacion maquinaVer.UsoMemoria(); if (maquinaVer.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.ReinicioManual("Verificacion", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp); } //Maquina Empaque maquinaEmp.UsoMemoria(); if (maquinaEmp.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.ReinicioManual("Empaque", maquinaRe, maquinaAl, maquinaEns, maquinaVer, maquinaEmp); } } Console.WriteLine("\n"); Console.WriteLine("\n"); Console.WriteLine("Son las 17:00 ... Hora de apagar las Maquinas"); Console.WriteLine("\n"); maquinaRe.Apagado(); maquinaAl.Apagado(); maquinaEns.Apagado(); maquinaVer.Apagado(); maquinaEmp.Apagado(); Console.WriteLine("\n"); Console.WriteLine("Todas las maquinas apagadas ... Hasta mañana!"); } else if (metodo == 2) { Console.WriteLine("Ha seleccionado el Metodo Automatico"); Console.WriteLine("\n"); while (hora != 17) { if (min == 60) { min = 0; hora++; Console.WriteLine(hora + ":0" + min + ":00"); min += 10; } else { Console.WriteLine(hora + ":" + min + ":00"); min += 10; } //Maquina Recepcion maquinaRe.UsoMemoria(); if (maquinaRe.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.Reinicio(maquinaRe); } //Maquina Almacenamiento maquinaAl.UsoMemoria(); if (maquinaAl.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.Reinicio(maquinaAl); } //Maquina Ensamblaje maquinaEns.UsoMemoria(); if (maquinaEns.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.Reinicio(maquinaEns); } //Maquina Verificacion maquinaVer.UsoMemoria(); if (maquinaVer.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.Reinicio(maquinaVer); } //Maquina Empaque maquinaEmp.UsoMemoria(); if (maquinaEmp.MemoriaMaximaAlcanzada() == 1) { ComputadorCentral.Reinicio(maquinaEmp); } } Console.WriteLine("\n"); Console.WriteLine("\n"); Console.WriteLine("Son las 17:00 ... Hora de apagar las Maquinas"); Console.WriteLine("\n"); maquinaRe.Apagado(); maquinaAl.Apagado(); maquinaEns.Apagado(); maquinaVer.Apagado(); maquinaEmp.Apagado(); Console.WriteLine("\n"); Console.WriteLine("Todas las maquinas apagadas ... Hasta mañana!"); } } else { Console.WriteLine("Metodo invalido."); maquinaRe.Apagado(); maquinaAl.Apagado(); maquinaEns.Apagado(); maquinaVer.Apagado(); maquinaEmp.Apagado(); } }