Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: RedGirl en 16 de Noviembre 2014, 20:20

Título: Adivinar el animal, con formas, herencia, encapsulamiento y polimorfismo C#
Publicado por: RedGirl en 16 de Noviembre 2014, 20:20
Buenas tardes,  necesito ayuda con un programa en C#
Verán, tengo que hacer un programa que, mediante preguntas, de Si o No, me permita adivinar el animal. (en forms)
Claro, para eso, creería una clase de cada animal (necesito 30), luego, usando, herencia, polimorfismo y encapsulamiento (tengo problemas con este último}, cree una super clase, desde la cual, me maneje las preguntas y me permita llegar a un resultado.
Lo que a mi se me ocurre es crear 31 clases :'s (creo no es algo bueno eso}, luego en una super clase, tener las preguntas, pero no se como ligar para que agarre los datos que guarde en cada clase de un animal, ese es mi problema.
No se si entiendan el concepto, si no lo entienden, con gusto haré un mejor esfuerzo para explicarlo de nuevo. (o en una sola clase, todos heredando).

Agradecería muchoooo su ayuda :C

    
Título: Re:Advina el animal, con formas, herencia, encapsulamiento y polimorfismo
Publicado por: Sixtoex en 16 de Noviembre 2014, 20:32
En el foro hice algo parecido, buscalo si quieres, utilizaba enum :) puede ser que te haga una idea de lo que sería el algoritmo
Título: Re:Advina el animal, con formas, herencia, encapsulamiento y polimorfismo
Publicado por: Mastermind en 16 de Noviembre 2014, 20:36
Hola, un diseño que parece lógico es crear una superclase animal donde tendrás todos los atributos y métodos comunes a los animales. Luego tendrás que crear una clase para cada animal que herede de la superclase Animal, por ejemplo Leon, Tigre, Gato, etc. heredarían de animal, y además tendrían sus características particulares.


(http://images4.hiboox.com/images/4812/20deaf86c999a466ce75b8e5dfb47b72.jpg)
Título: Re:Advina el animal, con formas, herencia, encapsulamiento y polimorfismo
Publicado por: RedGirl en 16 de Noviembre 2014, 20:50
En el foro hice algo parecido, buscalo si quieres, utilizaba enum :) puede ser que te haga una idea de lo que sería el algoritmo
¿Con que nombre lo busco
Aunque enum creo no puede ser, no lo he manejado, y debe ser con lo que eh visto en clases :c
Título: Re:Advina el animal, con formas, herencia, encapsulamiento y polimorfismo
Publicado por: RedGirl en 16 de Noviembre 2014, 20:57
Lo sé, una super clase en donde tenga, no se, características básicas
Aunque no me queda muy claro, sería, en la superclase poner, variable vacia, para, tipo de animal (carnívoro, herbívoro) , habit (selva, bosque, ciudad).
Esa es mi primera duda, como creo la super clase, variables sin argumentos? (Cómo? :c)
Luego, como empiezo con las preguntas, con esto se que lo debo de hacer.
            string message = "¿El animal es carnivoro?";
            string caption = "Adivina el animal";
            MessageBoxButtons buttons = MessageBoxButtons.YesNo;
            DialogResult adivina;
            adivina = MessageBox.Show(message, caption, buttons);
            if (adivina == System.Windows.Forms.DialogResult.Yes)
{
 Qué llamaría aquí? la clase? cómo? , la variable? es lo que no entendo
}
            if (adivina == System.Windows.Forms.DialogResult.No)
{
aqui instrucciones parecidas a la anterior, supongo.
}
Título: Re:Advina el animal, con formas, herencia, encapsulamiento y polimorfismo
Publicado por: Mastermind en 17 de Noviembre 2014, 07:56
Parece que te faltan conceptos básicos, te recomiendo que antes de hacer este ejercicio hagas algunos ejercicios y ejemplos de herencia para comprender qué es la herencia..

Concepto de herencia: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=651:concepto-o-definicion-de-herencia-en-java-programacion-orientada-a-objetos-ique-es-ejemplos-cu00684b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Ejemplo herencia:

Código: [Seleccionar]
using System;
namespace ejemploHerencia
{
   class FormaGeometrica
   {
      public void setWidth(int w)
      {
         width = w;
      }
      public void setHeight(int h)
      {
         height = h;
      }
      protected int width;
      protected int height;
   }

   // Subclase
   class Rectangulo: FormaGeometrica
   {
      public int getArea()
      {
         return (width * height);
      }
   }
   
   class RectanguloTester
   {
      static void Main(string[] args)
      {
         Rectangulo Rect = new Rectangulo();

         Rect.setWidth(5);
         Rect.setHeight(7);

         // Imprimir el área
         Console.WriteLine("Total area: {0}",  Rect.getArea());
         Console.ReadKey();
      }
   }
}
Título: Re:Advina el animal, con formas, herencia, encapsulamiento y polimorfismo
Publicado por: RedGirl en 17 de Noviembre 2014, 18:40
Me desanimaste :/
Soy una de las dos personas, que aprobó el examen de herencia que tuve hace unas semanas :c
Título: Re:Adivinar el animal, con formas, herencia, encapsulamiento y polimorfismo C#
Publicado por: Mastermind en 18 de Noviembre 2014, 09:11
Perdón  :'(