public static void Main() { const int OBJETOS = 10; int canObjetios = 9; Dispositivo[] d = new Dispositivo[OBJETOS]; d[0] = new Puerta(true, "Puerta de acceso"); d[1] = new PuertaGaraje(true, 0, "Puerta garaje"); d[2] = new Toldo(0, "Toldo"); d[3] = new Luz(true, "Bombilla"); d[4] = new Calefaccion(false, 20, "Cal1"); d[5] = new Calefaccion(false, 20, "Cal2"); d[6] = new Ventana(new Persiana(0, "Persiana 1"), "Ventana 1"); d[8] = new Ventana(new Persiana(0, "Persiana 2"), "Ventana 2"); d[7] = new Ventana(new Persiana(0, "Persiana 3"), "Ventana 3"); string opcion; do { System.Console.WriteLine("1. Bloquear puerta"); System.Console.WriteLine("2. Desbloquear puerta"); System.Console.WriteLine("3. Encender luz"); System.Console.WriteLine("4. Apagar luz"); System.Console.WriteLine("5. Subir puerta garaje"); System.Console.WriteLine("6. Bajar puerta garaje"); System.Console.WriteLine("7. Subir un 25 Persiana 1"); System.Console.WriteLine("8. Subir un 25 Persiana 2"); System.Console.WriteLine("9. Subir un 25 Persiana 3"); System.Console.WriteLine("10. Bajar un 25 Persiana 1"); System.Console.WriteLine("11. Bajar un 25 Persiana 2"); System.Console.WriteLine("12. Bajar un 25 Persiana 3"); System.Console.WriteLine("13. Recoger toldo"); System.Console.WriteLine("14. Extender toldo"); System.Console.WriteLine("15. Subir un grado calefaccion"); System.Console.WriteLine("16. Bajar un grado calefaccion"); System.Console.WriteLine("17. Ver estado dispositivos"); System.Console.WriteLine("0. Salir"); opcion = System.Console.ReadLine(); switch (opcion) { case "1": ((Puerta)(d[0])).Bloquear(); break; case "2": ((Puerta)(d[0])).Desbloquear(); break; case "3": ((Luz)d[3]).Encender(); break; case "4": ((Luz)d[3]).Apagar(); break; case "5": ((PuertaGaraje)(d[1])).Subir(); break; case "6": ((PuertaGaraje)(d[1])).Bajar(); break; case "7": ((Persiana)(d[6])).Subir(); break; case "8": ((Persiana)(d[7])).Subir(); break; case "9": ((Persiana)(d[8])).Subir(); break; case "10": ((Persiana)(d[6])).Bajar(); break; case "11": ((Persiana)(d[7])).Bajar(); break; case "12": ((Persiana)(d[8])).Bajar(); break; case "13": ((Toldo)d[3]).Subir(); break; case "14": ((Toldo)d[3]).Bajar(); break; case "15": ((Calefaccion)d[4]). SetTemperatura(((Calefaccion)d[4]). GetTemperatura() + 1); ((Calefaccion)d[5]). SetTemperatura(((Calefaccion)d[5]). GetTemperatura() + 1); break; case "16": ((Calefaccion)d[4]). SetTemperatura(((Calefaccion)d[4]). GetTemperatura() - 1); ((Calefaccion)d[5]). SetTemperatura(((Calefaccion)d[5]). GetTemperatura() - 1); break; case "17": for (int i = 0; i < canObjetios; i++) { System.Console.WriteLine(d[i]); } break; case "0": System.Console.WriteLine("Bye!"); break; default: System.Console.WriteLine("Wrong number!"); break; } } while (opcion != "0"); }
static void Main() { const int TAMANYO = 100; Dispositivo[] d = new Dispositivo[TAMANYO]; d[0] = new Ventana(new Persiana(10)); d[1] = new Ventana(new Persiana(25)); d[2] = new Ventana(new Persiana(45)); d[3] = new Puerta(true); d[4] = new PuertaDeGaraje(false, 10); d[5] = new Toldo(70); d[6] = new Luz(false); d[7] = new Calefaccion(25); d[8] = new Calefaccion(23); int contador = 9; int opcion; do { Console.WriteLine("Elige una opción:"); Console.WriteLine("1. Bloquear puerta de acceso"); Console.WriteLine("2. Desbloquear puerta de acceso"); Console.WriteLine("3. Encender punto de luz"); Console.WriteLine("4. Apagar punto de luz"); Console.WriteLine("5. Subir por completo puerta del garaje"); Console.WriteLine("6. Bajar por completo puerta del garaje"); Console.WriteLine("7. Subir 25% las 3 persianas"); Console.WriteLine("8. Recoger el toldo"); Console.WriteLine("9. Extender el toldo"); Console.WriteLine("10. Subir un grado cada calefacción"); Console.WriteLine("11. Bajar un grado cada calefacción"); Console.WriteLine("12. Ver estado de los dispositivos"); Console.WriteLine("0. Salir"); opcion = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); switch (opcion) { case 1: ((Puerta)(d[3])).Bloquear(); break; case 2: ((Puerta)(d[3])).Desbloquear(); break; case 3: ((Luz)(d[6])).Encender(); break; case 4: ((Luz)(d[6])).Apagar(); break; case 5: ((PuertaDeGaraje)(d[4])).Subir(); break; case 6: ((PuertaDeGaraje)(d[4])).Bajar(); break; case 7: ((Ventana)(d[0])).GetPersiana().Subir(25); ((Ventana)(d[1])).GetPersiana().Subir(25); ((Ventana)(d[2])).GetPersiana().Subir(25); break; case 8: ((Toldo)(d[5])).Subir(); break; case 9: ((Toldo)(d[5])).Bajar(); break; case 10: d[7] = new Calefaccion( ((Calefaccion)(d[7])).GetTemperatura() + 1); d[8] = new Calefaccion( ((Calefaccion)(d[8])).GetTemperatura() + 1); break; case 11: d[7] = new Calefaccion( ((Calefaccion)(d[7])).GetTemperatura() - 1); d[8] = new Calefaccion( ((Calefaccion)(d[8])).GetTemperatura() - 1); break; case 12: for (int i = 0; i < contador; i++) { Console.WriteLine(d[i]); } Console.WriteLine(); break; case 0: Console.WriteLine("Hasta otra"); break; default: Console.WriteLine("Opción incorrecta"); break; } } while (opcion != 0); }