#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//cria estrutura funcionario----------------------------------------------------
struct funcionario
{
char nome[50];
char endereco[100];
char nascimento[10];
char sexo[20];
char telefone[20];
char cargo[40];
};
typedef struct funcionario Fun;
//------------------------------------------------------------------------------
//Variaveis Globais-------------------------------------------------------------
Fun cadastro[1000]; //total de inclusoes possiveis
int conta = 0; //auxiliar para o numero de inclusoes
//------------------------------------------------------------------------------
//função menu - cria interface com o usuário------------------------------------
int menu()
{
int op;
printf("----------------------------\n");
printf("- Cadastro de Funcionarios -\n");
printf("----------------------------\n");
printf("- 1. Incluir -\n");
printf("- 2. Consultar -\n");
printf("- 3. Apagar -\n");
printf("- 4. Alterar -\n");
printf("- 5. Relatorio -\n");
printf("- 6. Sair -\n");
printf("----------------------------\n");
printf("Escolha uma opcao: ");
fflush(stdin);
scanf("%d",&op);
return op;
}
//------------------------------------------------------------------------------
//função incluir - cadastra informações dos funcionarios------------------------
void incluir()
{
system("cls");
printf("Nome: ");
fflush(stdin);
gets(cadastro[conta].nome);
printf("\n");
printf("Endereco: ");
fflush(stdin);
gets(cadastro[conta].endereco);
printf("\n");
printf("Data de Nascimento: ");
fflush(stdin);
gets(cadastro[conta].nascimento);
printf("\n");
printf("Sexo: ");
fflush(stdin);
gets(cadastro[conta].sexo);
printf("\n");
printf("Telefone: ");
fflush(stdin);
gets(cadastro[conta].telefone);
printf("\n");
printf("Cargo: ");
fflush(stdin);
gets(cadastro[conta].cargo);
printf("\n");
conta++;
return;
}
//------------------------------------------------------------------------------
//funcao consultar - procura um funcionario no cadastro-------------------------
void consultar()
{
int x;
char aux[50];
int achado = 0;
system("cls");
printf("Informe o nome do funcionario que deseja consultar: ");
fflush(stdin);
gets(aux);
system("cls");
for(x=0; x<conta; x++)
{
if(strstr(cadastro[x].nome,aux))
{
printf("Dados do Funcionario:\n\n");
printf("Nome: %s\n\n",cadastro[x].nome);
printf("Endereco: %s\n\n",cadastro[x].endereco);
printf("Data de nascimento: %s\n\n",cadastro[x].nascimento);
printf("Sexo: %s\n\n",cadastro[x].sexo);
printf("Telefone: %s\n\n",cadastro[x].telefone);
printf("Cargo: %s\n\n",cadastro[x].cargo);
achado = 1;
break;
}
}
if(!achado)
printf("Nome nao encontrado\n\n");
system("pause");
return;
}
//------------------------------------------------------------------------------
//funcao apagar - exlui um funcionario do cadastro------------------------------
void apagar()
{
int x;
char aux[50];
system("cls");
printf("Informe o nome do funcionario que deseja apagar: ");
fflush(stdin);
gets(aux);
system("cls");
for(x=0; x<conta; x++)
{
if(strstr(cadastro[x].nome, aux))
{
memset(cadastro[x].nome,0,sizeof(50));
memset(cadastro[x].endereco,0,sizeof(100));
memset(cadastro[x].nascimento,0,sizeof(10));
memset(cadastro[x].sexo,0,sizeof(20));
memset(cadastro[x].telefone,0,sizeof(20));
memset(cadastro[x].cargo,0,sizeof(40));
conta--;
printf("Exclusao realizada\n\n");
system("pause");
}
}
return;
}
//------------------------------------------------------------------------------
//funcao alterar - altera o cadastro de um funcionario--------------------------
void alterar()
{
int x,i;
char aux[50];
int achado = 0;
system("cls");
printf("Informe o nome do funcionario que deseja alterar o cadastro: ");
fflush(stdin);
gets(aux);
system("cls");
for(x=0; x<conta; x++)
{
if(strstr(cadastro[x].nome,aux))
{
//imprime os dados
system("cls");
printf("Dados do Funcionario:\n\n");
printf("Nome: %s\n\n",cadastro[x].nome);
printf("Endereco: %s\n\n",cadastro[x].endereco);
printf("Data de nascimento: %s\n\n",cadastro[x].nascimento);
printf("Sexo: %s\n\n",cadastro[x].sexo);
printf("Telefone: %s\n\n",cadastro[x].telefone);
printf("Cargo: %s\n\n",cadastro[x].cargo);
achado = 1;
system("pause");
//limpa os vetores
memset(cadastro[x].nome,0,sizeof(50));
memset(cadastro[x].endereco,0,sizeof(100));
memset(cadastro[x].nascimento,0,sizeof(10));
memset(cadastro[x].sexo,0,sizeof(20));
memset(cadastro[x].telefone,0,sizeof(20));
memset(cadastro[x].cargo,0,sizeof(40));
conta--;
//preenche os dados
system("cls");
printf("Nome: ");
fflush(stdin);
gets(cadastro[conta].nome);
printf("\n");
printf("Endereco: ");
fflush(stdin);
gets(cadastro[conta].endereco);
printf("\n");
printf("Data de Nascimento: ");
fflush(stdin);
gets(cadastro[conta].nascimento);
printf("\n");
printf("Sexo: ");
fflush(stdin);
gets(cadastro[conta].sexo);
printf("\n");
printf("Telefone: ");
fflush(stdin);
gets(cadastro[conta].telefone);
printf("\n");
printf("Cargo: ");
fflush(stdin);
gets(cadastro[conta].cargo);
printf("\n");
conta++;
printf("Alteracao realizada\n\n");
break;
}
}
if(!achado)
printf("Nome nao encontrado\n\n");
system("pause");
return;
}
//------------------------------------------------------------------------------
//funcao sair - finaliza o programa---------------------------------------------
void sair()
{
system("cls");
printf("Fim do programa\n\n");
system("pause");
return;
}
//------------------------------------------------------------------------------
//funcao principal--------------------------------------------------------------
int main(int argc, char *argv[])
{
int op;
do
{
system("cls");
op = menu(); //chama interface
switch(op)
{
case 1:
incluir();
break;
case 2:
consultar();
break;
case 3:
apagar();
break;
case 4:
alterar();
break;
case 5:
system("cls");
printf("Total de funcionarios cadastrados: %d\n\n",conta);
system("pause");
break;
case 6:
sair();
break;
default:
system("cls");
printf("Opcao invalida\n\n");
system("pause");
system("cls");
break;
}
}while(op != 6);
return 0;
}