Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "estrutura.h"
- #define SIM "Sim"
- #define NAO "Nao"
- registro_funcionario *ptr_funcionario;
- realoca_mem(){
- ptr_funcionario = realloc(ptr_funcionario, sizeof(registro_funcionario)*(quantidade+1));
- if (!ptr_funcionario) {
- printf("Erro na alocacao de memoria!\n");
- return -2;
- }
- }
- entrada_dados(){
- int quantidade=0, i, total_menores=0;
- float soma_salarios=0;
- char aux_menor[4];
- const int ano_corrente=2019;
- ptr_funcionario = malloc(sizeof(registro_funcionario));
- if (!ptr_funcionario) {
- printf("Erro na alocacao de memoria!\n");
- return -1;
- }
- do {
- printf("\nCPF: ");
- scanf("%s", ptr_funcionario[quantidade].cpf);
- if (strcmp(ptr_funcionario[quantidade].cpf, "0") != 0) {
- // le demais dados
- printf("Nome: ");
- scanf(" %[^\n]s", ptr_funcionario[quantidade].nome);
- //gets(ptr_funcionario[quantidade].nome);
- //fflush(stdin);
- printf("Nascimento: ");
- scanf("%i/%i/%i", &ptr_funcionario[quantidade].data_nascimento.dia, &ptr_funcionario[quantidade].data_nascimento.mes, &ptr_funcionario[quantidade].data_nascimento.ano);
- printf("Salario: ");
- scanf("%f", &ptr_funcionario[quantidade].salario);
- // aumenta area de de memoria
- quantidade++;
- ptr_funcionario = realloc(ptr_funcionario, sizeof(registro_funcionario)*(quantidade+1));
- if (!ptr_funcionario) {
- printf("Erro na alocacao de memoria!\n");
- return -2;
- }
- }
- }while (strcmp(ptr_funcionario[quantidade].cpf, "0") != 0);
- }
- media(){
- }
- saida_dados(){
- printf("\nListagem...\n");
- printf("CPF | Nome | Nascimento | Menor | Salario\n");
- for (*i=0; i<*quantidade; *i++) {
- // verifica se eh menor ou nao
- if ((ano_corrente - ptr_funcionario[i].data_nascimento.ano) >= 18) {
- strcpy(aux_menor, NAO);
- } else {
- strcpy(aux_menor, SIM);
- total_menores++;
- }
- // imprime dados
- printf("%-15s | %-20s | %02i/%02i/%02i | %s | %10.2f\n", ptr_funcionario[i].cpf, ptr_funcionario[i].nome, ptr_funcionario[i].data_nascimento.dia, ptr_funcionario[i].data_nascimento.mes, ptr_funcionario[i].data_nascimento.ano, aux_menor, ptr_funcionario[i].salario);
- // soma das medias
- soma_salarios+=ptr_funcionario[i].salario;
- }
- // media turma
- printf("\nNumero de menores : %i\n", total_menores);
- printf("Media salarial : %0.2f\n", (soma_salarios/quantidade));
- }
- main(){
- printf("\nInforme os dados solicitados dos funcionarios (digite 0 no CPF para sair)...\n");
- do {
- realoca_mem();
- entrada_dados();
- }while (strcmp(ptr_funcionario[quantidade].cpf, "0") != 0);
- saida_dados();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement