Llamadas - Código Fuente JAVA


El costo de las llamadas telefónicas internacionales depende de la zona geográfica
en la que se encuentre el país destino y del número de minutos hablados. En la
siguiente tabla se presenta el costo del minuto por zona. A cada zona se le ha asociado
una clave.

INDICATIVO       ZONA                    COSTO(USD)
01-10                      Norteamérica           0.30
11-25                      Centroamérica         0.60
26-40                      Suramerica              0.50
41-60                      Europa                     0.30
61-80                      Asia                         0.40
81-100                    África y Oceanía      0.80

Nota: para el indicativo 100 se usa 00.

El siguiente programa lee el numero telefónico con el indicativo, la duración de la llamada, calcula el valor en pesos y en dolares de a cuerdo a la zona geográfica:
--------------------------------
package telefono;
import javax.swing.JOptionPane;
/**
 *
 * @author Angie Mendez
 */
public class Telefono {

    public static void main(String[] args) {
        String numero;
        double costo;
        double duracion;
        double dolar;
        double pesos;
        numero=JOptionPane.showInputDialog("Ingrese el numero telefonico"); 
        if(numero.length()==10){
        duracion=Double.parseDouble(JOptionPane.showInputDialog("Ingrese la duracion de la llamada en minutos: "));
        dolar=0.00034;

        switch(numero.substring(0,2)){
        case "01": case "02":case "03":case "04":case "05":case "06":case "07":case "08":case "09":case "10":
        costo=0.30;
        pesos=costo*duracion;
            System.out.printf("El numero marcado es: "+numero+"\nEl indicativo es: "+numero.substring(0,2)+
            "\nEl valor del dolar de hoy es: 0.00034 USD"+"\nLa duracion de la llamada es: "+duracion+"\nLa zona es: Norteamerica"+"\nEl valor del minuto es de: "+
                costo+"\nEl valor de la llamada en dolares es de: " +costo*duracion +" USD"+"\nEn pesos es de: %.3f \n", (pesos/dolar));
            break;
            
        case "11": case "12":case "13":case "14":case "15":case "16":case "17":case "18":case "19":case "20":case "21":case "22":case "23":case "24":case "25":
        costo=0.60;
        pesos=costo*duracion;
            System.out.printf("El numero marcado es: "+numero+"\nEl indicativo es: "+numero.substring(0,2)+
            "\nEl valor del dolar de hoy es: 0.00034 USD"+"\nLa duracion de la llamada es: "+duracion+"\nLa zona es: Centroamerica"+"\nEl valor del minuto es de: "+
                costo+"\nEl valor de la llamada en dolares es de: " +costo*duracion+" USD"+"\nEn pesos es de: %.3f \n", (pesos/dolar));
        break;
        
        case "26":case "27": case "28":case "29":case "30":case "31":case "32":case "33":case "34":case "35":case "36":case "37":case "38":case "39":case "40":
        costo=0.50;
        pesos=costo*duracion;
            System.out.printf("El numero marcado es: "+numero+"\nEl indicativo es: "+numero.substring(0,2)+
            "\nEl valor del dolar de hoy es: 0.00034 USD"+"\nLa duracion de la llamada es: "+duracion+"\nLa zona es: Suramerica"+"\nEl valor del minuto es de: "+
                costo+"\nEl valor de la llamada en dolares es de: " +costo*duracion+" USD"+"\nEn pesos es de: %.3f \n", (pesos/dolar));
        break;
        
        case "41":case "42": case "43":case "44":case "45":case "46":case "47":case "48":case "49":case "50":case "51":case "52":case "53":case "54":case "55":case "56":case "57":case "58":case "59":case "60":
        costo=0.30;
        pesos=costo*duracion;
            System.out.printf("El numero marcado es: "+numero+"\nEl indicativo es: "+numero.substring(0,2)+
            "\nEl valor del dolar de hoy es: 0.00034 USD"+"\nLa duracion de la llamada es: "+duracion+"\nLa zona es: Europa"+"\nEl valor del minuto es de: "+
                costo+"\nEl valor de la llamada en dolares es de: " +costo*duracion+" USD" +"\nEn pesos es de: %.3f \n", (pesos/dolar));
        break;
        
        case "61": case "62":case "63":case "64":case "65":case "66":case "67":case "68":case "69":case "70":case "71": case "72":case "73":case "74":case "75":case "76":case "77":case "78":case "79":case "80":
        costo=0.40;
        pesos=costo*duracion;
            System.out.printf("El numero marcado es: "+numero+"\nEl indicativo es: "+numero.substring(0,2)+
            "\nEl valor del dolar de hoy es: 0.00034 USD"+"\nLa duracion de la llamada es: "+duracion+"\nLa zona es: Asia"+"\nEl valor del minuto es de: "+
                costo+"\nEl valor de la llamada en dolares es de: " +costo*duracion +" USD"+"\nEn pesos es de: %.3f \n", (pesos/dolar));
        break;
        
        case "81": case "82":case "83":case "84":case "85":case "86":case "87":case "88":case "89":case "90":case "91": case "92":case "93":case "94":case "95":case "96":case "97":case "98":case "99":case "00":
        costo=0.80;
        pesos=costo*duracion;
            System.out.printf("El numero marcado es: "+numero+"\nEl indicativo es: "+numero.substring(0,2)+
            "\nEl valor del dolar de hoy es: 0.00034 USD"+"\nLa duracion de la llamada es: "+duracion+"\nLa zona es: Africa y Oceania"+"\nEl valor del minuto es de: "+
                costo+"\nEl valor de la llamada en dolares es de: " +costo*duracion+" USD"+"\nEn pesos es de: %.3f \n", (pesos/dolar));
        }
        }
        else
            JOptionPane.showMessageDialog(null, "Numero telefonico erroneo");
}

--------------------------------


Comentarios