Ejercicios de Java Resueltos: Menú Interactivo, Bucles y Métodos Prácticos

Clasificado en Informática

Escrito el en español con un tamaño de 6,41 KB

Implementación de Menú Interactivo y Funciones en Java

A continuación se presenta el código completo del ejercicio, con las correcciones ortográficas en los textos mostrados en consola, una indentación profesional y buenas prácticas en la convención de nombres de clases en Java.

Estructura del Proyecto y Métodos Implementados

El programa se divide en cuatro secciones principales:

  • Menú principal: Controla el flujo general de navegación del usuario mediante un bucle do-while y captura de excepciones.
  • Contador de números: Solicita un valor y ejecuta un conteo ascendente hasta el número diez.
  • Concatenador de frases: Acumula palabras ingresadas por teclado hasta alcanzar una longitud mínima requerida.
  • Calculadora avanzada: Realiza operaciones de suma, división, promedio y cálculo del valor máximo entre cinco números.

Código Fuente Corregido

import java.util.Scanner;

public class Ejercicio1 {

    static Scanner teclado = new Scanner(System.in);

    public static void main(String[] args) {
        menuPrincipal();
    }

    public static void menuPrincipal() {
        int opcion = 0;
        boolean dist = false;
        do {
            System.out.println("***** Menú principal *****");
            System.out.println("1. Contador de números");
            System.out.println("2. Frase de una longitud determinada");
            System.out.println("3. Calculadora avanzada");
            System.out.println("4. Salir");
            try {
                opcion = teclado.nextInt();
                teclado.nextLine();
                switch (opcion) {
                    case 1:
                        int first = contadorNumeros();
                        break;
                    case 2:
                        String second = fraseLongitud();
                        break;
                    case 3:
                        calculadoraAvanzada();
                        break;
                    case 4:
                        System.out.println("Saliendo...");
                        break;
                }
            } catch (Exception e) {
                System.out.println("Introduce un número válido");
                teclado.nextLine();
            }
        } while (opcion != 4);
    }

    public static int contadorNumeros() {
        int resultado = 0;
        boolean dist = false;
        do {
            System.out.println("Introduce un número: ");
            try {
                resultado = teclado.nextInt();
                dist = false;
            } catch (Exception e) {
                dist = true;
                System.out.println("Introduce un número válido");
            }
            teclado.nextLine();
            for (; resultado < 10; resultado++) {
                System.out.println("El número es: " + resultado);
            }
        } while (dist == true);
        return resultado;
    }

    public static String fraseLongitud() {
        int resultado = 1;
        String frase = "";
        String res = "0";
        do {
            System.out.println("Introduce una palabra: ");
            frase = frase + " " + teclado.nextLine();
            resultado = frase.length();
        } while (resultado < 12);
        System.out.println("Su frase es: " + frase);
        return res;
    }

    public static void calculadoraAvanzada() {
        int primero = 1;
        int segundo = 1;
        int tercero = 1;
        int cuarto = 1;
        int quinto = 1;
        int resultado = 1;
        int opcion = 0;
        int maximo1 = 0;
        int maximo2 = 0;
        int maximo3 = 0;
        do {
            System.out.println("1. Sumar");
            System.out.println("2. Dividir");
            System.out.println("3. Calcular media");
            System.out.println("4. Mostrar máximo");
            try {
                System.out.println("Elige una opción --> ");
                opcion = teclado.nextInt();
                System.out.println("Escribe el primer número: ");
                primero = teclado.nextInt();
                System.out.println("Escribe el segundo número: ");
                segundo = teclado.nextInt();
                System.out.println("Escribe el tercer número: ");
                tercero = teclado.nextInt();
                System.out.println("Escribe el cuarto número: ");
                cuarto = teclado.nextInt();
                System.out.println("Escribe el quinto número: ");
                quinto = teclado.nextInt();
                switch (opcion) {
                    case 1:
                        resultado = primero + segundo + tercero + cuarto + quinto;
                        break;
                    case 2:
                        resultado = primero / segundo / tercero / cuarto / quinto;
                        break;
                    case 3:
                        resultado = (primero + segundo + tercero + cuarto + quinto) / 5;
                        break;
                    case 4:
                        maximo1 = Math.max(primero, segundo);
                        maximo2 = Math.max(tercero, cuarto);
                        maximo3 = Math.max(maximo2, maximo1);
                        resultado = Math.max(maximo3, quinto);
                        break;
                }
            } catch (Exception e) {
                System.out.println("Elige una opción válida");
            }
            teclado.nextLine();
            System.out.println("Resultado: " + resultado);
        } while (opcion > 4 || opcion < 1);
    }
}

Correcciones Aplicadas

  • Ortografía y tildes: Se corrigieron términos en los mensajes impresos como menú, números, opción, válido y máximo.
  • Gramática en mensajes: Se ajustó la conjugación del verbo elegir (de elije a elige) y se expandieron abreviaturas ambiguas como longi det y opc valid.
  • Convención de nombres: Se actualizó el nombre de la clase a Ejercicio1 siguiendo las normas habituales de CamelCase en Java.
  • Formato y legibilidad: Se ordenó la declaración de variables y la indentación de los bloques try-catch y estructuras switch-case.

Entradas relacionadas: