import java.util.Scanner; public class Test { // Limpia la pantalla usando lineas en blanco public void limpiar() { for (int i = 0; i < 30; i++) System.out.println(""); } // Visualiza el menu public void visualizaMenu() { System.out.println("Menu"); System.out.println(""); System.out.println("1) Agregar"); System.out.println("2) Modificar"); System.out.println("3) Borrar"); System.out.println("4) Visualizar todos"); System.out.println("0) Salir"); } // Arreglo unidimensional ... public void arregloUnidimensionalLong() { // Arreglo unidimensional long[]Arr; // Tamano arreglo unidimensional int Tam; // objeto para trabajar con teclado Scanner teclado = new Scanner(System.in); // Pregunta sobre el tamaño del arrglo do { System.out.println("Tamaño del arreglo? "); Tam = teclado.nextInt(); if(Tam <= 0 || Tam > 10) System.out.println("Error en el tamaño, rango de 1 a 10"); } while(Tam <= 0 || Tam > 10); Arr = new long[Tam]; int op = 1, act = 0; // Menu do { // limpiar(); visualizaMenu(); System.out.println(""); System.out.println("Opcion: "); op = teclado.nextInt(); switch(op) { // Salir case 0: break; // Adicionar case 1: do { System.out.println("Posicion? "); act = teclado.nextInt(); if(act < 0 || Tam >= Tam) System.out.println("Error en la posicion, rango de 0 a " + Tam); } while(act < 0 || act >= Tam); System.out.println("Valor? "); Arr[act] = teclado.nextInt(); break; // Modificar case 2: do { System.out.println("Posicion? "); act = teclado.nextInt(); if(act < 0 || Tam >= Tam) System.out.println("Error en la posicion, rango de 0 a " + Tam); } while(act < 0 || act >= Tam); System.out.println("Valor actual: " + Arr[act]); System.out.println("Nuevo valor: "); Arr[act] = teclado.nextInt(); break; // Borrar case 3: do { System.out.println("Posicion? "); act = teclado.nextInt(); if(act < 0 || Tam >= Tam) System.out.println("Error en la posicion, rango de 0 a " + Tam); } while(act < 0 || act >= Tam); Arr[act] = 0; break; // Visualizar case 4: for(act = 0; act < Tam; act++) System.out.println(act + "--> " + Arr[act]); break; default: System.out.println("Opcion no reconocidad"); } } while(op != 0); System.out.println("Fin del arreglo unidimensional"); } // Arreglo unidimensional ... public void arregloUnidimensionalDatoAbstracto() { // Arreglo unidimensional Persona [] Arr; // Tamano arreglo unidimensional int Tam; // objeto para trabajar con teclado Scanner teclado = new Scanner(System.in); // Pregunta sobre el tamaño del arrglo do { System.out.println("Tamaño del arreglo? "); Tam = teclado.nextInt(); if(Tam <= 0 || Tam > 10) { System.out.println("Error en el tamaño, rango de 1 a 10"); } } while(Tam <= 0 || Tam > 10); Arr = new Persona[Tam]; int op = 1, act = 0; String nombre, apellido; int edad; // Menu do { // limpiar(); visualizaMenu(); System.out.println(""); System.out.println("Opcion: "); op = teclado.nextInt(); switch(op) { // Salir case 0: break; // Adicionar case 1: do { System.out.println("Posicion? "); act = teclado.nextInt(); if(act < 0 || act >= Tam) { System.out.println("Error en la posicion, rango de 0 a " + Tam); } } while(act < 0 || act >= Tam); System.out.println("Nombre(s)? "); teclado.skip("\n"); nombre = teclado.nextLine(); System.out.println("Apellidos? "); apellido = teclado.nextLine(); System.out.println("Edad? "); edad = teclado.nextInt(); Persona p = new Persona(nombre, apellido, edad); Arr[act] = p; break; // Modificar case 2: do { System.out.println("Posicion? "); act = teclado.nextInt(); if(act < 0 || act >= Tam) System.out.println("Error en la posicion, rango de 0 a " + Tam); } while(act < 0 || act >= Tam); System.out.println("Valor actual: " + Arr[act]); System.out.println("Nuevo valor: "); teclado.skip("\n"); //Arr[act] = teclado.nextLine(); break; // Borrar case 3: do { System.out.println("Posicion? "); act = teclado.nextInt(); if(act < 0 || Tam >= Tam) System.out.println("Error en la posicion, rango de 0 a " + Tam); } while(act < 0 || act >= Tam); Arr[act] = null; break; // Visualizar case 4: for(act = 0; act < Tam; act++) { System.out.print(act + "--> "); if(Arr[act] == null) { System.out.println("null"); } else { Arr[act].visualiza(); } } break; default: System.out.println("Opcion no reconocida"); } } while(op != 0); System.out.println("Fin del arreglo unidimensional"); } // Funcion Principal .... public static void main(String[] args) { Test t = new Test(); // Falta hacer un menu para saber a cual acceso o a todos // Primero entra al de Long t.arregloUnidimensionalLong(); // Despues al de dato abstracto (persona) t.arregloUnidimensionalDatoAbstracto(); } }