Tutoriales de informática - Abrirllave.com

Abrirllave.com

Ejercicio de lenguaje C - Menú calculadora de números enteros

Escribir en lenguaje C un programa que:

1º) Muestre un menú con 5 opciones:

2º) Pida por teclado la opción deseada (dato carácter). Deberá ser introducida, mientras que, no sea mayor o igual que '1' y menor o igual que '5'.

3º) Ejecute la opción seleccionada del menú.

4º) Repita los pasos 1º, 2º y 3º, mientras que, el usuario no seleccione la opción 5 (Salir) del menú.

En pantalla, por ejemplo, al realizar una multiplicación, se verá:

Visualización en pantalla del programa Menú calculadora de números enteros, realizando una suma, resuelto en lenguaje C.

Si se intenta dividir entre cero, se mostrará un error:

Visualización en pantalla del programa Menú calculadora de números enteros, intentando realizar una división entre cero, resuelto en lenguaje C.

Cuando el divisor no sea cero, se mostrará el cociente y el resto:

Visualización en pantalla del programa Menú calculadora de números enteros, realizando una división, resuelto en lenguaje C.

Solución:

/* Programa: Menú calculadora de números enteros */

#include <conio.h>
#include <stdio.h>

int main()
{
    char opcion;
    int n1, n2;

    do
    {
        printf( "\n   >>> MENU CALCULADORA <<<" );
        printf( "\n\n   1. Sumar dos n%cmeros.", 163 );
        printf( "\n   2. Restar dos n%cmeros.", 163 );
        printf( "\n   3. Multiplicar dos n%cmeros.", 163 );
        printf( "\n   4. Dividir dos n%cmeros.", 163 );
        printf( "\n   5. Salir.\n" );

        /* Filtramos la opción elegida por el usuario */
        do
        {
            printf( "\n   Introduzca opci%cn (1-5): ", 162 );
            fflush( stdin );
            scanf( "%c", &opcion);

        } while ( opcion < '1' || opcion > '5' );
        /* La opción sólo puede ser '1', '2', '3', '4' o '5' */

        switch ( opcion )
        {
                      /* Opción 1: Sumar */
            case '1': printf( "\n   Introduzca primer sumando: " );
                      scanf( "%d", &n1);
                      printf( "\n   Introduzca segundo sumando: " );
                      scanf( "%d", &n2);
                      printf( "\n   %d + %d = %d\n", n1, n2, n1 + n2 );
                      break;

                      /* Opción 2: Restar */
            case '2': printf( "\n   Introduzca minuendo: " );
                      scanf( "%d", &n1);
                      printf( "\n   Introduzca sustraendo: " );
                      scanf( "%d", &n2);
                      printf( "\n   %d - %d = %d\n", n1, n2, n1 - n2 );
                      break;

                      /* Opción 3: Multiplicar */
            case '3': printf( "\n   Introduzca primer operando: " );
                      scanf( "%d", &n1);
                      printf( "\n   Introduzca segundo operando: " );
                      scanf( "%d", &n2);
                      printf( "\n   %d * %d = %d\n", n1, n2, n1 * n2 );
                      break;

                      /* Opción 4: División entera */
            case '4': printf( "\n   Introduzca dividendo: " );
                      scanf( "%d", &n1);
                      printf( "\n   Introduzca divisor: " );
                      scanf( "%d", &n2);
                      if ( n2 != 0 )
                          printf( "\n   %d div %d = %d ( Resto = %d )\n", n1, n2, n1 / n2, n1 % n2 );
                      else
                          printf( "\n   ERROR: No se puede dividir entre cero.\n" );
        }

    } while ( opcion != '5' );

    return 0;
}