Ir ao conteúdo
  • Cadastre-se

Programaçao em C com Struct e funçoes


Posts recomendados

Boa Noite, estou começando agora estruturas e estou com Dúvidas com struct, na hora de imprimir todos os registros da um erro já tentei refazer mas nao encontro o erro 


#include <stdio.h>
#include <stdlib.h>

// Lista de Structs ======
struct rgData
{
    int dia, mes, ano;
};

struct rgFuncionario
{
    char nome[35];
    char cargo[15];
    char cpf[12];
    int matr;
    struct rgData dtNasc;
    float sal;
};

struct rgCadFun
{
    struct rgFuncionario vCadFun[50];
    int controle;
};


// Lista de Protótipos de Funções
void menu();
void cadastrar(struct rgCadFun *pCadastro);
void Imprimir_1(struct rgCadFun Cadastro);


int main()
{
    menu();
}


void menu()
{

    struct rgCadFun Cadastro;
    Cadastro.controle = 0;

    int op;

    do
    {

        // impressão em tela da lista de opções
        printf("\n\n ----------------------------------");
        printf("\n Escolha uma das opções abaixo:  ");
        printf("\n 1 - Cadastrar Funcionario");
        printf("\n 2 - Imprimir por Matricula");
        printf("\n 3 - Imprimir todos os Registros");
        printf("\n 4 - Validar CPF");
        printf("\n 0 - SAIR \n\n >>  ");
        scanf("%d", &op);

        switch(op)  // tratamento da opção realizada pelo usuário
        {
        case 1:
            cadastrar(&Cadastro);
            system("pause");
            system("cls");
            break;
        case 2:
            Imprimir_1(Cadastro);
            // exercicio2_v2();
            system("pause");
            system("cls");
            break;
        case 0:
            break;
        case 3:
            Imprimir_todos(Cadastro);
            //exercicio3_v1();
            //exercicio3_v2();
            system("pause");
            system("cls");
            break;
        case 4:
            //exercicio4();
            system("pause");
            system("cls");
            break;

        default:
            printf("\n >>>> Digite um valor valido!!! <<<< \n\n");
            system("pause");
            system("cls");
            break;
        }
    }
    while( op != 0 );
}

void cadastrar(struct rgCadFun *pCadastro)
{

    pCadastro->controle = pCadastro->controle + 1;

    pCadastro->vCadFun[pCadastro->controle-1].matr = pCadastro->controle;
    printf("\n\n MATRICULA = %d", pCadastro->vCadFun[pCadastro->controle-1].matr);


    printf("\n Digite um nome completo: \n");
    fflush(stdin);
    gets(pCadastro->vCadFun[pCadastro->controle-1].nome);
    //scanf("%[^\n]s", pCadastro->vCadFun[pCadastro->controle-1].nome);
    //fgets(pCadastro->vCadFun[pCadastro->controle-1].nome, 35, stdin);

    printf("\n\n Digite o Cargo: \n");
    fflush(stdin);
    gets(pCadastro->vCadFun[pCadastro->controle-1].cargo);


    printf("\n Digite o dia de nascimento: \n");
    scanf("%d", &pCadastro->vCadFun[pCadastro->controle - 1].dtNasc.dia);

    printf("\n Digite o mes de nascimento: \n");
    scanf("%d", &pCadastro->vCadFun[pCadastro->controle - 1].dtNasc.mes);

    printf("\n Digite o ano de nascimento: \n");
    scanf("%d", &pCadastro->vCadFun[pCadastro->controle - 1].dtNasc.ano);

    printf("\n Digite o Salario: \n");
    scanf("%f", &pCadastro->vCadFun[pCadastro->controle - 1].sal);

    printf("\n Digite o CPF: \n");
    fflush(stdin);
    gets(pCadastro->vCadFun[pCadastro->controle-1].cpf);


}


void Imprimir_1(struct rgCadFun Cadastro)
{
    int matric;

    printf("\nDigite o numero da matricula: \n");
    scanf("%d", &matric);


    printf("\nNome:  %s", Cadastro.vCadFun[matric - 1].nome);
    printf("\n Data de Nascimento: %d / %d / %d", Cadastro.vCadFun[matric - 1].dtNasc.dia, Cadastro.vCadFun[matric - 1].dtNasc.mes, Cadastro.vCadFun[matric - 1].dtNasc.ano);
    printf("\nCargo: %s", Cadastro.vCadFun[matric-1].cargo);
    printf("\nCPF:   %s", Cadastro.vCadFun[matric-1].cpf);
}

void Imprimir_todos(struct rgCadFun Cadastro)
{
    int matric, i;

    for(i=0; i < Cadastro.controle; i++)
    {
        printf("Numero da matricula: %d\n", i+1);
        printf("Nome: %s\n", controle.nome );
        printf("Data de Nascimento: %d / %d / %d \n ", controle.dtNasc.dia, controle.dtNasc.mes, controle.dtNasc.ano);
        printf("Cargo: %s\n", controle.cargo);
        printf("CPF: %s\n", controle.cpf);


    }
}
 

Link para o comentário
Compartilhar em outros sites

     Boa dia

void Imprimir_todos(struct rgCadFun Cadastro)
{
    int matric, i;
    for(i=0; i < Cadastro.controle; i++)
    {
        printf("Numero da matricula: %d\n", i+1);
        printf("Nome: %s\n", Cadastro.vCadFun[i].nome );
        printf("Data de Nascimento: %d / %d / %d \n ", 
               Cadastro.vCadFun[i].dtNasc.dia, 
               Cadastro.vCadFun[i].dtNasc.mes, 
               Cadastro.vCadFun[i].dtNasc.ano);
        printf("Cargo: %s\n", Cadastro.vCadFun[i].cargo);
        printf("CPF: %s\n", Cadastro.vCadFun[i].cpf);

    }

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!