Problema en ejercicio

¿Estás muy vago para hacer el proyecto de programación y tienes que entregarlo mañana? Escribe aquí y quizá algún alma caritativa se decida a ayudarte. También puedes solicitar el servicio de <a href="http://www.buscoprofe.com">resolución de trabajos de clase</a>.
Responder
Mensaje
Autor
Avatar de Usuario
DavidRc10
Mensajes: 2
Registrado: 09/09/2019 2:28 am

Problema en ejercicio

#1 Mensaje por DavidRc10 » 09/09/2019 2:45 am

Hola, recién acabo de entrar en el foro y quería saber si me podrían ayudar.
Estoy estudiando para una recuperación de la carrera que tengo dentro de poco, resulta tengo que hacer este programa pero no consigo pasar la estructura a las funcionas. El programa debe de crear una lista de alumnos máximo 100 alumnos y cada alumno debe de tener su nombre, apellidos, notas, expediente....
Le dejo aquí el código que tengo hecho.

Código: Seleccionar todo

#include <iostream>
#include <array>
#include <string>
#include <cstdlib>

using namespace std;

const unsigned int MAX_Alumnos = 100;

typedef struct{
    string nombre;
    string apellidos;
    int expediente;
    float nota1,nota2;
    bool presentado1,presentado2;
    unsigned int media;
} TAlumno;


void Funcion1 (TAlumno &a);

void Funcion2 (TAlumno &a);

int main (){

    TAlumno a[100];

    unsigned int i=1;
    while (i<6){
        cout << endl << "---------------------------------------------------------------------------------" << endl;
        cout << "Menu: " << endl;
        cout << "\t 1. Leer datos de un alumno e introducirlo en la lista de alumno." << endl;
        cout << "\t 2. Borrar un alumno de la lista." << endl;
        cout << "\t 3. Ordenar la lista de alumnos por apellidos." << endl;
        cout << "\t 4. Visualizar la informacion de los alumnos de la lista." << endl;
        cout << "\t 5. Salir del menu." << endl;
        cout << "---------------------------------------------------------------------------------" << endl;
        cout << "\n" << "\n" ;
        cin >> i;

        switch (i){
            case 1: Funcion1(a); break;
            case 2: Funcion2(a); break;
            case 3: cout << "good"; break;
            case 4: cout << "good" ; break;
            case 5: return 0; break;
            default : cout << "Numero introducido no valido"; break;
        }

        }
    system("pause");
    return 0;
}


void Funcion1 (TAlumno &a){
    char d = 'y';
    int j = 0;
    while (d == 'y' || d == 'Y'){
        cout << "¿Quiere añadir un nuevo alumno? (Y O N)" << endl;
        cin >> d;

        cout << "\n Introduzca el nombre del alumno: ";
            cin.getline(a[j].nombre,50);
        cout << "\n Introducir apellidos: ";
            cin.getline(a[j].apellidos,200);
        cout << "\n Introducir expediente: ";
            cin >> a[j].expediente;
        cout << "\n Nota 1:";
            cin >> a[j].nota1;
        cout << "\n Nota 2:";
            cin >> a[j].nota2;
        cout << "\n ¿Se ha presentado al primer examen? (Y o N)";
            cin >> a[j].presentado1;
            if ('y' || 'Y')
                a.[j].presentado1 = true;
            else
                a.[j].presentado1 = false;
        cout << "\n ¿Se ha presentado al segundo examen? (Y o N)";
            cin >> t[j].presentado2;
            if ('y' || 'Y')
                a.[j].presentado2 = true;
            else
                a.[j].presentado2 = false;
        cout << "\n Alumno guardado correctamente.\n";
        j++;
    }
}

void Funcion2 (TAlumno){
    cout << t[0].nombre;
    cout << t[1].nombre;
}

mollok
Mensajes: 505
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Problema en ejercicio

#2 Mensaje por mollok » 09/09/2019 3:27 am

Para función 1 y función 2, pon nombres significativos, la firma del la función debería ser
void f (TAlumno[] a)

Por cierto: estás mezclando formas de hacer de C y C++.
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

Avatar de Usuario
DavidRc10
Mensajes: 2
Registrado: 09/09/2019 2:28 am

Re: Problema en ejercicio

#3 Mensaje por DavidRc10 » 09/09/2019 3:58 am

Lo tengo hecho en otro archivo de esta manera pero no se como accerder a cada nombre, apellidos etc de cada alumno, en el apartado "Introducir_Datos".
¿Esto seria entero c++?

Código: Seleccionar todo

#include <iostream>
#include <array>
#include <string>
#include <cstdlib>

using namespace std;

const unsigned int MAX_Alumnos = 100;

typedef struct{
    string nombre;
    string apellidos;
    int expediente;
    float nota1,nota2;
    bool presentado1,presentado2;
    unsigned int media;
} TAlumno;

typedef array <TAlumno,MAX_Alumnos>TDatosAlumnos;

void Introducir_Datos (TDatosAlumnos &t);

void Borrar_Datos (TDatosAlumnos &t);

int main (){

    TDatosAlumnos t;

    unsigned int i=1;
    while (i<6){
        cout << endl << "---------------------------------------------------------------------------------" << endl;
        cout << "Menu: " << endl;
        cout << "\t 1. Leer datos de un alumno e introducirlo en la lista de alumno." << endl;
        cout << "\t 2. Borrar un alumno de la lista." << endl;
        cout << "\t 3. Ordenar la lista de alumnos por apellidos." << endl;
        cout << "\t 4. Visualizar la informacion de los alumnos de la lista." << endl;
        cout << "\t 5. Salir del menu." << endl;
        cout << "---------------------------------------------------------------------------------" << endl;
        cout << "\n" << "\n" ;
        cin >> i;

        switch (i){
            case 1: Introducir_Datos(t); break;
            case 2: Borrar_Datos(t); break;
            case 3: cout << "good"; break;
            case 4: cout << "good" ; break;
            case 5: return 0; break;
            default : cout << "Numero introducido no valido"; break;
        }

        }
    system("pause");
    return 0;
}


void Introducir_Datos (TDatosAlumnos &t){
    char d = 'y';
    int j = 0;
    while (d == 'y' || d == 'Y'){
        cout << "¿Quiere añadir un nuevo alumno? (Y O N)" << endl;
        cin >> d;

        cout << "\n Introduzca el nombre del alumno: ";
            cin.getline(t[j].nombre,50);
        cout << "\n Introducir apellidos: ";
            cin.getline(t[j].apellidos,200);
        cout << "\n Introducir expediente: ";
            cin >> t[j].expediente;
        cout << "\n Nota 1:";
            cin >> t[j].nota1;
        cout << "\n Nota 2:";
            cin >> t[j].nota2;
        cout << "\n ¿Se ha presentado al primer examen? (Y o N)";
            cin >> t[j].presentado1;
            if ('y' || 'Y')
                t.[j].presentado1 = true;
            else
                t.[j].presentado1 = false;
        cout << "\n ¿Se ha presentado al segundo examen? (Y o N)";
            cin >> t[j].presentado2;
            if ('y' || 'Y')
                t.[j].presentado2 = true;
            else
                t.[j].presentado2 = false;
        cout << "\n Alumno guardado correctamente.\n";
        j++;
    }
}

void Borrar_Datos (TDatosAlumnos &t){
    cout << t[0].nombre;
    cout << t[1].nombre;
}
Gracias por contestar :D

mollok
Mensajes: 505
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Problema en ejercicio

#4 Mensaje por mollok » 09/09/2019 5:17 am

Me perdonarás, de C++ no sé mucho.
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado