Sistema de Cadastro de Funcionários em C++ com Listas Encadeadas
Classified in Arts and Humanities
Written on in
English with a size of 4.9 KB
Sistema de Cadastro de Funcionários em C++
Bibliotecas
#include <iomanip.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
Início
Definição do registro:
struct registro {
int matricula;
char nome[200];
float salario;
struct registro *prox;
} *prim, *aux, *ult;
Assinaturas das Funções
void cadastro(int matricula, char nome[200], float salario);
int numerodefuncionario(int cont);
float mediadesalario(float media);
float maiorsalario(float maior);
Cadastro
void cadastro(int matricula, char nome[200], float salario) {
aux = (struct registro *) malloc(sizeof(struct registro));
if (!prim) {
prim = aux;
} else {
ult->prox = aux;
}
ult = aux;
ult->matricula = matricula;
strcpy(ult->nome, nome);
ult->salario = salario;
ult->prox = NULL;
cout << "Cadastro feito com sucesso! \n" << "\n" << "\n";
}
Quantidade de Funcionários
int numerodefuncionario(int cont) {
aux = prim;
while (aux) {
cont++;
aux = aux->prox;
}
return cont;
}
Média dos Salários
float mediadesalario(float media) {
int cont = 0;
float soma = 0, salario;
aux = prim;
while (aux) {
soma = soma + aux->salario;
cont++;
aux = aux->prox;
}
media = soma / cont;
return media;
}
Funcionário com Maior Salário
float maiorsalario(float maior) {
int primeiro = 1;
char NomeFunc[200];
aux = prim;
while (aux) {
if (primeiro) {
maior = aux->salario;
strcpy(NomeFunc, aux->nome);
primeiro = 0;
} else if (aux->salario > maior) {
maior = aux->salario;
strcpy(NomeFunc, aux->nome);
}
aux = aux->prox;
}
cout << "Funcionario de maior salario: " << NomeFunc << "\n" << "\n";
}
Menu Principal
main() {
char nome[200];
int matricula, op = 0;
float salario;
while (op != 6) {
cout << "1- Cadastro \n";
cout << "2- Todos os funcionarios \n";
cout << "3- Quantidade de funcionarios \n";
cout << "4- Media dos salarios \n";
cout << "5- Funcionario com maior salario \n";
cout << "6- Sair \n";
cin >> op;
fflush(stdin);
float soma = 0;
if (op == 1) {
cout << "Digite a matricula: \n";
cin >> matricula;
fflush(stdin);
cout << "Digite o nome: \n";
gets(nome);
fflush(stdin);
cout << "Digite o salario: \n";
cin >> salario;
fflush(stdin);
cadastro(matricula, nome, salario);
}
Listar Funcionários
else if (op == 2) {
aux = prim;
while (aux) {
cout << "Matricula: " << aux->matricula << " Nome: " << aux->nome << " Salario: " << aux->salario << "\n";
aux = aux->prox;
}
}
Quantidade de Funcionários (Menu)
else if (op == 3) {
int cont = 0;
cout << "Existem: " << numerodefuncionario(cont) << " funcionario(s). \n" << "\n";
}
Média dos Salários (Menu)
else if (op == 4) {
float media;
cout << "A media dos funcionarios e: " << mediadesalario(media) << "\n" << "\n";
}
Maior Salário (Menu)
else if (op == 5) {
float maior;
maiorsalario(maior);
}
}
Encerramento
cout << "Obrigado pela preferencia! \n";
system("pause");
}