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");
    }
Exemplo n.º 2
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);
    }