El siguiente programa desarrollado en el lenguaje de programación Java cumple con los siguientes requerimientos.
- Crea un menú de opciones (INSERTAR, CONSULTAR, ELIMINAR Y FINALIZAR).
- INSERTAR: almacena el nombre de una personas en vectores estáticos tipo String de tamaño 50.
- CONSULTAR: Utilizando el algoritmo de búsqueda secuencial pide el nombre y si lo encuentra imprime un mensaje de encontrado, en caso contrario un mensaje de no localizado.
- ELIMINAR: Utilizando el algoritmo de búsqueda secuencial pide el nombre y si lo encuentra imprime un mensaje de encontrado y elimina el nombre ajustando el vector para no dejar espacios en blanco, en caso contrario un mensaje de no localizado.
- FINALIZAR: Imprime los nombres almacenado y sale del programa.
import java.io.BufferedReader; import java.io.InputStreamReader; public class BusquedaSecuencial { static BufferedReader br = null; static String N= ""; static int n=0; static String[] Nombre = new String[50]; static String[] APaterno = new String[50]; static String[] AMaterno = new String[50]; public static void main (String args[]){ br = new BufferedReader(new InputStreamReader(System.in)); do{ menu(); }while(Integer.parseInt(N)!=4); } public static void menu(){ do{ System.out.println("Selecciona una de las opciones del menú: \n " + "1- INSERTAR \n " + "2- CONSULTAR " + "\n 3- ELIMINAR \n " + "4- FINALIZAR"); try{ N = br.readLine(); }catch(Exception e){ e.printStackTrace(); } }while(!esEntero(N) || conversor(N)<=0 || conversor(N)>=5 ); switch(Integer.parseInt(N)){ case 1: insertar(); break; case 2: consultar(); break; case 3: eliminar(); break; case 4: imprimir(); break; } } public static void consultar(){ if(n>0){ String nombre=""; int eureka=0; try{ System.out.println("Ingresa el Nombre : "); nombre = br.readLine(); }catch(Exception e){ e.printStackTrace(); } for(int i=0; i<n; i++){ if(Nombre[i].equals(nombre)){ eureka=1; } } if(eureka==1){ System.out.println("Nombre encontrado!!!!!. "); }else{ System.out.println("Nombre NO localizado!!!!!. "); } } else{ System.out.println("No hay elementos en la lista. "); } } public static boolean esEntero(String cad) { for(int i = 0; i<cad.length(); i++) if( !Character.isDigit(cad.charAt(i)) ) return false; return true; } public static int conversor(String x){ int valor=0; try{ valor= Integer.parseInt(x); }catch(NumberFormatException e){ System.out.println("Valor invalido"); } return valor; } public static void insertar(){ if(n<50){ System.out.println("Leyendo datos de la persona: " + (n+1)); try{ System.out.println("Ingresa el Apellido Paterno: "); APaterno[n] = br.readLine(); }catch(Exception e){ e.printStackTrace(); } try{ System.out.println("Ingresa el Apellido Materno: "); AMaterno[n] = br.readLine(); }catch(Exception e){ e.printStackTrace(); } try{ System.out.println("Ingresa el nombre: "); Nombre[n] = br.readLine(); }catch(Exception e){ e.printStackTrace(); } n++; }else{ System.out.println("El vector esta lleno, elimina personas para poder insertar"); } } public static void eliminar(){ String nombre=""; int encontrados=0; if(n>0){ try{ System.out.println("Ingresa el Nombre : "); nombre = br.readLine(); }catch(Exception e){ e.printStackTrace(); } for(int i=0; i<n; i++){ if(Nombre[i].equals(nombre)){ encontrados++; for(int j=i; j<n; j++){ Nombre[j]=Nombre[j+1]; APaterno[j]=APaterno[j+1]; AMaterno[j]=AMaterno[j+1]; } i--; n--; } } if(encontrados>0){ System.out.println("Nombre encontrado, procediendo a eliminar!!!!!. "); }else{ System.out.println("Nombre NO localizado!!!!!. "); } }else{ System.out.println("No hay elementos a eliminar."); } } public static void imprimir(){ if(n>0){ System.out.println("Apellido paterno Apellido Materno Nombre"); for(int i=0; i<n; i++){ System.out.print(i+1 + ".- " + APaterno[i] + "\t"); System.out.print(AMaterno [i] + "\t "); System.out.print(Nombre [i] + "."); System.out.println(); } } } }