Me gustaría que realizará un código qué al momento de ejecutarse cumpla extrictamente estos requisitos: 1. Que el usuario ingrese la cantidad de alumnos a evaluar. 2. Crear un arreglo donde se guarden las notas de cada estudiante (notas de 0 a 100). Aquí deben de ingresar las notas de cada estudiante. 3. Mostrar al usuario la cantidad de estudiantes evaluados. 4. Mostrar el promedio de las notas totales. 5. Mostrar la nota mayor de todos los estudiantes evaluados. 6. Mostrar la casilla del arreglo donde esta la nota mayor de los estudiantes evaluados. 7. Mostrar la nota menor de todos los estudiantes evaluados. 8. Mostrar la casilla del arreglo donde está la nota menor de los estudiantes evaluados. 9. Usar una función para que el programa al ser ejecutado desde el escritorio (extensión .exe) no se cierre al ejecutarlo. 10. Crear un menú adecuado para el programa. Tomate tu tiempo para que puedas cumplir correctamente esta tarea
Aquí te dejo el código en C++ que cumple con los requisitos que mencionaste: ```cpp #include <iostream> #include <vector> #include <algorithm> // Función para calcular el promedio de las notas double calcularPromedio(const std::vector<double>& notas) { double suma = 0.0; for (const auto& nota : notas) { suma += nota; } return suma / notas.size(); } // Función para encontrar la nota mayor y su índice std::pair<double, int> encontrarNotaMayor(const std::vector<double>& notas) { double notaMayor = notas[0]; int indiceMayor = 0; for (int i = 1; i < notas.size(); ++i) { if (notas[i] > notaMayor) { notaMayor = notas[i]; indiceMayor = i; } } return std::make_pair(notaMayor, indiceMayor); } // Función para encontrar la nota menor y su índice std::pair<double, int> encontrarNotaMenor(const std::vector<double>& notas) { double notaMenor = notas[0]; int indiceMenor = 0; for (int i = 1; i < notas.size(); ++i) { if (notas[i] < notaMenor) { notaMenor = notas[i]; indiceMenor = i; } } return std::make_pair(notaMenor, indiceMenor); } int main() { // Menú principal int opcion; do { std::cout << "Menú principal:" << std::endl; std::cout << "1. Ingresar notas de estudiantes" << std::endl; std::cout << "2. Mostrar resultados" << std::endl; std::cout << "3. Salir" << std::endl; std::cout << "Ingrese su opción: "; std::cin >> opcion; switch (opcion) { case 1: { // Ingresar cantidad de estudiantes int cantidadEstudiantes; std::cout << "Ingrese la cantidad de estudiantes a evaluar: "; std::cin >> cantidadEstudiantes; // Ingresar notas de estudiantes std::vector<double> notas(cantidadEstudiantes); for (int i = 0; i < cantidadEstudiantes; ++i) { std::cout << "Ingrese la nota del estudiante " << i + 1 << ": "; std::cin >> notas[i]; } // Guardar notas en un archivo para que se mantengan después de cerrar el programa std::ofstream archivo("notas.txt"); for (const auto& nota : notas) { archivo << nota << std::endl; } archivo.close(); break; } case 2: { // Leer notas desde archivo std::ifstream archivo("notas.txt"); if (archivo.is_open()) { std::vector<double> notas; double nota; while (archivo >> nota) { notas.push_back(nota); } archivo.close(); // Mostrar resultados std::cout << "Cantidad de estudiantes evaluados: " << notas.size() << std::endl; std::cout << "Promedio de las notas totales: " << calcularPromedio(notas) << std::endl; // Encontrar nota mayor y su índice auto notaMayor = encontrarNotaMayor(notas); std::cout << "Nota mayor de todos los estudiantes evaluados: " << notaMayor.first << std::endl; std::cout << "Casilla del arreglo donde está la nota mayor: " << notaMayor.second << std::endl; // Encontrar nota menor y su índice auto notaMenor = encontrarNotaMenor(notas); std::cout << "Nota menor de todos los estudiantes evaluados: " << notaMenor.first << std::endl; std::cout << "Casilla del arreglo donde está la nota menor: " << notaMenor.second << std::endl; } else { std::cout << "No se encontró el archivo de notas." << std::endl; } break; } case 3: std::cout << "Adiós!" << std::endl; break; default: std::cout << "Opción inválida. Por favor, ingrese una opción válida." << std::endl; } } while (opcion != 3); return 0; } ``` Este código utiliza un menú principal para permitir al usuario elegir entre ingresar notas de estudiantes, mostrar resultados o salir del programa. Cuando el usuario elige ingresar notas de estudiantes, se le pide que ingrese la cantidad de estudiantes a evaluar y luego se le pide que ingrese las notas de cada estudiante. Las notas se guardan en un archivo llamado "notas.txt" para que se mantengan después de cerrar el programa. Cuando el usuario elige mostrar resultados, se leen las notas desde el archivo y se calcula el promedio de las notas totales. Luego, se encuentra la nota mayor y su índice, y se encuentra la nota menor y su índice. Finalmente, se muestran los resultados en la consola. El programa utiliza funciones para calcular el promedio de las notas, encontrar la nota mayor y su índice, y encontrar la nota menor y su índice. Estas funciones se utilizan para mantener el código organizado y fácil de leer. Es importante destacar que este código utiliza un archivo llamado "notas.txt" para guardar las notas de los estudiantes. Si el archivo no existe, el programa no podrá leer las notas y mostrar los resultados. Por lo tanto, es importante asegurarse de que el archivo exista antes de ejecutar el programa.