Jump to content

Problema con validad enteros en java (Pila)


Recommended Posts

Hola, necesito ayuda, estoy haciendo una pila en java (la tengo lista), el problema q tengo es que en el la clase menu debo ingresar solo datos enteros, tengo una clase leer para eso pero tampoco me funciona.

 

Clase leer

 

import java.io.*;
public class Leer {

public static String dato(){
String sdato="";
try{
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
sdato=bf.readLine();
}
catch(IOException e){
System.err.println("Error:" + e.getMessage());
}
return sdato;
}
public static short datoShort(){
try{
return Short.parseShort(dato());

}
catch(NumberFormatException e){
return Short.MIN_VALUE;
}
}
public static int datoInt(){
try{
return Integer.parseInt(dato());
}
catch(NumberFormatException e){
return Integer.MIN_VALUE;
}
}


}

 

Clase Menu

 

public class Lista_Pila {

public static void main(String[] args) {
Lista lista=new Lista();
int op=0, opcLCP=0,dat,aux,maxelementospila;
maxelementospila=0;
do{
System.out.println("Ingrese cantidad máximas de elemnto para la Pila(mayor a 0)");
maxelementospila =Leer.datoInt();
}while(maxelementospila==0);

do{
Limpiar.cls();
System.out.println("Menu de la Pila" + "\n");
System.out.println("1) Ingresar Datos");
System.out.println("2) Mostrar Datos");
System.out.println("3) Elimina Dato");
System.out.println("4) Sumar Datos");
System.out.println("5) Ordenar Datos");
System.out.println("6) Buscar Datos");
System.out.println("7) Salir \n");
System.out.println("Ingrese su opcion: ");
op=Leer.datoInt();

MenuPila(op, lista, maxelementospila);

}while (op != 7);
}
public static void MenuPila(int op, Lista lista, int maxele){

int dat, aux;
switch (op)
{
case 1:
Limpiar.cls();
if (lista.largo()<maxele){
System.out.println("Ingrese Dato: ");
dat=Leer.datoInt();
lista.agregarAlInicio(dat);
System.out.println("Presione Enter para Continuar");
aux=Leer.datoInt();
}
else{
Limpiar.cls();
System.out.println("Maximo Alcanzado Para la Pila ["+maxele+"]");
System.out.println("Presione Enter para Continuar");
aux=Leer.datoInt();
}
break;

case 2:
Limpiar.cls();
System.out.println("El contenido de la Pila es:");
lista.mostrar();
System.out.println("Presione Enter para Continuar");
aux=Leer.datoInt();
break;

case 3:
Limpiar.cls();
lista.ultimoNodo();
System.out.println("Se elimino el ultimo Dato de la Pila");
System.out.println("Presione Enter para Continuar");
aux=Leer.datoInt();
break;

case 4:
Limpiar.cls();
System.out.println("La suma de total de la pila es:");
System.out.println(lista.sumarNodo());
System.out.println("Presione Enter para Continuar");
aux=Leer.datoInt();
break;


case 5:
Limpiar.cls();
System.out.println("Datos Ordenados:");
lista.ordenarNodo(lista.largo());
System.out.println("Presione Enter para Continuar");
aux=Leer.datoInt();
break;


case 6:
Limpiar.cls();
System.out.println("Ingrese el dato a Buscar:");
dat=Leer.datoInt();
lista.encontrar(dat);
System.out.println("Presione Enter para Continuar");
aux=Leer.datoInt();
break;



}
}



}

 

todas las funciones del menu estan funcionando ok, pero todavia se puede ingresar otro tipo de dato, nose donde estoy cometiendo el error icon_sad.gif si alguien me puede ayudar icon_biggrin.gif

saludos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...