Dev - C++ - Alguien me puede ayudar para realizar un codigo?

 
Vista:

Alguien me puede ayudar para realizar un codigo?

Publicado por MaryMG (6 intervenciones) el 11/04/2020 07:49:21
Hola buen dia...
espero se encuentren bien, el motivo de mi mensajes para que si me pueden ayudar a crear un codigo para el siguiente ejercicio...

Se requiere un programa que apoye a un profesor de primaria a obtener automáticamente el promedio de siete alumnos de cada una de las seis materias cursadas durante el ciclo escolar.

Para la definición del programa debes considerar la siguiente información que se obtuvo del registro de calificaciones que almacenó el profesor en un archivo.

Matemáticas Español Inglés Ciencias Naturales Formación Cívica Historia
Juan 9 7 10 9 6 7
María 10 10 9 9 8 8
Pedro 6 6 9 8 8 9
Inés 8 8 10 9 7 7
Laura 5 9 8 8 8 7
Carlos 7 10 9 8 7 8
Adriana 10 9 8 8 9 6
El programa debe considerar lo siguiente:

Los datos de las calificaciones de las materias de cada alumno deben ser leídos de un archivo.
Se debe producir un reporte de resultados que se imprima en un archivo de salida y que contenga lo siguiente:
La tabla de resultados debe estar impresa, con los nombres de alumnos y sus promedios.
Se debe mostrar el promedio general de cada alumno y el promedio total del grupo.
Se debe mostrar el alumno con mayor promedio.
Si alguno de los alumnos obtiene un promedio general menor a 7, indicarlo con un mensaje de “Alumno reprobado”.
Indicar con un mensaje de “Alumno aprobado” a todos aquellos que obtengan un promedio general igual o mayor a 7.

Espero me puedan ayudar soy estudiante de una carrera a fin de Ingeniera en Sistemas computacionales y las clases por el momento son en online, asi es que estoy teniendo problemas para hacer los ejercicios.
Gracias y disculpen la molestia.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-3
Responder
sin imagen de perfil
Val: 160
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Alguien me puede ayudar para realizar un codigo?

Publicado por Andrés (53 intervenciones) el 11/04/2020 13:21:33
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cstdlib>
#include <sstream>
 
using namespace std;
 
const unsigned char LINE_LEN = 165;
const size_t LEN = 6;
const string APROBADO = "Aprobado";
const string NO_APROBADO = "No aprobado";
const float DISCRIMINANTE = 7;
 
struct materia {
    string nombre;
};
 
struct materia materias[LEN];
 
struct boleta_alumno {
    string nombre;
    float calificaciones[LEN] = {0};
    float promedio = 0;
    struct boleta_alumno * siguiente_boleta = nullptr;
};
 
boleta_alumno* head = nullptr;
 
static void liberar_memoria(boleta_alumno* );
static void calcular_promedios(float &);
static void imprimir_resultados(float &);
static void obtener_header(ifstream &);
static void obtener_boletas(ifstream &);
 
int main() {
 
    string nombreArchivo = "boletas.txt";
 
    ifstream archivo (nombreArchivo);
 
    if (!archivo) {
 
        cout << "Error. No se pudo abrir el archivo." << endl;
        cin.get();
 
        return EXIT_FAILURE;
 
    }
 
    float promedio_grupal = 0;
 
    obtener_header(archivo);
    obtener_boletas(archivo);
    calcular_promedios(promedio_grupal);
    imprimir_resultados(promedio_grupal);
    liberar_memoria(head);
 
    archivo.close();
 
    return EXIT_SUCCESS;
 
}
 
static void liberar_memoria(boleta_alumno* boleta) {
 
    if(nullptr != boleta && nullptr == boleta -> siguiente_boleta) {
        delete boleta;
    }else {
        liberar_memoria(boleta -> siguiente_boleta);
        delete boleta;
    }
}
 
static void calcular_promedios(float &promedio_grupal) {
 
    int numero_alumnos = 0;
    boleta_alumno* h = head;
 
    while(nullptr != h && nullptr != h -> siguiente_boleta) {
 
        float sum = 0;
        numero_alumnos++;
 
        for(size_t i = 0 ; i < LEN ; i++)
            sum += h->calificaciones[i];
 
        sum /= LEN;
        h -> promedio = sum;
        promedio_grupal += sum;
        h = h -> siguiente_boleta;
    }
 
    if(0 != numero_alumnos)
        promedio_grupal /= numero_alumnos;
 
}
 
static void imprimir_resultados(float &promedio_grupal) {
 
    ofstream output_stream;
    output_stream.open ("output.txt");
 
    output_stream << endl << string(LINE_LEN, '-') << endl;
 
    for(size_t i = 0 ; i < LEN ; i++)
        output_stream << setfill (' ') << setw(20) <<right << materias[i].nombre;
 
    output_stream << setfill (' ') << setw(20) <<right << "Promedio";
    output_stream << setfill (' ') << setw(20) <<right << "Estatus";
 
    output_stream << endl << string(LINE_LEN, '-') << endl << endl;
 
    boleta_alumno* h = head;
 
    while(nullptr != h -> siguiente_boleta) {
 
        output_stream << endl << setfill(' ') << setw(8)<< left <<h->nombre;
        output_stream << setfill (' ') << setw(10) <<right << setprecision(2) << fixed <<h -> calificaciones[0];
 
        for(size_t j = 1 ; j < LEN ; j++)
            output_stream << setfill (' ') << setw(19) <<right << setprecision(2) <<fixed <<h -> calificaciones[j];
 
        output_stream << setfill (' ') << setw(22) <<right << h -> promedio;
        output_stream << setfill (' ') << setw(22) <<right << right << (DISCRIMINANTE <= h->promedio ? APROBADO : NO_APROBADO);
 
        h = h -> siguiente_boleta;
    }
 
    output_stream << endl << string(LINE_LEN, '-') << endl;
    output_stream << endl << "Promedio grupal: " << promedio_grupal << endl;
 
    output_stream.close();
 
}
 
static void obtener_header(ifstream &archivo) {
 
    string header;
    getline(archivo, header);
 
    stringstream ss(header);
    string nombre;
 
    for(size_t i = 0 ; i < LEN && getline(ss, nombre, ' '); i++)
        materias[i].nombre = nombre;
 
}
 
static void obtener_boletas(ifstream &archivo) {
 
    string linea;
 
    while(getline(archivo, linea)) {
 
        stringstream ss(linea);
        string item;
 
        string items[LEN+1] = {};
 
        for(size_t i = 0 ; i <= LEN && getline(ss, item, ' '); i++)
            items[i] = item;
 
        boleta_alumno* boleta = new boleta_alumno;
        boleta -> nombre = items[0];
 
        for(size_t j = 1;j <= LEN ; j++)
            boleta -> calificaciones[j-1] = stof(items[j]);
 
        if(nullptr == head)
            head = boleta;
        else {
            boleta -> siguiente_boleta = head -> siguiente_boleta;
            head -> siguiente_boleta = boleta;
        }
 
    }
}


Screen-Shot-2020-04-11-at-6.22.19
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

Alguien me puede ayudar para realizar un codigo?

Publicado por MaryMG (6 intervenciones) el 11/04/2020 20:20:40
Gracias Andres, pero cuando compila me sale que nullptr no esta declarado
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
sin imagen de perfil
Val: 160
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Alguien me puede ayudar para realizar un codigo?

Publicado por Andrés (53 intervenciones) el 11/04/2020 21:43:14
no idea, me funciona correctamente en mac y linux, usas windows? tal vez es algo de configuración del IDE
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
sin imagen de perfil
Val: 160
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Alguien me puede ayudar para realizar un codigo?

Publicado por Andrés (53 intervenciones) el 12/04/2020 18:53:49
Lo solucionaste? si no, puedes probar reemplazando nullptr por NULL, aver que sale :/
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

Alguien me puede ayudar para realizar un codigo?

Publicado por MaryMG (6 intervenciones) el 17/04/2020 06:29:19
Hola disculpa la tardanza... ya cambie NULL y creo se se pudo,pero ahora me sale error en (Archivo) no me deja copilar dice was not declared in the scope =(
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

Alguien me puede ayudar para realizar un codigo?

Publicado por MaryMG (6 intervenciones) el 17/04/2020 06:29:42
Hola disculpa la tardanza... ya cambie NULL y creo se se pudo,pero ahora me sale error en (Archivo) no me deja copilar dice was not declared in the scope =(
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

Alguien me puede ayudar para realizar un codigo?

Publicado por Jair (2 intervenciones) el 12/08/2021 22:22:16
Pudiste resolver este ´problema. Tengo el mismo y no lo he solucionado
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