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");
}

Related entries: