Corrección de programa en C++ con menú: dados, DNI, aleatorios y moneda

Electrónica4,32 KB

Menú de programas en C++

Programa en C++ con un menú de opciones que permite ejecutar distintos ejercicios.

Código corregido

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

int main(void) {
    int op, tirada, num, x, y, dni, letra, cara, cruz, uno, dos, tres, cuatro, cinco, seis;
    char letras[23] = {'T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E'};

    cout << "Menú" << endl;
    cout << "----" << endl;
    cout << "1. Programa 1" << endl;
    cout << "2. Programa 2" << endl;
    cout << "3. Salir" << endl;
    cout << "4. Programa 4" << endl;
    cout << "Dime una opción:" << endl;
    cin >> op;

    switch (op) {
    case 1: {
        int tirada, dado, n1, n2, n3, n4, n5, n6;
        srand(time(NULL));
        n1 = 0; n2 = 0; n3 = 0; n4 = 0; n5 = 0; n6 = 0;
        cout << "Programa que hace 100 tiradas de un dado y te dice el número de veces que ha salido cada número" << endl;
        for (tirada = 0; tirada < 100; tirada++) {
            dado = rand() % 6 + 1;
            cout << dado << "\t";
            if (dado == 1) {
                n1 = n1 + 1;
            } else if (dado == 2) {
                n2 = n2 + 1;
            } else if (dado == 3) {
                n3 = n3 + 1;
            } else if (dado == 4) {
                n4 = n4 + 1;
            } else if (dado == 5) {
                n5 = n5 + 1;
            } else {
                n6 = n6 + 1;
            }
        }
        cout << endl;
        cout << "El número 1 ha salido " << n1 << " veces" << endl;
        cout << "El número 2 ha salido " << n2 << " veces" << endl;
        cout << "El número 3 ha salido " << n3 << " veces" << endl;
        cout << "El número 4 ha salido " << n4 << " veces" << endl;
        cout << "El número 5 ha salido " << n5 << " veces" << endl;
        cout << "El número 6 ha salido " << n6 << " veces" << endl;
        break;
    }
    case 2:
        cout << "Programa 2" << endl;
        cout << "Programa que calcula la letra del DNI" << endl;
        cout << "Dime tu DNI sin letra:" << endl;
        cin >> dni;
        letra = dni % 23;
        cout << "Su DNI es: " << dni << "-" << letras[letra] << endl;
        break;
    case 3:
        cout << "Programa 3" << endl;
        cout << "Programa que genera dos aleatorios entre 0 y 9" << endl;
        srand(time(NULL));
        x = rand() % 10 + 0;
        y = rand() % 10 + 0;
        cout << "Un número es: " << x << endl;
        cout << "Otro número es: " << y << endl;
        break;
    case 4:
        cout << "Programa 4" << endl;
        cout << "Programa que simula la tirada de una moneda" << endl;
        srand(time(NULL));
        cara = 0;
        cruz = 0;
        for (tirada = 0; tirada < 100; tirada = tirada + 1) {
            y = rand() % 2;
            if (y == 1) {
                cout << "Cara" << endl;
                cara = cara + 1;
            } else {
                cout << "Cruz" << endl;
                cruz = cruz + 1;
            }
        }
        cout << "El número de caras ha sido " << cara << " y el número de cruces ha sido " << cruz << endl;
        break;
    }
    return 0;
}

Correcciones realizadas

  • Se añadió return 0; al final de main.
  • Se añadieron llaves en el caso 1 para delimitar el ámbito de las variables locales.
  • Se sustituyeron los bloques else { if ... } anidados por else if, sin cambiar la lógica.
  • Se corrigieron mayúsculas, acentos y ortografía en los mensajes ("número", "cruces", "Dime", etc.).
  • Se corrigió el comentario del programa 3, que indicaba "en 4 y el 10" cuando el código genera números entre 0 y 9.
  • Se añadieron saltos de línea en la salida del caso 1 para que los resultados no queden pegados.

Descargar

PDF Word HTML