#include <iostream>
#include <string>
using namespace std;
const int MAX_ALUMNOS = 100;
struct Alumno {
string nombre;
double notas[3];
double promedio;
};
void ingresarNotas(Alumno cursos[][MAX_ALUMNOS], int numCursos, int numAlumnos);
void imprimirNotas(Alumno cursos[][MAX_ALUMNOS], int numCursos, int numAlumnos);
void modificarNotas(Alumno cursos[][MAX_ALUMNOS], int numCursos, int numAlumnos);
int main() {
int numCursos, numAlumnos;
cout << "Ingrese el número de cursos: ";
cin >> numCursos;
cout << "Ingrese el número de alumnos por curso: ";
cin >> numAlumnos;
Alumno cursos[3][MAX_ALUMNOS];
ingresarNotas(cursos, numCursos, numAlumnos);
cout << "\nNotas ingresadas:\n";
imprimirNotas(cursos, numCursos, numAlumnos);
modificarNotas(cursos, numCursos, numAlumnos);
cout << "\nNotas modificadas:\n";
imprimirNotas(cursos, numCursos, numAlumnos);
return 0;
}
void ingresarNotas(Alumno cursos[][MAX_ALUMNOS], int numCursos, int numAlumnos) {
for (int i = 0; i < numCursos; ++i) {
cout << "\nIngrese notas para el curso " << (i + 1) << ":\n";
for (int j = 0; j < numAlumnos; ++j) {
cout << "Alumno " << (j + 1) << ":\n";
cout << "Nombre: ";
cin >> cursos[i][j].nombre;
cout << "Ingrese las tres notas: ";
for (int k = 0; k < 3; ++k) {
cin >> cursos[i][j].notas[k];
}
// Calcular el promedio
double suma = 0.0;
for (int k = 0; k < 3; ++k) {
suma += cursos[i][j].notas[k];
}
cursos[i][j].promedio = suma / 3.0;
}
}
}
void imprimirNotas(Alumno cursos[][MAX_ALUMNOS], int numCursos, int numAlumnos) {
for (int i = 0; i < numCursos; ++i) {
cout << "\nCurso " << (i + 1) << ":\n";
for (int j = 0; j < numAlumnos; ++j) {
cout << "Alumno " << (j + 1) << ": " << cursos[i][j].nombre << "\tNotas: ";
for (int k = 0; k < 3; ++k) {
cout << cursos[i][j].notas[k] << " ";
}
cout << "\tPromedio: " << cursos[i][j].promedio << endl;
}
}
}
void modificarNotas(Alumno cursos[][MAX_ALUMNOS], int numCursos, int numAlumnos) {
string nombreBuscado;
cout << "\nIngrese el nombre del alumno a modificar: ";
cin >> nombreBuscado;
for (int i = 0; i < numCursos; ++i) {
for (int j = 0; j < numAlumnos; ++j) {
if (cursos[i][j].nombre == nombreBuscado) {
cout << "Notas actuales del alumno " << cursos[i][j].nombre << ": ";
for (int k = 0; k < 3; ++k) {
cout << cursos[i][j].notas[k] << " ";
}
cout << "\nIngrese las nuevas notas: ";
for (int k = 0; k < 3; ++k) {
cin >> cursos[i][j].notas[k];
}
// Calcular el nuevo promedio
double suma = 0.0;
for (int k = 0; k < 3; ++k) {
suma += cursos[i][j].notas[k];
}
cursos[i][j].promedio = suma / 3.0;
cout << "Notas modificadas con éxito.\n";
return; // Salir del bucle si se encontró y modificó al alumno
}
}
}
cout << "No se encontró un alumno con ese nombre.\n";
}