#include <stdio.h>
#include <stdlib.h>
struct endereco
{
char rua[100];
int numero;
};
struct funcionario
{
char nome[100];
struct endereco end;
};
struct funcionario cadastra_func()
{
struct funcionario f;
//limpa o buffer do teclado
scanf("%*[^\n]"); scanf("%*c");
printf("Digite a rua: ");
scanf("%100[^\n]",f.end.rua);
printf("Digite o numero: ");
scanf("%i",&f.end.numero);
printf("Digite o nome: ");
//limpa o buffer do teclado
scanf("%*[^\n]"); scanf("%*c");
scanf("%100[^\n]",f.nome);
return f;
}
void mostra_func(struct funcionario f[], int n)
{
int i;
for(i=0;i<n;i++)
{
printf("\n\nFuncionario n. %i: ",i+1);
printf("\nNome: %s",f[i].nome);
printf("\nRua: %s nro. %i",f[i].end.rua,f[i].end.numero);
}
getch();
}
int main()
{
struct funcionario funcionarios[100],func;
int sair = 1,nro_func = 0;
while(sair)
{
system("cls");
printf("***: Menu :***");
printf("\n1-Cadastro");
printf("\n2-Listagem");
printf("\n3-Sair\n\n");
switch(getch())
{
case '1':
func = cadastra_func();
funcionarios[nro_func]=func;
nro_func++;
break;
case '2':
mostra_func(funcionarios, nro_func);
break;
case '3':
sair=0;
break;
default :
printf("Escolha uma opcao correta!");
getchar();
}
}
return 0;
}