Programa en Java: menú con contador, frases y calculadora avanzada
Resumen
Este documento explica un programa en Java con un menú principal y cuatro opciones: contador de números, petición de frases, calculadora avanzada y salida. Muestra el código completo de la clase resolucionIsaac y describe cada método. Un estudiante aprende a usar switch, bucles do-while, Scanner y el manejo de excepciones con try y catch.
Puntos clave
- El método main() llama a menuPrincipal(), que muestra el menú y se repite hasta que el usuario elige la opción 4.
- contadorNumeros() pide diez enteros con un bucle for y devuelve la suma de los positivos, incluido el cero.
- calculadoraAvanzada() lee cinco números y puede sumarlos, dividirlos, calcular su media o mostrar el máximo.
- pedirFrase(5) pide palabras hasta que la frase tiene al menos cinco caracteres y luego la muestra.
- Cada menú usa un bucle do-while y la clase Scanner para leer los datos del teclado.
- Si el usuario escribe un dato no válido, el bloque catch pone opcion a 0 y el menú se repite.
Resolución de ejercicio en Java: menú principal con varias funciones
A continuación se muestra el código Java corregido del programa resolucionIsaac, que implementa un menú principal con contador de números, petición de frases, calculadora avanzada y opción de salida.
Código fuente
import java.util.Scanner;
public class resolucionIsaac {
public static void main(String[] args) {
menuPrincipal();
}
public static void menuPrincipal() { // MENÚ PRINCIPAL
Scanner tec = new Scanner(System.in);
int opcion = 0;
do {
System.out.println("*****MENÚ PRINCIPAL******");
System.out.println("1. Contador de números");
System.out.println("2. Pedir frase de longitud determinada");
System.out.println("3. Calculadora avanzada");
System.out.println("4. Salir");
System.out.println("Seleccione la opción deseada:");
try {
opcion = tec.nextInt();
switch (opcion) {
case 1:
int resultado = contadorNumeros();
System.out.println("El resultado es " + resultado);
break;
case 2:
pedirFrase(5);
break;
case 3:
calculadoraAvanzada();
break;
case 4:
System.out.println("Fin del programa");
break;
default:
System.out.println("Opción incorrecta");
break;
}
} catch (Exception e) {
opcion = 0;
}
tec.nextLine();
} while (opcion != 4);
}
public static void calculadoraAvanzada() { // CALCULADORA
Scanner tec = new Scanner(System.in);
int opcion = 0;
int num1, num2, num3, num4, num5;
int resultado = 0;
do {
System.out.println("*****CALCULADORA******");
System.out.println("1. Sumar");
System.out.println("2. Dividir");
System.out.println("3. Calcular media");
System.out.println("4. Mostrar máximo");
System.out.println("Seleccione la opción deseada:");
try {
opcion = tec.nextInt();
// Pido los 5 números
System.out.println("Introduzca num1:");
num1 = tec.nextInt();
System.out.println("Introduzca num2:");
num2 = tec.nextInt();
System.out.println("Introduzca num3:");
num3 = tec.nextInt();
System.out.println("Introduzca num4:");
num4 = tec.nextInt();
System.out.println("Introduzca num5:");
num5 = tec.nextInt();
switch (opcion) {
case 1:
resultado = num1 + num2 + num3 + num4 + num5;
break;
case 2:
resultado = num1 / num2 / num3 / num4 / num5;
break;
case 3:
resultado = (num1 + num2 + num3 + num4 + num5) / 5;
break;
case 4:
int max1 = Math.max(num1, num2);
int max2 = Math.max(num3, num4);
int max3 = Math.max(max1, max2);
resultado = Math.max(max3, num5);
break;
default:
System.out.println("Opción incorrecta");
break;
}
System.out.println(resultado);
} catch (Exception e) {
opcion = 0;
}
tec.nextLine();
} while (opcion != 4);
}
public static void pedirFrase(int longitudDeseada) { // LONGITUD FRASE HASTA 5
String frase = "";
Scanner tec = new Scanner(System.in);
while (frase.length() < longitudDeseada) {
System.out.println("Introduce una palabra: ");
frase = frase + " " + tec.nextLine();
}
System.out.println("La frase es: " + frase);
}
public static int contadorNumeros() { // BUCLE CUENTA HASTA 10
Scanner tec = new Scanner(System.in);
int numPositivos = 0;
int numActual = 0;
int sumaPositivos = 0;
for (int i = 1; i <= 10; i++) {
System.out.println("Introduce un entero: ");
numActual = tec.nextInt();
if (numActual >= 0) {
numPositivos++;
sumaPositivos = sumaPositivos + numActual;
}
}
return sumaPositivos;
}
}Descripción de los métodos
- menuPrincipal(): muestra el menú y gestiona la opción elegida por el usuario.
- calculadoraAvanzada(): permite sumar, dividir, calcular la media o mostrar el máximo de cinco números.
- pedirFrase(int): solicita palabras hasta alcanzar la longitud indicada y muestra la frase resultante.
- contadorNumeros(): pide diez enteros y devuelve la suma de los positivos (incluido el cero).
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué devuelve el método contadorNumeros()?
Pide diez enteros y devuelve la suma de los positivos, incluido el cero. No devuelve cuántos positivos hay.
¿Cómo termina el menú principal?
El bucle do-while sigue mientras la opción no sea 4. Al elegir 4, el programa muestra 'Fin del programa' y termina.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.