Las notas de un colegio se tienen en una matriz de 30 × 5 elementos (30, número de alumnos; 5, número de asignaturas). Se desea listar las notas de cada alumno y su media. Cada alumno tiene como mínimo dos asignaturas y máximo cinco, aunque los alumnos no necesariamente todos tienen que tener cinco materias.
C++
Respuestas a la pregunta
A continuación código en C++ que muestra el promedio de una cantidad variable de notas de 30 estudiantes. Se adjunta salida del algoritmo.
Programa en C++ para calcular el promedio de las notas de un estudiante.
#include<iostream>
#include<cctype>
using namespace std;
#define ARREGLO_MAX 100
- // Definir funciones
void registronotas(float notasest[30][5], int &k);
void mostrarresultados(float notasest[30][5], int &k);
string minusculas(string s);
int main() {
- // Definir e inicializar variables
int k;
float notasest[30][5];
int p;
int respuesta;
int t;
k = 0;
- // inicializar el arreglo
for (t=1;t<=30;t++) {
for (p=1;p<=5;p++) {
notasest[t-1][p-1] = 0;
}
}
- // Seleccionar acción en en menú
do {
cout << "Ingrese Opción (1-3)" << endl;
cout << "*************************" << endl;
cout << "1.- Ingrese notas" << endl;
cout << "2.- Mostrar resultados " << endl;
cout << "3.- Salir" << endl;
do {
cin >> respuesta;
} while (!(respuesta!=1 || respuesta!=2 || respuesta!=3));
switch (respuesta) {
case 1:
registronotas(notasest,k);
break;
case 2:
mostrarresultados(notasest,k);
break;
}
} while (respuesta!=3);
return 0;
}
void registronotas(float notasest[30][5], int &k) {
- // definir variables de la función
int a;
float cantasig;
string continuar;
int p;
int t;
- // Ingresar registro de notas
cout << "**** Registro de notas ****" << endl;
cout << "*************************" << endl;
do {
k = k+1;
cout << "Estudiante " << k << " : " << endl;
cout << "Cantidad de asignaturas (2-5): " << endl;
do {
cin >> cantasig;
} while (!((cantasig>=2 && cantasig<=5)));
for (a=1;a<=cantasig;a++) {
cout << " Nota " << a << " : ";
do {
cin >> notasest[k-1][a-1];
} while (!(notasest[k-1][a-1]>0 && notasest[k-1][a-1]<=10));
}
cout << "Continuar con otro alumno?: (s/n)" << endl;
do {
cin >> continuar;
continuar = minusculas(continuar);
} while (!((continuar=="s" || continuar=="n")));
cout << " " << endl;
} while (continuar=="s" && k<=30);
}
void mostrarresultados(float notasest[30][5], int &k) {
- // definir variables de la función
int a;
int cantasig;
float promedio;
int x;
promedio = 0;
cantasig = 0;
- // Mostrar datos
cout << "***notas de los estudiantes***" << endl;
for (x=1;x<=k;x++) {
cout << "Alumno Asig 1 Asig 2 Asig 3 Asig 4 Asig 5 promedio" << endl;
cout << x << " ";
for (a=1;a<=5;a++) {
if (notasest[x-1][a-1]!=0) {
cout << notasest[x-1][a-1];
cantasig = cantasig+1;
promedio = promedio+notasest[x-1][a-1];
} else {
cout << "No";
}
cout << " ";
}
promedio = promedio/cantasig;
cout << promedio << endl;
}
}
string minusculas(string s) {
for(unsigned int i=0;i<s.size();i++)
s[i] = tolower(s[i]);
return s;
}
Para saber más acerca de programa en C++ para el cálculo de promedio de notas consulte: https://brainly.lat/tarea/40310561
#SPJ1