I want to create two arrays that keep name and qualification AND that I have a menu I already did but I do not know how to implement the two mentioned fixes without using JOptionPane only with scanner
public class MenuOperations {
// atributo arr de tipo Arreglo
Arreglo arr = new Arreglo();
/**
* Despliega las opciones del menú: listar, agregar, sacar, buscar y salir
* @return la opcion del menu [1, 5]
*/
public int despliegaMenu()
{
int opcion = 0;
System.out.println("");
System.out.println("Menu para la gestion del arreglo.");
System.out.println("----------------------------------------");
System.out.println("1. Listar elementos");
System.out.println("2. Agregar elemento");
System.out.println("3. Sacar elemento");
System.out.println("4. Buscar elemento");
System.out.println("5. Salir");
System.out.println("----------------------------------------");
do
{
opcion = leerNumeroPositivo("Escribe tu opción: ");
} while ( !((opcion>=1) && (opcion<=5)) );
return opcion;
}
/**
* Metodo que despliega el menu de opciones y procesa la opcion capturada desde teclado.
*/
public void procesaOpciones()
{
int opcion = 0;
int valor = 0, posicion =0;
do
{
opcion = despliegaMenu();
switch(opcion)
{
case 1:
arr.listarElementos();
break;
case 2:
valor = leerNumeroPositivo("Escribe tu valor para agregar al arreglo.");
arr.push(valor);
break;
case 3:
valor = arr.pop();
if (valor >=0)
{
leerNumeroPositivo("El valor sacado del arreglo es: " + valor);
}
else
{
System.out.println("No se pudo sacar elemento del arreglo");
}
break;
case 4:
valor = leerNumeroPositivo("Escribe el valor a buscar en el arreglo.");
posicion = arr.buscar(valor);
if (posicion >=0)
{
leerNumeroPositivo("El valor buscado en el arreglo arreglo se encuentra en la posición: " + posicion);
}
else
{
System.out.println("No se encontró el elemento dentro del arreglo");
}
break;
default:
System.out.println("Opción no reconocida.");
}
} while (opcion != 5);
System.out.println("Adios...");
}
/**
* Método que solicita al usuario un valor desde teclado, utiliza excepciones para validar el valor capturado
* @param texto mensaje de texto que será desplegado en la solicitud del valor.
* @return el valor numérico entero positivo capturado desde teclado
*/
public int leerNumeroPositivo(String texto)
{
Scanner teclado = new Scanner(System.in);
int valor = 0;
do
{
System.out.println(texto);
try
{
valor = teclado.nextInt();
if (valor<=0)
{
throw new Exception("No se permiten valores negativos");
}
}
catch (Exception e)
{
System.out.println("Error en la captura de datos");
valor = 0;
//limpia el buffer
teclado.nextLine();
}
}while (valor <=0);
return valor;
}
//atributos: vector (arreglo), n: total de elementos del arreglo, ap: apuntador
int[] vector = new int[5];
int n;
int ap;
/**
* Contructor que inicializa los atributos del arreglo: n y ap
*/
Arreglo ()
{
n = 5;
ap = 0;
}
/**
* Método que introduce un valor en el arreglo en la posición indicada por el apuntador
* @param valor a introducir
*/
public void push(int valor)
{
if (ap>=n)
{
System.out.println("Arreglo lleno, no se pudo ingresar el valor: " + valor);
}
else
{
vector[ap] = valor;
ap++;
}
}
/**
* Método que saca un elemento del arreglo y actualiza el valor del apuntador
* @return valor obtenido del arreglo
*/
public int pop()
{
int valor=-1;
if (ap>0)
{
ap--;
valor = vector[ap];
}
else
{
System.out.println("Arreglo vacio");
}
return valor;
}
/**
* Método que enlista los elementos del arreglo
*/
public void listarElementos()
{
int i=0;
System.out.println("Listar elementos del arreglo.");
if (ap>0)
{
for (i=0; i<ap; i++)
{
System.out.println("Elemento ("+i+"): " + vector);
}
}
else
{
System.out.println("Arreglo vacio.");
}
}
/**
* Método que busca un elemento y devuelve el Ãndice de
* la primera aparición del elemento a buscar, en caso de no encontrarlo devuelve el valor -1.
* @param valor el dato a buscar dentro del arreglo
* @return la posición del valor a buscar, o en caso de no encontrarlo -1
*/
public int buscar(int valor)
{
int indice = -1;
for (int i=0; i<ap; i++)
{
if (vector == valor)
{
indice = i;
break;
}
}
return indice;
}
}
}
public class ArrangementsMenu {
public static void main(String[] args) {
MenuOperaciones mnu = new MenuOperaciones();
mnu.procesaOpciones();
}
}