Desarrolle un programa que calcule el promedio general de una materia de cada estudiante, con base en 5 calificaciones parciales. Al calcular el promedio, deberá imprimirse por cada estudiante si el estudiante "Aprobó" o "Reprobó" según su promedio. Un estudiante aprueba si su calificación es mayor o igual a 70. Este proceso se ejecutará, cada vez que el usuario seleccione la Opción 1 del menú. El programa solo finalizará cuando el usuario así lo determine, para saberlo, se controlará por medio de un menú de DOS OPCIONES: 1.- Capturar calificaciones de un estudiante 2.- Salir Al finalizar, el programa deberá imprimir un reporte FINAL con los siguientes datos: a) Promedio General del Grupo b) Alumnos Aprobados c) Alumnos Reprobados d) Porcentaje de Alumnos Aprobados e) Porcentaje de Alumnos Reprobados f) Total de Estudiantes
Aquí te presento un ejemplo de cómo podrías implementar este programa en C++: ```cpp #include <iostream> #include <vector> #include <string> struct Estudiante { std::string nombre; double promedio; bool aprobado; }; int main() { std::vector<Estudiante> estudiantes; int opcion; do { std::cout << "Menú" << std::endl; std::cout << "1. Capturar calificaciones de un estudiante" << std::endl; std::cout << "2. Salir" << std::endl; std::cout << "Ingrese una opción: "; std::cin >> opcion; switch (opcion) { case 1: { Estudiante estudiante; std::cout << "Ingrese el nombre del estudiante: "; std::cin.ignore(); std::getline(std::cin, estudiante.nombre); std::cout << "Ingrese 5 calificaciones parciales del estudiante: " << std::endl; double calificacion; for (int i = 0; i < 5; i++) { std::cout << "Calificación " << i + 1 << ": "; std::cin >> calificacion; estudiante.promedio += calificacion; } estudiante.promedio /= 5; estudiante.aprobado = estudiante.promedio >= 70; estudiantes.push_back(estudiante); break; } case 2: break; default: std::cout << "Opción inválida. Por favor, ingrese una opción válida." << std::endl; } } while (opcion != 2); double promedioGeneral = 0; int totalEstudiantes = estudiantes.size(); int aprobados = 0; int reprobados = 0; for (const auto& estudiante : estudiantes) { promedioGeneral += estudiante.promedio; if (estudiante.aprobado) { aprobados++; } else { reprobados++; } } promedioGeneral /= totalEstudiantes; std::cout << "Reporte FINAL" << std::endl; std::cout << "a) Promedio General del Grupo: " << promedioGeneral << std::endl; std::cout << "b) Alumnos Aprobados: " << aprobados << std::endl; std::cout << "c) Alumnos Reprobados: " << reprobados << std::endl; std::cout << "d) Porcentaje de Alumnos Aprobados: " << (static_cast<double>(aprobados) / totalEstudiantes) * 100 << "%" << std::endl; std::cout << "e) Porcentaje de Alumnos Reprobados: " << (static_cast<double>(reprobados) / totalEstudiantes) * 100 << "%" << std::endl; std::cout << "f) Total de Estudiantes: " << totalEstudiantes << std::endl; return 0; } ``` Este programa utiliza un menú para permitir al usuario seleccionar la opción de capturar calificaciones de un estudiante o salir del programa. Cuando el usuario selecciona la opción de capturar calificaciones, se le pide que ingrese el nombre del estudiante y 5 calificaciones parciales. El programa calcula el promedio de las calificaciones y determina si el estudiante aprobó o reprobó según su promedio. El promedio y el resultado de la aprobación se almacenan en una estructura de datos llamada `Estudiante`. Después de que el usuario selecciona la opción de salir, el programa calcula el promedio general del grupo, el número de alumnos aprobados y reprobados, y el porcentaje de alumnos aprobados y reprobados. Finalmente, se imprime un reporte final con estos datos.