Ayuda con programación C++

Publicado en 'Programación' por almopo1, 20 Set 2016.





  1. almopo1

    almopo1 Miembro nuevo

    Registro:
    20 Set 2016
    Mensajes:
    2
    Likes:
    0




    Estoy empezando a programar pero todavía no se mucho, podrían ayudarme a corregir este código?:

    http:// pastebin.com/ZQuZngxD

    necesito que el código cumpla con este enunciado:

    En una universidad se pueden llevar hasta 22 créditos en un ciclo. Elabora el código que permita a un alumno matricularse sin pasarse del límite. Validando los datos de entrada y solicitando si desea seguir matriculándose en más créditos por cada curso.

    el código me lo paso un amigo, pero no se puede compilar ademas hay cosas que todavía no avanzamos en la universidad, podrían hacerlo mas sencillo?.

    gracias por su ayuda.

    PD: solo avanzamos Estructura de Control Repetitiva y Estructura de Control Selectiva Simple y Selectiva Compuesta
     


  2. JackS

    JackS Miembro maestro

    Registro:
    22 Mar 2014
    Mensajes:
    565
    Likes:
    95
    En que IDE o software estas trabajando?

    Quieres modificar el código o quieres otro?
     
  3. almopo1

    almopo1 Miembro nuevo

    Registro:
    20 Set 2016
    Mensajes:
    2
    Likes:
    0
    Estoy trabajando con Dev-C++, y quiero el mismo código pero mas sencillo, solo con temas básicos.
    En la univeridad estamos haciendo los temas de Estructura de Control Repetitiva (While, do while, for)y Estructura de Control Selectiva Simple y Selectiva Compuesta(If, else).
    por lo tanto el código debe estar basado en esos temas.
     
  4. Ahharu

    Ahharu Miembro nuevo

    Registro:
    30 Dic 2011
    Mensajes:
    5
    Likes:
    2
    Hay un error en el tipo de dato que se utilizó en las líneas 7 y 11. Si se quiere declarar un entero sin signo, debe utilizarse «unsigned» en lugar de «uint». Haciendo esos cambios el código compila.
    Si sólo puedes utilizar lo que mencionas el programa se haría excesivamente largo, al menos tendrías que utilizar arreglos para reducir el número de variables. Cuando se hace un trabajo con menos herramientas, el trabajo se hace más largo, lo mismo sucede al programar.
    No indicaste una cantidad específica de créditos por materia, supongo que cada materia debe valer un crédito, como en el código que subiste a pastebin. En ese programa no se pregunta al usuario si desea continuar matriculándose en otras materias.

    En este código se utiliza un arreglo en lugar de «set», también se consulta al usuario si desea seguir matriculándose:
    Código:
    #include <iostream>
    #include <string>  // getline()
    #include <cctype>  // tolower()
    
    int main() {
        constexpr size_t kMax(22);
        std::string materias[kMax];
        std::string materia;
        bool estaRegistrada;
        char opcion('n');
        
        size_t i(0);
        while (i < kMax) {
            std::cout << "Cr\202ditos restantes: " << kMax - i << std::endl
                      << "Ingrese la materia para inscribirse:\nmateria = ";
            (void) std::getline(std::cin, materia);
            
            estaRegistrada = false;
            for (size_t j(0); j < i; ++j) {
                if (materia == materias[j]) {
                    estaRegistrada = true;
                }
            }
            
            if (estaRegistrada) {
                std::cout << "\n* Ya est\240 inscrito en esa materia *\n";
            } else {
                materias[i] = materia;
                std::cout << "\n* Inscripci\242n realizada con \202xito *\n";
                ++i;
            }
            
            if (i < kMax) {
                std::cout << "\n\250Desea inscribirse en otra materia? (s / n): ";
                std::cin >> opcion;
                (void) std::cin.ignore();
                if (tolower(opcion) == 's') {
                    std::cout << std::endl;
                    continue;
                } else if (tolower(opcion) == 'n') {
                    std::cout << "\n* Fin de la inscripci\242n de materias *";
                    break;
                } else {
                    std::cout <<"\n* Error - Opci\242n desconocida *";
                    break;
                }
            } else {
                std::cout << "\n* Ha utilizado todos sus cr\202ditos *";
                break;
            }
        }
        
        return 0;
    }
    Si tienes un error de compilación debido al uso de constexpr, utiliza const.