Cabana_Mario_Ariel_F

TP5E4_Definitivo

Nov 11th, 2020 (edited)
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.23 KB | None | 0 0
  1. /* Estructura de Datos - Facultad de Ingeniería - Universidad Nacional de Jujuy
  2. =============================================================================
  3. */
  4.  
  5. /**
  6. * @Autor: Equipo 5.1 Estructura de Datos.
  7. /*      @Integrantes:                |    @Carrera:             |   @DNI:
  8.                                      |                          |
  9. Camacho, Mauro Rodrigo               | Ing. Informática         | 41.654.090
  10. Cabana, Mario Ariel Fernando         | Ing. Informática         | 42.268.639
  11. Cruz, Facundo Emanuel                | Ing. Informática         | 41.609.573
  12. López, Juan Carlos                   | Ing. Informática         | 41.400.550
  13. Machaca, Aldo Martin                 | Ing. Informática         | 31.455.538
  14. Soto, Sofía Alejandra               | Ing. Informática         | 40.442.283
  15. Vilca, Sergio Esteban                | Ing. Informática         | 39.200.406
  16.  
  17. * @Ingeniera: Perez Ibarra.
  18. * @Fecha: 8/11/2020.
  19. */
  20.  
  21. /*
  22.  Trabajo Práctico N°5 / Árboles (Tree) / Ejercicio 4
  23. ---------------------   -------------   ------------
  24. * Objetivo General: Crear un árbol binario de busqueda con datos de personas.
  25. * Metodología Empleada: Se utiliza la clase árbol binario de busqueda para la creación del mismo.  
  26.                         Los datos de persona registradas son Apellido, Nombre, DNI, estado civil.
  27.                         Las personas seran ordenadas por su DNI.
  28. * El funcionamiento será a traves del entorno de desarrollo integrado Eclipse 2020-06(4.16)-(IDE for Java Developers),
  29.   empleando el leguaje de programación Orientado a Objeto Java.
  30. * Api a utilizar. Paquete:- Java.Util / Clase:- Scanner, - Random, -Iterator.
  31. * Clase principal: ArbolBinarioBusquedadePersonas.
  32. * Clases secundarias: Persona, BinarySearchTree, BinaryTree, Helper.
  33. */
  34.  
  35. public class ArbolBinarioBusquedadePersonas {
  36.    
  37.     //------------------- Inicio método Run() --------------------//
  38.    
  39.     public void run() {
  40.         BinarySearchTree<Persona>arbolPersonas= new BinarySearchTree<Persona>();
  41.         int respuesta, cantidad=0;
  42.         System.out.println("---Ejercicio 4 - Árbol Binario de Busqueda---");
  43.         do {
  44.             menu();
  45.             respuesta=Helper.numeroEntero("Ingrese una opción ........:  ");
  46.             if ((respuesta==1)||(respuesta==2)) {
  47.                 cantidad= Helper.numeroEnteroPositivo("Cantidad de Personas entrantes: ");
  48.             }
  49.             switch(respuesta){
  50.                 case 1: AgregarPersonas(arbolPersonas,cantidad,1);
  51.                     break;
  52.                 case 2: AgregarPersonas(arbolPersonas,cantidad,2);
  53.                     break;
  54.                 case 3: leerArbol(arbolPersonas);
  55.                         System.out.println("\n-------------Fin del Ejercicio 4-------------");
  56.                     break;
  57.                 default: System.out.println("Ingrese una opción válida.....");
  58.                     break;
  59.             }
  60.         }while(respuesta!=3);
  61.     }
  62.     //----------- Menú - ArbolBinarioBusquedadePersonas ----------//  
  63.    
  64.     public void menu(){
  65.         System.out.println("----Personas Árbol Binario de Busqueda-----");
  66.         System.out.println("1) Cargar personas......");
  67.         System.out.println("2) Generar personas......");
  68.         System.out.println("3) Mostrar Árbol Binario de Busqueda registrada........");
  69.     } //Fin menu.
  70.     //--------------- Cargar Árbol Binario Busqueda---------------//
  71.    
  72.     private void AgregarPersonas(BinarySearchTree<Persona> gente, int ultimo,int eleccion) {//Proceso de Cargar un Árbol.
  73.         System.out.println("-------------Carga de personas-------------");
  74.         for(int i=0;i<ultimo;i++) {  
  75.             if(eleccion==1) {              
  76.                 System.out.println("Carga Persona Nº "+(i+1)+" :");
  77.                 gente.add(crearPersona());                
  78.             }else {
  79.                 gente.add(personaRandom());
  80.             }
  81.         }
  82.         System.out.println("-------Fin de la Carga de personas--------");
  83.     } //Fin AgregarPersonas.
  84.    
  85.     private Persona crearPersona() {    //Carga Persona de forma manual.
  86.         Integer dni;
  87.         String nombre, apellido, estado;
  88.         System.out.print("Ingrese Nombre..........:");
  89.         nombre = Helper.sc.nextLine();
  90.         System.out.print("Ingrese Apellido........: ");
  91.         apellido = Helper.sc.nextLine();
  92.         System.out.print("Ingrese el número de DNI:");
  93.          while(true){
  94.              dni= Helper.entero("");
  95.              if ( Helper.dentroIntervalo(dni,10000000,43000000)==false) break;
  96.                  }
  97.         System.out.print("Ingrese Estado Civil: (1-Soltera/o, 2-Casada/o, 3-Unión de hecho, 4-Separada/o, 5-Divorciada/o, 6-Viuda/o)\n");
  98.         estado = ingresarEstado();
  99.         return new Persona(nombre,apellido,dni,estado);    
  100.     } //Fin crearPersona.
  101.    
  102.     private Persona personaRandom(){    //Carga Persona con datos aleatorios.
  103.         String[] nombres= {"Maria", "Jose", "Pablo", "Erica", "Leonel", "Natalia", "Miguel", "Luciana", "Diego", "Analia", "Marcelo", "Pamela", "Fabricio", "Ariadna", "Leandro", "Gabriela", "Felipe", "Guadalupe", "Daniel", "Melina"};
  104.         String nombre= nombres[Helper.generadorAleatorio(nombres.length)];
  105.         String[] apellidos= {"Perez", "Lopez", "Aguirre", "Gallardo", "Salazar", "Ibarra", "Cruz", "Burgos", "Velasquez", "Gareca", "Morales", "Farfan", "Gonzalez", "Espinoza"};
  106.         String apellido= apellidos[Helper.generadorAleatorio(apellidos.length)];
  107.         Integer dni= Helper.generadorAleatorio(10000000)+33000000;
  108.         String[] ec= {"Soltera/o", "Casada/o", "Unión de hecho", "Separada/o", "Divorciada/o", "Viuda/o"};
  109.         String estadoC= ec[Helper.generadorAleatorio(ec.length)];
  110.         return new Persona (nombre, apellido, dni, estadoC);
  111.     } //Fin personaRandom.
  112.    
  113.     private String ingresarEstado() {
  114.         boolean valido;
  115.         int opcion;
  116.         String estado="";
  117.         do {
  118.             opcion=Helper.numeroEntero("Ingrese una opción ........:  ");
  119.             valido=true;
  120.             switch(opcion){
  121.             case 1: estado="Soltera/o";
  122.                 break;
  123.             case 2: estado="Casada/o";
  124.                 break;
  125.             case 3: estado="Unión de hecho";
  126.                 break;
  127.             case 4: estado="Separada/o";
  128.                 break;
  129.             case 5: estado="Divorciada/o";
  130.                 break;
  131.             case 6: estado="Viuda/o";
  132.                 break;
  133.             default: System.out.println("Ingrese una opción válida.....");
  134.                      valido=false;
  135.                 break;
  136.         }
  137.         }while(valido==false);
  138.      return estado;
  139.     }
  140.     //------------- Mostrar Árbol Binario Busqueda ---------------//
  141.    
  142.     public void leerArbol(BinarySearchTree<Persona> arbolP){
  143.         System.out.printf("\nÁrbol...... %s", arbolP.toString());
  144.         System.out.print("\n------------Recorridos por Ordenes-----------\n Pre Orden.. \n ");
  145.         arbolP.PreOrder();
  146.         System.out.print("\n En Orden... \n ");
  147.         arbolP.InOrder();
  148.         System.out.print("\n Post Orden. \n ");
  149.         arbolP.PostOrder();
  150.         System.out.print("\n Descendente \n ");
  151.         arbolP.DescendingOrder();
  152.     } // Fin mostrarArbol.
  153. }
Add Comment
Please, Sign In to add comment