Пример #1
0
 //Eliminar la especie, indicada como parametro, del arbol
 public static bool eliminarRecorrido(ArbolGeneral arbol, string[] especieDatos)
 {
     if (arbol.esHoja())
     {
         if (arbol.Raiz.Dato.Nombre == especieDatos[6])
         {
             Console.WriteLine("Especie [{0}] encontrada.", especieDatos[6]);
             return(true);
         }
         return(false);
     }
     else
     {
         Recorredor recorrerArbol = arbol.Raiz.ListaHijos.Recorredor;
         recorrerArbol.comenzar();
         while (recorrerArbol.esFin() == false)
         {
             if (eliminarRecorrido(recorrerArbol.obtenerElemento(), especieDatos))
             {
                 arbol.eliminarHijo(recorrerArbol.obtenerElemento());
             }
             recorrerArbol.proximo();
         }
         if (arbol.Raiz.ListaHijos.tamanioLista == 0)
         {
             return(true);
         }
         return(false);
     }
 }
Пример #2
0
 public static bool existeEspecie(ArbolGeneral enArbol, string especieBusqueda)
 {
     if (enArbol.esHoja())
     {
         if (enArbol.Raiz.Dato.Nombre == especieBusqueda)
         {
             Console.WriteLine("Especie: {0} " +
                               "\n\tMetabolismo: {1}" +
                               "\n\tReproduccion: {2}",
                               especieBusqueda,
                               ((Especie)enArbol.Raiz.Dato).Dato.Metabolismo,
                               ((Especie)enArbol.Raiz.Dato).Dato.Reproduccion);
             return(true);
         }
         return(false);
     }
     else
     {
         Recorredor rec = enArbol.Raiz.ListaHijos.Recorredor;
         rec.comenzar();
         while (!rec.esFin())
         {
             if (existeEspecie(rec.obtenerElemento(), especieBusqueda))
             {
                 return(true);
             }
             rec.proximo();
         }
         return(false);
     }
 }
Пример #3
0
 public static void proCategorias(ArbolGeneral enArbol, int profundidad)
 {
     if (enArbol.esHoja() || enArbol.NivelNodo == profundidad)
     {
         Console.WriteLine("> {0}", enArbol.Raiz.Dato.Nombre);
     }
     else
     {
         Recorredor rec = enArbol.Raiz.ListaHijos.Recorredor;
         rec.comenzar();
         while (!rec.esFin())
         {
             proCategorias(rec.obtenerElemento(), profundidad);
             rec.proximo();
         }
     }
 }
Пример #4
0
 public static void metBuscarEspecieClase(ArbolGeneral enArbol)
 {
     if (enArbol.esHoja())
     {
         Console.WriteLine("\n>Especie: ({0})" +
                           "\n\t>Metabolismo: {1}" +
                           "\n\t>Reproduccion: {2}",
                           ((Especie)enArbol.Raiz.Dato).Dato.Metabolismo,
                           ((Especie)enArbol.Raiz.Dato).Dato.Reproduccion);
     }
     else
     {
         Recorredor rec = enArbol.Raiz.ListaHijos.Recorredor;
         rec.comenzar();
         while (!rec.esFin())
         {
             metBuscarEspecieClase(rec.obtenerElemento());
             rec.proximo();
         }
     }
 }
Пример #5
0
        public static void inicioConsulta(ArbolGeneral arbol)
        {
            arbolConsulta = arbol;

            if (!arbolConsulta.esHoja())
            {
                bool salirMenuConsulta = false;
                do
                {
                    #region  Menu.Consultas
                    Menu.mostrarTitulo("Módulo de Consultas");
                    Console.WriteLine("\t1. Ver datos de especie\n" +
                                      "\t2. Ingrese una Clase\n" +
                                      "\t3. Ingrese profundidad\n" +
                                      "\t4. Salir\n");
                    Console.Write("Opcion: "); string opcion = Console.ReadLine();
                    #endregion

                    #region Opciones
                    char resp = ' ';

                    switch (opcion)
                    {
                        #region 1- Ver datos de especie seleccionada
                    case "1":
                        do
                        {
                            Menu.mostrarTitulo("Módulo de Consultas > Datos Especie");
                            Console.WriteLine("Ingrese el nombre de la Especie que desea conocer.\n");
                            Console.Write(">Especie: "); string especieBusqueda = Console.ReadLine();
                            //buscarCategoria29(this.arbolConsulta, especieBusqueda);
                            if (!existeEspecie(arbolConsulta, especieBusqueda))
                            {
                                Console.WriteLine("\nLa Especie ingresada '{0}' no existe.\n\nPulse una tecla para salir...", especieBusqueda);
                            }
                            Console.ReadKey();
                            resp = Menu.repetirOperacion();
                        } while (char.ToLower(resp) == 's');
                        break;
                        #endregion

                        #region 2- Ver las especies de una clase
                    case "2":
                        do
                        {
                            Menu.mostrarTitulo("Módulo de Consultas > Especies de Clase");
                            Console.WriteLine(">Clase: "); string claseBusqueda = Console.ReadLine();
                            if (!existeClase(arbolConsulta, claseBusqueda))
                            {
                                Console.WriteLine("\nLa Clase ingresada '{0}' no existe.\n\nPulse una tecla para salir...", claseBusqueda);
                            }
                            Console.ReadKey();
                            resp = Menu.repetirOperacion();
                        } while (char.ToLower(resp) == 's');
                        break;
                        #endregion

                        #region 3- Ver las categorias existentes en una profundidad

                    case "3":
                        do
                        {
                            int[] numeros = { 1, 2, 3, 4, 5, 6, 7 };
                            Menu.mostrarTitulo("Módulo de Consultas > Categorias por Profundidad");
                            Console.WriteLine(">Profundidad: ");
                            try
                            {
                                int profundidad = Convert.ToInt16(Console.ReadLine());
                                proCategorias(arbolConsulta, profundidad);
                            }
                            catch (Exception)
                            {
                                Console.WriteLine("El valor ingresado no es un numero ");
                            }
                            Console.ReadKey();
                            resp = Menu.repetirOperacion();
                        } while (char.ToLower(resp) == 's');
                        break;
                        #endregion

                    case "4":
                        salirMenuConsulta = true;
                        Console.WriteLine("Regresando al Menu.");
                        Thread.Sleep(400);
                        break;

                    default:
                        Console.WriteLine("Opcion invalida");
                        Console.ReadKey();
                        break;
                    }
                    #endregion
                } while (!salirMenuConsulta);
            }
            else
            {
                Console.Write("\n\nDetalle:\tEl Sistema Taxonomico no posee datos.\n");
                Console.ReadKey();
            }
        }