
Ayuda (Datos incorrectos)
Publicado por Juan (9 intervenciones) el 12/12/2022 05:37:28
Alguien me podria ayudar a corregir este programa, ya que no guarda más de 1 alumno y tampoco da el promedio correcto de las notas.
#include <iostream>
using namespace std;
struct Estudiante
{
char nombre[30];
char apellido[30];
int notas[3];
float promedio;
};
void menu();
void registrar(Estudiante v[], int &id);
void nota(Estudiante v[], int &id);
void consultar(Estudiante v[], int &id);
void listar(Estudiante v[], int &id);
int main()
{
Estudiante e[100];
int count = 0;
char opcion;
do {
menu();
cin >> opcion;
cout << endl;
switch (opcion)
{
case '1':
registrar(e, count);
break;
case '2':
nota(e, count);
break;
case '3':
consultar(e, count);
break;
case '4':
listar(e, count);
break;
case '5':
cout << "FIN DEL PROGRAMA" << endl;
break;
default:
cout << "OPCION NO VALIDA" << endl;
break;
}
} while (opcion != '5');
return 0;
}
void menu()
{
cout << endl;
cout << " MENU PRINCIPAL" << endl;
cout << "=========================" << endl;
cout << "1.- Registrar Estudiante" << endl;
cout << "2.- Registrar Nota" << endl;
cout << "3.- Consultar Estudiante" << endl;
cout << "4.- Listar Estudiantes" << endl;
cout << "5.- Salir" << endl;
cout << "=========================" << endl;
cout << "OPCION: ";
}
void registrar(Estudiante v[], int &id)
{
cout << endl;
cout << "Registro de Estudiantes" << endl << endl;
cout << "Estudiante No " << id + 1 << endl << endl;
cout << "Nombre: "; cin >> v[id].nombre;
cout << "Apellido: "; cin >> v[id].apellido;
cout << endl;
cin.ignore(80, '\n');
id++;
}
void nota(Estudiante v[], int &id)
{
int numero, nota;
cout << endl;
cout << "Registro de Notas: " << endl << endl;
cout << "Numero de Estudiante: "; cin >> numero;
if (numero > id)
{
cout << "El Estudiante " << numero << " NO Existe" << endl;
cout << "Numero Maximo de Estudiante " << id << endl;
}
else
{
cout << "Nombre: " << v[numero - 1].nombre << endl;
cout << "Apellido: " << v[numero - 1].apellido << endl << endl;
cout << "Nota a Introducir (1 - 3): "; cin >> nota;
cout << "Nota: "; cin >> v[numero - 1].notas[nota - 1];
}
}
void consultar(Estudiante v[], int &id)
{
int numero;
cout << endl;
cout << "Consultar Estudiante: " << endl << endl;
cout << "Numero de Estudiante: "; cin >> numero;
if (numero > id)
{
cout << "El Estudiante " << numero << " NO Existe" << endl;
cout << "Numero Maximo de Estudiante " << id << endl;
}
else
{
cout << "Nombre: " << v[numero - 1].nombre << endl;
cout << "Apellido: " << v[numero - 1].apellido << endl << endl;
cout << "Nota 1: " << v[numero - 1].notas[0] << endl;
cout << "Nota 2: " << v[numero - 1].notas[1] << endl;
cout << "Nota 3: " << v[numero - 1].notas[2] << endl << endl;
v[numero - 1].promedio = (v[numero - 1].notas[0] + v[numero - 1].notas[1] + v[numero - 1].notas[2]) / 3.0f;
cout << "Promedio Notas: " << v[numero - 1].promedio << endl;
}
}
void listar(Estudiante v[], int &id)
{
cout << endl;
cout << "Listado de Estudiantes: " << endl << endl;
cout << "Nombre Apellido Promedio" << endl << endl;
for (int i = 0; i < id; i++)
{
cout << v[i].nombre << " " << v[i].apellido << " "<< v[i].promedio << endl;
}
cout << endl;
}
#include <iostream>
using namespace std;
struct Estudiante
{
char nombre[30];
char apellido[30];
int notas[3];
float promedio;
};
void menu();
void registrar(Estudiante v[], int &id);
void nota(Estudiante v[], int &id);
void consultar(Estudiante v[], int &id);
void listar(Estudiante v[], int &id);
int main()
{
Estudiante e[100];
int count = 0;
char opcion;
do {
menu();
cin >> opcion;
cout << endl;
switch (opcion)
{
case '1':
registrar(e, count);
break;
case '2':
nota(e, count);
break;
case '3':
consultar(e, count);
break;
case '4':
listar(e, count);
break;
case '5':
cout << "FIN DEL PROGRAMA" << endl;
break;
default:
cout << "OPCION NO VALIDA" << endl;
break;
}
} while (opcion != '5');
return 0;
}
void menu()
{
cout << endl;
cout << " MENU PRINCIPAL" << endl;
cout << "=========================" << endl;
cout << "1.- Registrar Estudiante" << endl;
cout << "2.- Registrar Nota" << endl;
cout << "3.- Consultar Estudiante" << endl;
cout << "4.- Listar Estudiantes" << endl;
cout << "5.- Salir" << endl;
cout << "=========================" << endl;
cout << "OPCION: ";
}
void registrar(Estudiante v[], int &id)
{
cout << endl;
cout << "Registro de Estudiantes" << endl << endl;
cout << "Estudiante No " << id + 1 << endl << endl;
cout << "Nombre: "; cin >> v[id].nombre;
cout << "Apellido: "; cin >> v[id].apellido;
cout << endl;
cin.ignore(80, '\n');
id++;
}
void nota(Estudiante v[], int &id)
{
int numero, nota;
cout << endl;
cout << "Registro de Notas: " << endl << endl;
cout << "Numero de Estudiante: "; cin >> numero;
if (numero > id)
{
cout << "El Estudiante " << numero << " NO Existe" << endl;
cout << "Numero Maximo de Estudiante " << id << endl;
}
else
{
cout << "Nombre: " << v[numero - 1].nombre << endl;
cout << "Apellido: " << v[numero - 1].apellido << endl << endl;
cout << "Nota a Introducir (1 - 3): "; cin >> nota;
cout << "Nota: "; cin >> v[numero - 1].notas[nota - 1];
}
}
void consultar(Estudiante v[], int &id)
{
int numero;
cout << endl;
cout << "Consultar Estudiante: " << endl << endl;
cout << "Numero de Estudiante: "; cin >> numero;
if (numero > id)
{
cout << "El Estudiante " << numero << " NO Existe" << endl;
cout << "Numero Maximo de Estudiante " << id << endl;
}
else
{
cout << "Nombre: " << v[numero - 1].nombre << endl;
cout << "Apellido: " << v[numero - 1].apellido << endl << endl;
cout << "Nota 1: " << v[numero - 1].notas[0] << endl;
cout << "Nota 2: " << v[numero - 1].notas[1] << endl;
cout << "Nota 3: " << v[numero - 1].notas[2] << endl << endl;
v[numero - 1].promedio = (v[numero - 1].notas[0] + v[numero - 1].notas[1] + v[numero - 1].notas[2]) / 3.0f;
cout << "Promedio Notas: " << v[numero - 1].promedio << endl;
}
}
void listar(Estudiante v[], int &id)
{
cout << endl;
cout << "Listado de Estudiantes: " << endl << endl;
cout << "Nombre Apellido Promedio" << endl << endl;
for (int i = 0; i < id; i++)
{
cout << v[i].nombre << " " << v[i].apellido << " "<< v[i].promedio << endl;
}
cout << endl;
}
Valora esta pregunta


0