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