📝 Descripción del Problema
Calcular e imprimir el costo final de una llamada telefónica. El costo depende de la clave de la zona y tiene un precio para los primeros 3 minutos y otro para los minutos adicionales.
Datos: CLAVE (entero), NUMIN (entero, número de minutos).
💡 Pistas y Fórmulas Clave
- La clase principal debe llamarse
CostoLlamada.java. - Este problema requiere una estructura
if-else-if(o unswitch) para seleccionar la tarifa basada en laCLAVE. - Nota: Las claves 25 (Asia) y 25 (África) están duplicadas. Es mejor usar
if-else-if. - Dentro de cada tarifa, necesitarás otro
if-elsepara determinar el costo: if (NUMIN <= 3) { COSTO = NUMIN * PRECIO_BASE; }else { COSTO = (3 * PRECIO_BASE) + ((NUMIN - 3) * PRECIO_EXTRA); }- Es buena idea crear un método auxiliar privado para calcular el costo y evitar repetir código.
📊 Diagrama de Flujo
▶️ Prueba y Resultados
Resultado de ejecutar --select-class TestCostoLlamada en la terminal.
PS C:\Users\...\Ejercicios> java -jar lib\junit-platform-console-standalone-1.9.3.jar -cp "src;tests" --select-class TestCostoLlamada
Thanks for using JUnit! Support its development at https://junit.org/sponsoring
.
+-- JUnit Jupiter [OK]
| '-- TestCostoLlamada [OK]
| +-- testClaveInvalida() [OK]
| +-- testClave12_TramoBase() [OK]
| +-- testClave19_TramoExtra() [OK]
| +-- testClave18_TramoExtra() [OK]
| +-- testMinutosNegativos() [OK]
| +-- testClave29_TramoExtra() [OK]
| +-- testClave25_TramoBase() [OK]
| '-- testClave15_TramoBase() [OK]
'-- JUnit Platform Suite [OK]
Test run finished after 97 ms
[ 3 containers found ]
[ 0 containers skipped ]
[ 3 containers started ]
[ 0 containers aborted ]
[ 3 containers successful ]
[ 0 containers failed ]
[ 8 tests found ]
[ 0 tests skipped ]
[ 8 tests started ]
[ 0 tests aborted ]
[ 8 tests successful ]
[ 0 tests failed ]