El departamento de personal de la UDO tiene registros del nombre, sexo,
sueldo y edad de cada uno de los profesores adscritos a la Universidad. Escriba
un programa que calcule e imprima los siguientes datos:
- Nombre del profesor más joven del grupo
- Nombre del profesor con mayor sueldo.
- Edad promedio del grupo de profesores.
- Número de profesores con edad mayor al promedio.
- Lista de todos los profesores de sexo masculino.
- Lista de todos los profesores.
#include<iostream> #include<cstdlib> #include<cstring> using namespace std; const int tam=50; const int tam_cad=50; const int tam_sex=10; const int tam_tlf=12; class profesor { private: char nombre[tam_cad]; char sexo[tam_sex]; float sueldo; int edad; public: void mostrar(); profesor(){}; profesor(char [], char [], float &, int &); friend void leer(profesor [], int &, char [], char [], float &, int &); friend int profesor_joven(profesor [], int &); friend int profesor_mejor_sueldo(profesor [], int &); friend int prom_edad(profesor [], int &); friend void mostrar_prof_edad_mayor_prom(profesor [], int &); friend void mostrar_prof_sex_masculino(profesor [], int &); }; int menu(); int main() { int opc, edad_p, cont=0, indice; char nom[tam_cad], sex[tam_sex]; float salario; profesor datos[tam]; do{ opc=menu(); switch(opc) { case 1: { leer(datos, cont, nom, sex, salario, edad_p); system("cls"); break; } case 2: { indice=profesor_joven(datos, cont); cout<<"\n\n\t El profesor mas joven es: "<<endl; datos[indice].mostrar(); cin.get(); system("cls"); break; } case 3: { indice=profesor_mejor_sueldo(datos, cont); cout<<"\n\n\t El profesor con mejor sueldo es: "<<endl; datos[indice].mostrar(); cin.get(); system("cls"); break; } case 4: { cout<<"\n\n\t La edad promedio es: "<<prom_edad(datos, cont)<<endl; cin.get(); system("cls"); break; } case 5: { cout<<"\n\n\t Profesores con edad mayor al promedio: "<<endl; mostrar_prof_edad_mayor_prom(datos, cont); cin.get(); system("cls"); break; } case 6: { cout<<"\n\n\t Profesores con sexo masculino: "<<endl; mostrar_prof_sex_masculino(datos, cont); cin.get(); system("cls"); break; } case 7: { cout<<"\n\n\t Profesores: "<<endl; for(int i=0; i<cont; i++) { datos[i].mostrar(); } cin.get(); system("cls"); break; } case 8: { exit(0); break; } default: { cout<<"\n\t opcion invalida"<<endl; cin.get(); system("cls"); break; } } }while(opc!=8); cin.get(); cin.get(); return 0; } profesor::profesor(char nom[tam_cad], char sex[tam_sex], float &salario, int &edad_p) { strcpy(nombre, nom); strcpy(sexo, sex); sueldo=salario; edad=edad_p; } void profesor::mostrar() { cout<<"\n\n\t Nombre: "<<nombre<<endl; cout<<"\t Sexo: "<<sexo<<endl;; cout<<"\t Sueldo: "<<sueldo<<endl; cout<<"\t Edad: "<<edad<<endl; } int menu() { int opc; cout<<"\n\n\t 1.- Leer profesores"<<endl; cout<<"\t 2.- Profesor mas joven del grupo"<<endl; cout<<"\t 3.- Profesor con mejor sueldo"<<endl; cout<<"\t 4.- Edad promedio"<<endl; cout<<"\t 5.- Profesores con edad mayor al promedio"<<endl; cout<<"\t 6.- Listar profesores con sexo masculino"<<endl; cout<<"\t 7.- Listar todos los profesores"<<endl; cout<<"\t 8.- Salir"<<endl; cout<<"\t indique opcion: "; cin>>opc; cin.ignore(); system("cls"); return opc; } void leer(profesor datos[tam], int &cont, char nom[tam_cad], char sex[tam_sex], float &salario, int &edad_p) { cout<<"\n\n\t Nombre: "; cin.getline(nom, tam_cad); cout<<"\t Sexo: "; cin.getline(sex, tam_sex); cout<<"\t Sueldo: "; cin>>salario; cout<<"\t Edad: "; cin>>edad_p; profesor temp(nom, sex, salario, edad_p); datos[cont]=temp; cont++; } int profesor_joven(profesor datos[tam], int &cont) { int indice, i=0, edad=0; for(i=0; i<cont; i++) { if(datos[i].edad>edad) { edad=datos[i].edad; } } for(i=0; i<cont; i++) { if(datos[i].edad<=edad) { edad=datos[i].edad; indice=i; } } return indice; } int profesor_mejor_sueldo(profesor datos[tam], int &cont) { int indice, i=0; float salario=0; for(i=0; i<cont; i++) { if(datos[i].sueldo>salario) { salario=datos[i].sueldo; indice=i; } } return indice; } int prom_edad(profesor datos[tam], int &cont) { int sum=0, edad_prom; for(int i=0; i<cont; i++) { sum+=datos[i].edad; } edad_prom=sum/cont; return edad_prom; } void mostrar_prof_edad_mayor_prom(profesor datos[tam], int &cont) { int edad_prom, i=0; edad_prom=prom_edad(datos, cont); for(i=0; i<cont; i++) { if(datos[i].edad>edad_prom) { datos[i].mostrar(); } } } void mostrar_prof_sex_masculino(profesor datos[tam], int &cont) { int i; for(i=0; i<cont; i++) { if(strcmp(datos[i].sexo,"masculino")==0) { datos[i].mostrar(); } } }
Descargar Código
0 comentarios:
Publicar un comentario