How can I do it?

0

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();
}

}

    
asked by MGUELfig189 22.10.2017 в 02:18
source

0 answers