private void btnPunto1_Click(object sender, EventArgs e)
        {
            // TODAS las clases deberán ir en una Biblioteca de Clases llamada Entidades
            // ¡Reutilizar código siempre que se pueda!.

            //* Clase ReinoVegetal: Debe ser abstracta
            //* Enumerado Gusto contendrá Dulce, Salado y Toxica
            //* Agregar un atributo estático calcularValor:Random.
            //      **Este atributo sólo se podrá inicializar en un constructor estático.
            //* Un constructor que reciba ambos parámetros.
            //* Generar otro constructor que sólo reciba Gusto y asigne en valor un número aleatorio entre 1 y 100.

            //* Clases públicas Fruta, Verdura y Carnibora. Las 3 heredarán de ReinoVegetal.
            //* Enumerado TipoVerdura: Semilla, Raíz, Tubérculo, Bulbo, Tallo, Hoja, Inflorescencia, Rizoma
            //* Enumerado Capturas: Pinzas, Pelos, Caída, Mecánicas, Combinada

            //* A las tres clases completarle sus constructores de la forma correcta.

            // Descomentar el siguiente código, que deberá funcionar sin modificaciones:
            // -------------------------------------------------------------------------------------------------
            ReinoVegetal v1 = new Fruta((float)2.5, ReinoVegetal.Gusto.Dulce, ConsoleColor.Red);
            Fruta        v2 = new Fruta((float)12.5, ReinoVegetal.Gusto.Dulce, ConsoleColor.Blue);
            Verdura      v3 = new Verdura((float)52.5, ReinoVegetal.Gusto.Salado, Verdura.TipoVerdura.Hoja);
            Verdura      v4 = new Verdura((float)2.7, ReinoVegetal.Gusto.Toxica, Verdura.TipoVerdura.Raíz);
            Carnibora    v5 = new Carnibora((float)14.5, ReinoVegetal.Gusto.Toxica, Carnibora.Captura.Combinada);
            ReinoVegetal v6 = new Carnibora((float)1.2, ReinoVegetal.Gusto.Toxica, Carnibora.Captura.Pelos, 10);
        }
Exemplo n.º 2
0
        private void btnPunto1_Click(object sender, EventArgs e)
        {
            // TODAS las clases deberán ir en una Biblioteca de Clases llamada Entidades
            // Realizar una clase llamada ReinoVegetal. Debe ser abstracta
            // y poseer los atributos protegidos _valor:float y _gusto:Gusto.
            // Enumerado Gusto contendrá Dulce, Salado y Toxica
            // Generar un constructor que reciba ambos parámetros.
            // Agregar un atributo estático calcularValor:Random. Este atributo sólo se podrá inicializar en un constructor estático.
            // Generar otro constructor que sólo reciba Gusto y asigne en _valor un número aleatorio entre 1 y 100.

            // Generar las clases públicas Fruta, Verdura y Carnibora. Las 3 heredarán de ReinoVegetal.
            // Fruta contendrá el atributo _color:ConsoleColor
            // Verdura contendrá el atributo _tipo:TipoVerdura,
            // siendo los TipoVerdura disponibles: Semilla, Raíz, Tubérculo, Bulbo, Tallo, Hoja, Inflorescencia, Rizoma
            // Carnibora contendrá el atributo _tamanio:int y _tipo:Captura,
            // siendo las Capturas disponibles: Pinzas, Pelos, Caída, Mecánicas, Combinada

            // A las tres clases generarle un constructor que reciba 3 parámetros.
            // A Carnibora generarle otro constructor que reciba 4 parámetros.

            // Descomentar el siguiente código, que deberá funcionar sin modificaciones:
            ReinoVegetal v1 = new Fruta((float)2.5, ReinoVegetal.Gusto.Dulce, ConsoleColor.Red);
            Fruta        v2 = new Fruta((float)12.5, ReinoVegetal.Gusto.Dulce, ConsoleColor.Blue);
            Verdura      v3 = new Verdura((float)52.5, ReinoVegetal.Gusto.Salado, Verdura.TipoVerdura.Hoja);
            Verdura      v4 = new Verdura((float)2.7, ReinoVegetal.Gusto.Toxica, Verdura.TipoVerdura.Raíz);
            Carnibora    v5 = new Carnibora((float)14.5, ReinoVegetal.Gusto.Toxica, Carnibora.Captura.Combinada);
            ReinoVegetal v6 = new Carnibora((float)1.2, ReinoVegetal.Gusto.Toxica, Carnibora.Captura.Pelos, 10);
        }
        private void btnPunto3_Click(object sender, EventArgs e)
        {
            //* Dos elementos del tipo ReinoVegetal serán iguales si son del mismo Tipo
            //* (dos frutas, dos verduras o dos carniboras) y tienen el mismo Gusto

            // Descomentar el siguiente código, que deberá funcionar sin modificaciones:
            // -------------------------------------------------------------------------------------------------
            Fruta     v1 = new Fruta((float)2.5, ReinoVegetal.Gusto.Dulce, ConsoleColor.Red);
            Fruta     v2 = new Fruta((float)12.5, ReinoVegetal.Gusto.Dulce, ConsoleColor.Blue);
            Verdura   v3 = new Verdura((float)52.5, ReinoVegetal.Gusto.Salado, Verdura.TipoVerdura.Hoja);
            Verdura   v4 = new Verdura((float)2.7, ReinoVegetal.Gusto.Toxica, Verdura.TipoVerdura.Raíz);
            Carnibora v5 = new Carnibora((float)14.5, ReinoVegetal.Gusto.Toxica, Carnibora.Captura.Combinada);
            Carnibora v6 = new Carnibora((float)1.2, ReinoVegetal.Gusto.Toxica, Carnibora.Captura.Pelos, 10);

            MessageBox.Show("Carnibora y Verdura:" + (v5 == v4));
            MessageBox.Show("Verdura y Verdura:" + (v3 == v4));
            MessageBox.Show("Carnibora y Carnibora:" + (v5 == v6));
        }
        private void btnPunto2_Click(object sender, EventArgs e)
        {
            //* Los atributos de Fruta, Verdura y Carnibora generados en el punto anterior
            //* deberán tener propiedades publicas de sólo lectura que expongan sus datos.
            // (SOLO FINAL) ReinoVegetal contendrá una conversión explicita a String.
            // (SOLO FINAL) Fruta, Verdura y Carnibora contendrá una conversión implicita a String.
            // (SOLO RSP) Hacer las correcciones necesarias para que el código dado siga funcionando (inclusive comentar parte de los códigos)

            // Descomentar el siguiente código, que deberá funcionar sin modificaciones:
            // -------------------------------------------------------------------------------------------------
            Fruta     v2 = new Fruta((float)12.5, ReinoVegetal.Gusto.Dulce, ConsoleColor.Blue);
            Verdura   v4 = new Verdura((float)2.7, ReinoVegetal.Gusto.Toxica, Verdura.TipoVerdura.Raíz);
            Carnibora v5 = new Carnibora((float)1.2, ReinoVegetal.Gusto.Toxica, Carnibora.Captura.Pelos, 10);

            //MessageBox.Show(v2);
            //MessageBox.Show(v4);
            //MessageBox.Show(v5);
        }
        private void btnPunto4_Click(object sender, EventArgs e)
        {
            //* Clase Canasta:
            //* El atributo plantas:List del tipo genérico sólo se podrá inicializar en el constructor
            //      por defécto, que además será privado

            // Generar la Excepción propia NoAgregaException con un único constructor que reciba el mensaje a mostrar.

            //* Al sumar una canasta con un elemento del ReinoVegetal se deberá a gregar a la lista de plantas
            //* SÓLO si el tipo genérico de la Canasta es igual al elemento del ReinoVegetal y aun hay lugar en la canasta.
            //     Si no son del mismo tipo, el mensaje deberá ser "El elemento es del tipo {0}. Se esperaba {1}.". ¡Utilizar Format!
            //* Si la capacidad está al límite, el mensaje será "Capacidad excedida.".
            //* Utilizar T aux = (T)Convert.ChangeType(reinoVegetal, typeof(T)); para convertir un ReinoVegetal en T.

            // Descomentar el siguiente código, que deberá funcionar sin modificaciones:
            // -------------------------------------------------------------------------------------------------
            Fruta   v1 = new Fruta((float)2.5, ReinoVegetal.Gusto.Dulce, ConsoleColor.Red);
            Fruta   v2 = new Fruta((float)12.5, ReinoVegetal.Gusto.Dulce, ConsoleColor.Blue);
            Fruta   v3 = new Fruta((float)10.2, ReinoVegetal.Gusto.Dulce, ConsoleColor.Green);
            Verdura v4 = new Verdura((float)2.7, ReinoVegetal.Gusto.Toxica, Verdura.TipoVerdura.Raíz);

            Canasta <Fruta> canasta1 = new Canasta <Fruta>(2);

            canasta1 += v1;
            canasta1  = canasta1 + v2;
            try
            {
                canasta1 += v3;
            }
            catch (NoAgregaException ex)
            {
                MessageBox.Show(ex.Message);
            }
            try
            {
                canasta1 += v4;
            }
            catch (NoAgregaException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }