Considerando os registros de 10 funcionários com os campos matrícula, nome e
salário, desenvolver um algoritmo que utilize subprogramas e apresente um
menu para a execução das seguintes etapas:
a) Cadastrar os registros;
b) Apresentar um relatório dos funcionários em ordem alfabética;
c) Apresentar um relatório onde conste a média dos salários dos
funcionários;
d) Mostrar os funcionários que recebem acima de um determinado valor
fornecido pelo usuário. Esse valor deve compreender o maior e o menor
salário registrado dos funcionários.
Resolução:
#include <stdio.h>
#include <stdlib.h>
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
struct ficha
{
int matricula;
string nome;
float salario;
};
const int tam=3;
ficha empresa[tam];//variavel global
void cadastro()
{
cout<<"Digitar o registro de funcionários \n";
for (int i=0;i<tam;i++){
cout<<"\nMatricula "; cin>>empresa[i].matricula;
cout<<"\nNome "; cin>>empresa[i].nome;
cout<<"\nSalario "; cin>>empresa[i].salario;
}
}
void ordena()
{
ficha aux;
for(int i=0; i<tam-1;i++)
for(int j=(i+1);j<tam;j++)
{
if(empresa[i].nome>empresa[j].nome)
{
aux=empresa[i];
empresa[i]=empresa[j];
empresa[j]=aux;
}
}
}
void ordenasalario()
{
ficha aux;
for(int i=0; i<tam-1;i++)
for(int j=(i+1);j<tam;j++)
{
if(empresa[i].salario>empresa[j].salario)
{
aux=empresa[i];
empresa[i]=empresa[j];
empresa[j]=aux;
}
}
}
void listar1()
{
ordena();
for(int i=0;i<tam;i++)
{
cout<<"\nMatricula "<<empresa[i].matricula;
cout<<"\nNome "<<empresa[i].nome;
cout<<"\nSalario "<<empresa[i].salario;
cout<<"\n";
}
}
float mediasalarios()
{
float soma=0;
for(int i=0;i<tam;i++){
soma=soma+empresa[i].salario;
}
return(soma/tam);
}
void listarsalario()
{
float salario;
ordenasalario();
float maiorsalario=empresa[tam-1].salario;
float menorsalario=empresa[0].salario;
cout<<"Qual é o salário base para listagem?";
cin>>salario;
if(salario>=menorsalario && salario<=maiorsalario)
{
for(int i=0;i<tam;i++){
if (empresa[i].salario>salario){
cout<<"\nMatricula "<<empresa[i].matricula;
cout<<"\nNome "<<empresa[i].nome;
cout<<"\nSalario "<<empresa[i].salario;
cout<<"\n";
}
}
}
else
cout<<"O salário fornecido não compreende o maior e o menor salário pago";
}
void buscar(){
string pesq;
printf("\n\nDigite o nome a ser pesquisado: ");
cin>>pesq;
for(int i=0; i<tam; i++){
if(pesq == empresa[i].nome){
cout<<"\nAhcei : ";
cout<<"\nNome: "<<empresa[i].nome;
cout<<"\nMatricula: "<<empresa[i].matricula;
cout<<"\nSalario: "<<empresa[i].salario;
}
}
}
void menu()
{
int op=1;
while (op!=5){
cout<<"\nSelecione a opcao ";
cout<<"\n 1.Cadastrar funcionarios ";
cout<<"\n 2.Listar funcionarios em ordem alfabetica ";
cout<<"\n 3.Listar media dos salarios ";
cout<<"\n 4.Listar funcionario por base no salario especifico";
cout<<"\n 5.Buscar ";
cout<<"\n 6. SAIR \n\n";
cin>>op;
switch(op)
{
case 1: cadastro();
break;
case 2: listar1();
break;
case 3: cout<<"A média dos salários é R$ "<<mediasalarios();
break;
case 4:listarsalario();
break;
case 5: buscar();
break;
case 6: cout<<"Obrigado\n\n";
break;
}
}
}
int main(int argc, char** argv) {
menu();
return 0;
}
#include <stdlib.h>
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
struct ficha
{
int matricula;
string nome;
float salario;
};
const int tam=3;
ficha empresa[tam];//variavel global
void cadastro()
{
cout<<"Digitar o registro de funcionários \n";
for (int i=0;i<tam;i++){
cout<<"\nMatricula "; cin>>empresa[i].matricula;
cout<<"\nNome "; cin>>empresa[i].nome;
cout<<"\nSalario "; cin>>empresa[i].salario;
}
}
void ordena()
{
ficha aux;
for(int i=0; i<tam-1;i++)
for(int j=(i+1);j<tam;j++)
{
if(empresa[i].nome>empresa[j].nome)
{
aux=empresa[i];
empresa[i]=empresa[j];
empresa[j]=aux;
}
}
}
void ordenasalario()
{
ficha aux;
for(int i=0; i<tam-1;i++)
for(int j=(i+1);j<tam;j++)
{
if(empresa[i].salario>empresa[j].salario)
{
aux=empresa[i];
empresa[i]=empresa[j];
empresa[j]=aux;
}
}
}
void listar1()
{
ordena();
for(int i=0;i<tam;i++)
{
cout<<"\nMatricula "<<empresa[i].matricula;
cout<<"\nNome "<<empresa[i].nome;
cout<<"\nSalario "<<empresa[i].salario;
cout<<"\n";
}
}
float mediasalarios()
{
float soma=0;
for(int i=0;i<tam;i++){
soma=soma+empresa[i].salario;
}
return(soma/tam);
}
void listarsalario()
{
float salario;
ordenasalario();
float maiorsalario=empresa[tam-1].salario;
float menorsalario=empresa[0].salario;
cout<<"Qual é o salário base para listagem?";
cin>>salario;
if(salario>=menorsalario && salario<=maiorsalario)
{
for(int i=0;i<tam;i++){
if (empresa[i].salario>salario){
cout<<"\nMatricula "<<empresa[i].matricula;
cout<<"\nNome "<<empresa[i].nome;
cout<<"\nSalario "<<empresa[i].salario;
cout<<"\n";
}
}
}
else
cout<<"O salário fornecido não compreende o maior e o menor salário pago";
}
void buscar(){
string pesq;
printf("\n\nDigite o nome a ser pesquisado: ");
cin>>pesq;
for(int i=0; i<tam; i++){
if(pesq == empresa[i].nome){
cout<<"\nAhcei : ";
cout<<"\nNome: "<<empresa[i].nome;
cout<<"\nMatricula: "<<empresa[i].matricula;
cout<<"\nSalario: "<<empresa[i].salario;
}
}
}
void menu()
{
int op=1;
while (op!=5){
cout<<"\nSelecione a opcao ";
cout<<"\n 1.Cadastrar funcionarios ";
cout<<"\n 2.Listar funcionarios em ordem alfabetica ";
cout<<"\n 3.Listar media dos salarios ";
cout<<"\n 4.Listar funcionario por base no salario especifico";
cout<<"\n 5.Buscar ";
cout<<"\n 6. SAIR \n\n";
cin>>op;
switch(op)
{
case 1: cadastro();
break;
case 2: listar1();
break;
case 3: cout<<"A média dos salários é R$ "<<mediasalarios();
break;
case 4:listarsalario();
break;
case 5: buscar();
break;
case 6: cout<<"Obrigado\n\n";
break;
}
}
}
int main(int argc, char** argv) {
menu();
return 0;
}