Dev - C++ - Ayuda (Datos incorrectos)

 
Vista:
sin imagen de perfil

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;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda (Datos incorrectos)

Publicado por dario (718 intervenciones) el 13/12/2022 03:11:33
Donde te aparece el error.
Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar