Realice un programa que maneja la información de 10 alumnos. Los datos a
manejar son nombre, nombre de la asignatura y 4 notas acumulativas. Calcular
y mostrar el promedio y la suma de las notas de un alumno en particular.
#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
const int tam=10;
const int tam_cad=50;
const int cant_unidades=4;
class datos
{
private:
char nombre[tam_cad];
char materia[tam_cad];
float notas[cant_unidades];
float prom;
public:
datos(){};
datos(char [], char [], float []);
void mostrar();
friend void leer(datos [], int &, char [], char [], float []);
friend void promedio(datos [], int &, int &);
friend int buscar(datos [], int &, char []);
};
int menu();
int main()
{
int cont=0, opc, indice;
char nom[tam_cad], asignatura[tam_cad];
float notas_acum[cant_unidades];
datos estudiante[tam];
do{
opc=menu();
switch(opc)
{
case 1:
{
leer(estudiante, cont, nom, asignatura, notas_acum);
system("cls");
break;
}
case 2:
{
cout<<"\n\n\t Indique nombre a buscar: ";
cin.getline(nom, tam_cad);
system("cls");
indice=buscar(estudiante, cont, nom);
promedio(estudiante, cont, indice);
estudiante[indice].mostrar();
cin.get();
system("cls");
break;
}
case 3:
{
exit(0);
break;
}
default:
{
cout<<"\n\t opcion invalida"<<endl;
cin.get();
system("cls");
break;
}
}
}while(opc!=3);
cin.get(); cin.get();
return 0;
}
int menu()
{
int opc;
cout<<"\n\n\t 1.- Leer alumnos"<<endl;
cout<<"\t 2.- Mostrar promedio"<<endl;
cout<<"\t 3.- Salir"<<endl;
cout<<"\t indique opcion: ";
cin>>opc;
cin.ignore();
system("cls");
return opc;
}
datos::datos(char nom[tam_cad], char asignatura[tam_cad], float notas_acum[cant_unidades])
{
strcpy(nombre, nom);
strcpy(materia, asignatura);
for(int i=0; i<cant_unidades; i++)
{
notas[i]=notas_acum[i];
}
}
void datos::mostrar()
{
cout<<"\n\n\t Nombre: "<<nombre<<endl;
cout<<"\t Materia: "<<materia<<endl;
cout<<"\t Promedio: "<<prom<<endl;
}
void leer(datos estudiante[tam], int &cont, char nom[tam_cad], char asignatura[tam_cad], float notas_acum[cant_unidades])
{
cout<<"\n\n\t Nombre: ";
cin.getline(nom, tam_cad);
cout<<"\t Materia: ";
cin.getline(asignatura, tam_cad);
for(int i=0; i<cant_unidades; i++)
{
cout<<"\t Nota "<<(i+1)<<" : ";
cin>>notas_acum[i];
}
datos temp(nom, asignatura, notas_acum);
estudiante[cont]=temp;
cont++;
}
void promedio(datos estudiante[tam], int &cont, int &indice)
{
float prom_notas=0;
for(int i=0; i<cant_unidades; i++)
{
prom_notas+=estudiante[indice].notas[i];
}
estudiante[indice].prom=(prom_notas/cant_unidades);
}
int buscar(datos estudiante[tam], int &cont, char nom[tam_cad])
{
int indice;
for(int i=0; i<cont; i++)
{
if(strcmp(estudiante[i].nombre, nom)==0)
{
indice=i;
break;
}
}
return indice;
}
Descargar Código
0 comentarios:
Publicar un comentario