Ejercicio en clase de la cabina telefónica.

2 views
Skip to first unread message

jhon galvis

unread,
Oct 28, 2013, 3:03:40 PM10/28/13
to fundamentospro...@googlegroups.com
Ingeniero buenas tardes mis preguntas son:

1)  ¿Si esta correcto el código?   
2) ¿Es posible validar que la pregunta de los minutos que gasto se ingrese solo números?


public class Cabina1 {
  
    public String calcular(){  
    String preguntar = ""; 
    String tipoLlamada = "";
    int calcularNacional = 0;
    int calcularLocal = 0;
    String preguntarMinutosNacional = "";
    String preguntarMinutosLocal = "";
    int enteroMinutosNacional = 0;
    int enteroMinutosLocal = 0;
    String mensaje = "";
    int gananciaTotal = 0;
    int acumuladorNacional = 0;
    int acumuladorLocal = 0;
    
        do{
    
        preguntar = JOptionPane.showInputDialog("¿Desea hacer una llamada?");
          if(preguntar.equals("si")){
            tipoLlamada = JOptionPane.showInputDialog("¿Su llamada es nacional o local?");
        
                if(tipoLlamada.equals("nacional")){
                
                preguntarMinutosNacional = JOptionPane.showInputDialog("¿Cuantos minutos gasto?");
                enteroMinutosNacional = Integer.parseInt(preguntarMinutosNacional);
                calcularNacional = 100*enteroMinutosNacional;
                acumuladorNacional += calcularNacional;
                mensaje = "Debe pagar: "+calcularNacional;
                System.out.println(mensaje);
                }
                if(tipoLlamada.equals("local")){
                
                preguntarMinutosLocal = JOptionPane.showInputDialog("¿Cuantos minutos gasto?");
                enteroMinutosLocal = Integer.parseInt(preguntarMinutosLocal);
                calcularLocal = 10*enteroMinutosLocal;
                acumuladorLocal += calcularLocal; 
                mensaje = "Debe pagar: "+calcularLocal;
                System.out.println(mensaje);
                }
            }
       }while(preguntar.equals("si"));
    
        if(preguntar.equals("no")){
            gananciaTotal = acumuladorNacional+acumuladorLocal;
            mensaje = "El programa se cerro su ganancia total es: "+gananciaTotal;
        }
        if(!preguntar.equals("si") && !preguntar.equals("no")){
            mensaje = "Ingrese si o no"; 
        }
        
        System.out.println(mensaje);
        return mensaje;
    }
}

boris...@ufps.edu.co

unread,
Oct 28, 2013, 3:41:01 PM10/28/13
to fundamentospro...@googlegroups.com
Buenas tardes. 

1)  ¿Si esta correcto el código?   
Yo creo que esta pregunta la puede contestar ud mismo corriendo el programa.

2) ¿Es posible validar que la pregunta de los minutos que gasto se ingrese solo números?
Sí por supuesto. En principio la manera de hacerlo sería capturar la excepción y partir de allí permitir que el usuario ingrese el valor. No existe una manera mágica de hacerlo. Generalmente se podrían usar apis que ofrezcan el servicio, o ud mismo implementar un método q capture la excepción y devuelva si es un número válido. Algo así:


private static boolean isNumeric(String cadena){
try {
Integer.parseInt(cadena);
return true;
} catch (NumberFormatException nfe){
return false;
}
}

Si el string ingresado corresponde a un número, retornará true, de lo contrario retornará false.

Vemos.
Reply all
Reply to author
Forward
0 new messages