Dev - C++ - punteros, structuras y arrays dinamicos

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

punteros, structuras y arrays dinamicos

Publicado por fergus (2 intervenciones) el 05/12/2018 15:48:38
Primero que todo muchas gracias por tomarse el tiempo de leer esto, les explico
mi objetivo es utilizando punteros, estructuras y arreglos dinamicos hacer un codigo que me permita tomar los datos de cierta cantidad de estudiantes y tomarle los datos para despues ordenarlos y poder trabajar con ellos pero me esta costanto, miren como voy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <conio.h>
#include <stdlib.h>
 
 
using namespace std;
 
struct Alumno{
    char nombre[30];
    int edad;
    float promedio;
}stu, *dir= &stu;
int numerostu;
 
void datos();
 
int main()
{
 
    return 0;
}
void datos(){
    cout<<"por favor indicar numero de estudiantes";
    cin>>numerostu;
 
    dir = new int[numerostu];
 
    for(int i=0;i<numerostu;i++){
        int examenes=0;
        int sumatoria=0;
        cout<<"nombre del estudiantes ; "<<i<<" por favor "<<endl;
        cin.getline(dir[i]->nombre,30,'\n');
 
        cout<<"edad del estudiantes : "<<i<<" por favor "<<endl;
        cin>>*(dir[i]->edad);
 
        cout<<" por favor indique la cantidad de examenes tomados a: "<<dir->nombre<<endl;
        cin>>examenes;
        for(int j=0;j<examenes;j++){
            cout<<"ingrese las notas"<<endl;
 
            cin>>sumatoria;
            sumatoria+=;
            dir->promedio=(sumatoria/examenes);
        }
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 417
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

punteros, structuras y arrays dinamicos

Publicado por Thanatos (199 intervenciones) el 06/12/2018 15:10:19
Esto te puede servir como base para tu programa con punteros, estructuras y arrays dinámicos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <limits>    // numeric_limits
 
using namespace std;
 
struct Alumno {
    char *nombre;
    int edad;
    float promedio;
    size_t nNotas;
    float *notas;
};
 
void registrarAlumnos(Alumno *, const size_t, const size_t);
void mostrarAlumnos(const Alumno *, const size_t);
void reservarMemoria(Alumno **, const size_t, const size_t);
void liberarMemoria(Alumno *, const size_t);
void limpiarBuffer(void);
 
int main() {
    const size_t nChars = 32;
    Alumno *alumnos;
    size_t nAlumnos;
 
    cout << "Ingrese la cantidad de estudiantes: ";
    cin >> nAlumnos;
 
    reservarMemoria(&alumnos, nAlumnos, nChars);
    registrarAlumnos(alumnos, nAlumnos, nChars);
    mostrarAlumnos(alumnos, nAlumnos);
    liberarMemoria(alumnos, nAlumnos);
 
    return 0;
}
 
void registrarAlumnos(Alumno *alumnos, const size_t nAlumnos, const size_t nChars) {
    for (size_t i = 0; i < nAlumnos; ++i) {
        float suma = 0.0f;
 
        limpiarBuffer();
        cout << "\nIngrese los datos del Alumno #" << i + 1 << ":\n";
 
        cout << "Nombre -------> ";
        (void) cin.getline(alumnos[i].nombre, static_cast<streamsize>(nChars), '\n');
 
        cout << "Edad ---------> ";
        cin >> alumnos[i].edad;
 
        cout << "N. examenes --> ";
        cin >> alumnos[i].nNotas;
 
        alumnos[i].notas = new float[alumnos[i].nNotas];
 
        cout << "\nIngrese las notas de " << alumnos[i].nombre << ":\n";
        for (size_t j = 0; j < alumnos[i].nNotas; ++j) {
            cout << "Nota #" << j + 1 << ": ";
            cin >> alumnos[i].notas[j];
            suma += alumnos[i].notas[j];
        }
        cout << '\n';
 
        alumnos[i].promedio = suma / static_cast<float>(alumnos[i].nNotas);
    }
}
 
void mostrarAlumnos(const Alumno *alumnos, const size_t nAlumnos) {
    for (size_t i = 0; i < nAlumnos; ++i) {
        cout << "Alumno:   " << alumnos[i].nombre << '\n'
             << "Edad:     " << alumnos[i].edad   << '\n'
             << "Notas:    ";
        for (size_t j = 0; j < alumnos[i].nNotas; ++j) {
            cout << alumnos[i].notas[j] << "  ";
        }
        cout << "\nPromedio: " << alumnos[i].promedio << "\n\n";
    }
}
 
void reservarMemoria(Alumno **alumnos, const size_t nAlumnos, const size_t nChars) {
    *alumnos = new Alumno[nAlumnos];
 
    for (size_t i = 0; i < nAlumnos; ++i) {
        (*alumnos)[i].nombre = new char[nChars];
        (*alumnos)[i].edad = 0;
        (*alumnos)[i].promedio = 0.0f;
    }
}
 
void liberarMemoria(Alumno *alumnos, const size_t nAlumnos) {
    for (size_t i = 0; i < nAlumnos; ++i) {
        delete[] alumnos[i].nombre;
        delete[] alumnos[i].notas;
    }
    delete[] alumnos;
}
 
void limpiarBuffer() {
    (void) cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

punteros, structuras y arrays dinamicos

Publicado por fergus (2 intervenciones) el 10/12/2018 00:14:29
me pudieras explicar cual es la diferencia cuando declaras una variable con doble signo de puntero lines 78 por ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar