Foros del Web » Programación para mayores de 30 ;) » Java »

Error al imprimir una busqueda usando vector de objetos (JAVA-NETBEANS 8.0.2)

Estas en el tema de Error al imprimir una busqueda usando vector de objetos (JAVA-NETBEANS 8.0.2) en el foro de Java en Foros del Web. Estoy tratando de hacer una CRUD de Empleados. El detalle esta al momento de realizar la búsqueda. por primera vez lo hace bien y luego ...
  #1 (permalink)  
Antiguo 27/04/2016, 16:38
 
Fecha de Ingreso: abril-2016
Ubicación: Ciudadano del mundo
Mensajes: 3
Antigüedad: 8 años
Puntos: 0
Pregunta Error al imprimir una busqueda usando vector de objetos (JAVA-NETBEANS 8.0.2)

Estoy tratando de hacer una CRUD de Empleados.

El detalle esta al momento de realizar la búsqueda.
por primera vez lo hace bien y luego me muestra el que estoy buscando y a todos, si busco uno que no existe también muestra a todos; si me salgo y vuelvo al menú Ppal si lo hace bien.
(Soy novato en el tema de la programación, mis disculpas si se ofenden por la pregunta). Gracias de antemano.
adjunto todo el código para mejor aclaración

Código Java:
Ver original
  1. package Metodos;
  2.  
  3. import Clases.ClassEmpleado;
  4. import java.util.Scanner;
  5.  
  6. public class TodoMetodo {
  7.  
  8.     int pos = 0; //para llevar las posiciones del vector
  9.     int continuar = 1;
  10.  
  11.     static ClassEmpleado[] persona = new ClassEmpleado[10];//vector de la clase empleado        
  12.  
  13.     public void menu() {
  14.  
  15.         Scanner entrada = new Scanner(System.in);
  16.  
  17.         int op;
  18.         do {
  19.             System.out.println("Escoja una opcion: \n "
  20.                     + " 1. Registrar\n"
  21.                     + "  2. Mostrar\n"
  22.                     + "  3. Buscar\n"
  23.                     + "  4. Eliminar\n"
  24.                     + "  5. Salir\n");
  25.  
  26.             op = entrada.nextInt();
  27.  
  28.             switch (op) {
  29.                 case 1:
  30.                     registrar();
  31.                     break;
  32.  
  33.                 case 2:
  34.                     mostrar();
  35.                     break;
  36.  
  37.                 case 3:
  38.                     buscar();
  39.                     break;
  40.  
  41.                 case 5:
  42.                     System.out.println("Cerrando App...");
  43.                     break;
  44.             }
  45.  
  46.         } while (op != 5);
  47.  
  48.     }
  49.  
  50.     public void registrar() {
  51.  
  52.         String nombre1, nombre2, apellido1, apellido2, telefono, direccion;
  53.         String seguir = "s";
  54.  
  55.         Scanner entrada = new Scanner(System.in);
  56.  
  57.         while (seguir.equals("s")) {
  58.             System.out.println("Ingrese el Primer Nombre: ");
  59.             nombre1 = entrada.nextLine();
  60.  
  61.             System.out.println("Ingrese el Segundo Nombre: ");
  62.             nombre2 = entrada.nextLine();
  63.  
  64.             System.out.println("Ingrese el Primer Apellido: ");
  65.             apellido1 = entrada.nextLine();
  66.  
  67.             System.out.println("Ingrese el Segundo Apellido: ");
  68.             apellido2 = entrada.nextLine();
  69.  
  70.             System.out.println("Ingrese numero de Telefono: ");
  71.             telefono = entrada.nextLine();
  72.  
  73.             System.out.println("Ingrese Direccion: ");
  74.             direccion = entrada.nextLine();
  75.  
  76.             persona[pos] = new ClassEmpleado();
  77.  
  78.             persona[pos].setNombre1(nombre1);
  79.             persona[pos].setNombre2(nombre2);
  80.             persona[pos].setApellido1(apellido1);
  81.             persona[pos].setApellido2(apellido2);
  82.             persona[pos].setTelefono(telefono);
  83.             persona[pos].setDireccion(direccion);
  84.  
  85.             Scanner cont = new Scanner(System.in);
  86.             System.out.println("Deseas Continuar s/n []: \n");
  87.             seguir = cont.nextLine();
  88.             pos++;
  89.         }
  90.  
  91.     }
  92.  
  93.     public void mostrar() {
  94.  
  95.         for (int i = 0; i < pos; i++) {
  96.  
  97.             System.out.println("*****DATOS DE LOS EMPLEADOS****\n\n" + "Primer   Nombre:" + persona[i].getNombre1() + "\n"
  98.                     + "Segundo   Nombre:     " + persona[i].getNombre1() + "\n"
  99.                     + "Primer   Apellido:    " + persona[i].getNombre2() + "\n"
  100.                     + "Segundo   Apellido:   " + persona[i].getApellido1() + "\n"
  101.                     + "Telefono:             " + persona[i].getTelefono() + "\n"
  102.                     + "Direccion:            " + persona[i].getDireccion() + "\n"
  103.             );
  104.         }
  105.  
  106.     }
  107.     int posi_cons = 0; //para saber en que posición lo encontro
  108.  
  109.     public void buscar() {
  110.         String cod = "", encontro = "n";
  111.         String continua = "s";
  112.         int i = 0;
  113.         int j = 0;
  114.         Scanner entrada = new Scanner(System.in);
  115.  
  116.         while ("s".equals(continua)) {
  117.             System.out.println("Empleado a buscar: ");
  118.             cod = entrada.nextLine();
  119.             posi_cons = 0;
  120.             while (i < pos && "n".equals(encontro)) {
  121.                 if (cod.equals(persona[i].getNombre1())) {
  122.                     encontro = "s";
  123.                     posi_cons = i;
  124.                 } else {
  125.                     i += 1;
  126.                 }
  127.             }
  128.            
  129.             if ("s".equals(encontro)) {
  130.                 j = posi_cons;
  131.                 for ( ; j < pos; j++) {
  132.                     System.out.println("<<<< Empleado Encontrado!!! >>>>" + "\n");
  133.                     System.out.println("Primer   Nombre:        " + persona[j].getNombre1() + "\n"
  134.                             + "Segundo   Nombre:     " + persona[j].getNombre2() + "\n"
  135.                             + "Segundo   Apellido:   " + persona[j].getApellido1() + "\n"
  136.                             + "Telefono:             " + persona[j].getTelefono() + "\n"
  137.                             + "Direccion:            " + persona[j].getDireccion() + "\n"
  138.                            
  139.                     );                    
  140.                 }
  141.             } else {
  142.                 System.out.println(cod + " Este empleado no existe");
  143.             }
  144.             System.out.println("¿Desea Buscar otro Empleado S/n ? \n");
  145.             continua = entrada.nextLine();
  146.         }        
  147.     }
  148.      
  149.   /*
  150.        public int editar(int cod) {
  151.          return cod;
  152.        }
  153.  
  154.        public void eliminar() {
  155.       }
  156.   */
  157. //estos son los otros paquetes
  158. package Principal; //paquete principal
  159.  
  160. import Metodos.TodoMetodo;
  161.  
  162. public class Empleados {
  163.  
  164.     public static void main(String[] args) {
  165.  
  166.         TodoMetodo meto = new TodoMetodo();
  167.  
  168.         meto.menu();
  169.  
  170.     }
  171.  
  172. }
  173.  
  174. //paquete de la clase (Empleado)
  175. package Clases;
  176.  
  177. public class ClassEmpleado {
  178.  
  179.     String nombre1, nombre2, apellido1, apellido2, telefono, direccion;
  180.  
  181.     public ClassEmpleado() {
  182.     }
  183.  
  184.     public String getNombre1() {
  185.         return nombre1;
  186.     }
  187.  
  188.     public void setNombre1(String nombre1) {
  189.         this.nombre1 = nombre1;
  190.     }
  191.  
  192.     public String getNombre2() {
  193.         return nombre2;
  194.     }
  195.  
  196.     public void setNombre2(String nombre2) {
  197.         this.nombre2 = nombre2;
  198.     }
  199.  
  200.     public String getApellido1() {
  201.         return apellido1;
  202.     }
  203.  
  204.     public void setApellido1(String apellido1) {
  205.         this.apellido1 = apellido1;
  206.     }
  207.  
  208.     public String getApellido2() {
  209.         return apellido2;
  210.     }
  211.  
  212.     public void setApellido2(String apellido2) {
  213.         this.apellido2 = apellido2;
  214.     }
  215.  
  216.     public String getTelefono() {
  217.         return telefono;
  218.     }
  219.  
  220.     public void setTelefono(String telefono) {
  221.         this.telefono = telefono;
  222.     }
  223.  
  224.     public String getDireccion() {
  225.         return direccion;
  226.     }
  227.  
  228.     public void setDireccion(String direccion) {
  229.         this.direccion = direccion;
  230.     }
  231.  
  232. }
  233.  
  234.  
  235. }

Última edición por escritorio; 27/04/2016 a las 16:52
  #2 (permalink)  
Antiguo 27/04/2016, 17:46
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Error al imprimir una busqueda usando vector de objetos (JAVA-NETBEANS 8.0

Hola que tal.

Para nosotros o al menos para mi no es ninguna ofenza tu pregunta, todos sin excepcion fuimos novatos en la programacion y la unica forma en que uno puede aprender es preguntando.

Con respecto a tu duda con el codigo que estas colocando no puedo ayudarte, ya que solo estas colocando las acciones a realizar si se selecciona cierta opcion, pero no veo en que momento realizas la busqueda, si puedes colocar un poco mas de codigo para asi poder ayudarte con tu duda.
  #3 (permalink)  
Antiguo 28/04/2016, 00:54
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 3 meses
Puntos: 22
Respuesta: Error al imprimir una busqueda usando vector de objetos (JAVA-NETBEANS 8.0

Buenas,

Fijate bien en como utilizas la variable "encontro" en el método buscar.

Ya que una vez que la pones a "s", ya no la vuelves a reinicializar a "n" por lo tanto siempre te entra por las condiciones

Un saludo.
  #4 (permalink)  
Antiguo 28/04/2016, 21:06
 
Fecha de Ingreso: abril-2016
Ubicación: Ciudadano del mundo
Mensajes: 3
Antigüedad: 8 años
Puntos: 0
Respuesta: Error al imprimir una busqueda usando vector de objetos (JAVA-NETBEANS 8.0

Hola Muchas Gracias a todos por sus comentarios, he logrado solucionarlo adjunto voy a colocar el metodo buscar, con las correcciones.

Código Java:
Ver original
  1. public void buscar() {
  2.         int i;
  3.         String encontro = " ", continuar2 = "", cod;
  4.         Scanner entrada = new Scanner(System.in);
  5.  
  6.         do {
  7.             i = 0;
  8.             encontro = "n";
  9.             System.out.println("Empleado a buscar: ");
  10.             cod = entrada.nextLine();
  11.  
  12.             do {
  13.                 if ((cod).equals(persona[i].getNombre1())) {
  14.                     encontro = "s";
  15.                     System.out.println("<<<< Empleado Encontrado!!! >>>>" + "\n");
  16.                     System.out.println("Primer   Nombre:        " + persona[i].getNombre1() + "\n"
  17.                             + "Segundo   Nombre:     " + persona[i].getNombre2() + "\n"
  18.                             + "Segundo   Apellido:   " + persona[i].getApellido1() + "\n"
  19.                             + "Telefono:             " + persona[i].getTelefono() + "\n"
  20.                             + "Direccion:            " + persona[i].getDireccion() + "\n"
  21.                     );
  22.                 } else {
  23.                     i += 1;
  24.                 }
  25.             } while (i < pos && "n".equals(encontro));
  26.             if ("n".equals(encontro)) {
  27.                 System.out.println(cod + " Este empleado no existe");
  28.             }
  29.             System.out.println("¿Desea Buscar otro Empleado S/n ? \n");
  30.             continuar2 = entrada.nextLine();
  31.         } while ("s".equals(continuar2));
  32.     }
  #5 (permalink)  
Antiguo 28/04/2016, 21:16
 
Fecha de Ingreso: abril-2016
Ubicación: Ciudadano del mundo
Mensajes: 3
Antigüedad: 8 años
Puntos: 0
De acuerdo Respuesta: Error al imprimir una busqueda usando vector de objetos (JAVA-NETBEANS 8.0

DanX03, muchas gracias por la comprensión, lo que pase es que use varios paquetes; mira en la parte de a bajo del primer codigo que envié esta comentado donde inicia la clase Empleado (ahí esta el main) y llamo al metodo "menu" a través de un objeto llamado "meto". Espero haberme echo entender
NUevamente Muchas Gracias...! Espero que le sirva a otros que estén como yo.

Última edición por escritorio; 28/04/2016 a las 21:23

Etiquetas: busqueda, clase, objetos, programa, string, usando, vector
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:17.