Programa en Java: menú con contador, frases y calculadora avanzada

Informática y TelecomunicacionesActualizado el 5,39 KB

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.

Ponte a prueba

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 HTML

Preguntas 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

1. ¿Qué opción del menú principal termina el programa?
2. ¿Cuántos enteros pide contadorNumeros()?
3. ¿Qué hace la opción 4 de la calculadora avanzada?
4. ¿Qué límite usa pedirFrase(5)?
5. ¿Qué pasa si el usuario escribe texto en lugar de un número en el menú?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.