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