#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
struct nascimento
{
char dia[5],
mes[5],
ano[10];
};
struct endereco
{
char pais[20],
estado[25],
cidade[25],
bairro[25],
rua[25],
numero[10],
cep[20],
complemento[25];
};
struct cadastro
{
///DADOS PESSOAIS:
char nome[50],
email[50],
ddd[5],
numero_tel[20];
struct endereco local;
struct nascimento aniversario;
};
int main()
{
setlocale(LC_ALL, "");
///Variáveis:
struct cadastro funcionario[100];
char comparar1[50],
comparar2[50];
int confirmacao = 0;
int cont = 0,
cont2 = 0,
escolha = 1;
do{
printf("-------------------------\n"
"CADASTRO DE FUNCIONÁRIO:\n"
"-------------------------\n"
"(1) FAZER UM NOVO CADASTRO\n"
"(2) BUSCA POR NOME\n"
"(3) BUSCAR POR MÊS\n"
"(4) BUSCAR POR DIA E MÊS\n"
"(6) SAIR DO PROGRAMA\n"
"ESCOLHA UMA OPÇÃO: ");
scanf("%d", &escolha);
fflush(stdin);
system("cls");
switch(escolha)
{
case 1: ///CASO 1: CADASTRO DE FUNCIONÁRIOS;
{
for(cont; cont<=100;){
printf("INFORME NOME DO FUNCIONÁRIO: ");
gets(funcionario[cont].nome);
fflush(stdin);
printf("INFORME E-MAIL DE FUNCIONÁRIO: ");
gets(funcionario[cont].email);
printf("INFORME SEU DDD: ");
gets(funcionario[cont].ddd);
printf("INFORME SEU NUMERO DE TELEFONE: ");
gets(funcionario[cont].numero_tel);
printf("INFORME PAIS: ");
gets(funcionario[cont].local.pais);
printf("INFORME ESTADO: ");
gets(funcionario[cont].local.estado);
printf("INFORME CIDADE: ");
gets(funcionario[cont].local.cidade);
printf("INFORME BAIRRO: ");
gets(funcionario[cont].local.bairro);
printf("INFORME RUA: ");
gets(funcionario[cont].local.rua);
printf("INFORME N°: ");
gets(funcionario[cont].local.numero);
printf("INFORME CEP: ");
gets(funcionario[cont].local.cep);
printf("INFORME DATA DE NASCIMENTO\n");
printf("DIA: ");
gets(funcionario[cont].aniversario.dia);
printf("MES: ");
gets(funcionario[cont].aniversario.mes);
printf("ANO: ");
gets(funcionario[cont].aniversario.ano);
cont++;
break;
}
system("cls");
printf("\tFUNCIONÁRIO: %s\n"
"\tCADASTRADO COM SUCESSO\n"
"\tTECLE ENTER PARA VOLTAR AO MENU", funcionario[cont-1].nome);
getchar();
system("cls");
break; ///TÉRMINO DO CASO 1(CADASTRO DE FUNCIONÁRIO);
}
case 2: ///CASO 2: BUSCAR CADASTRO POR NOME;
{
fflush(stdin);
printf("INFORME UM NOME PARA FAZER BUSCA: ");
gets(comparar1);
for(cont2=0; cont2<=cont; cont2 ++)
{
if(strcmp(funcionario[cont2].nome, comparar1)==0)
{
printf("O FUNCIONARIO ESTÁ CADASTRADO: \n\n"
"DADOS PESSOAIS:\n"
"NOME: %s\n"
"E-MAIL: %s\n"
"NUMERO DE TELEFONE: (%s) %s\n"
"\nENDERECO: \n"
"PAIS: %s\n"
"ESTADO: %s\n"
"CIDADE: %s\n"
"BAIRRO: %s\n"
"RUA: %s\n", funcionario[cont2].nome, funcionario[cont2].email,
funcionario[cont2].ddd, funcionario[cont2].numero_tel,
funcionario[cont2].local.pais, funcionario[cont2].local.estado,
funcionario[cont2].local.cidade, funcionario[cont2].local.bairro,
funcionario[cont2].local.rua);
confirmacao ++;
}
}
getchar();
if(confirmacao == 0){
printf("FUNCIONÁRIO NÃO CADASTRADO.\n"); }
confirmacao =0;
break;}
case 3: ///CASO 3: BUSCAR ANIVERSARIANTES POR MÊS;
{
fflush(stdin);
printf("INFORME O MÊS PARA BUSCAR ANIVERSARIANTES: ");
gets(comparar1);
for(cont2=0; cont2<=cont; cont2 ++)
{
if(strcmp(funcionario[cont2].aniversario.mes, comparar1)==0)
{
printf("FUNCIONARIO COM ANIVERSARIO PARA O MÊS INFORMADO: \n\n"
"DADOS PESSOAIS:\n"
"NOME: %s\n"
"E-MAIL: %s\n"
"NUMERO DE TELEFONE: (%s) %s\n"
"\nENDERECO: \n"
"PAIS: %s\n"
"ESTADO: %s\n"
"CIDADE: %s\n"
"BAIRRO: %s\n"
"RUA: %s\n", funcionario[cont2].nome, funcionario[cont2].email,
funcionario[cont2].ddd, funcionario[cont2].numero_tel,
funcionario[cont2].local.pais, funcionario[cont2].local.estado,
funcionario[cont2].local.cidade, funcionario[cont2].local.bairro,
funcionario[cont2].local.rua);
confirmacao ++;
}
}
if(confirmacao == 0){
printf("\nNÃO HÁ CADASTRO DE FUNCIONÁRIOS QUE FAÇAM ANIVERSÁRIO ESTE MÊS.\n"); }
confirmacao =0;
break;}
case 4: ///CASO 4: BUSCAR POR DIA E MÊS;
{
fflush(stdin);
printf("INFORME O MÊS PARA BUSCAR ANIVERSARIANTES: ");
gets(comparar1);
printf("INFORME O DIA PARA BUSCAR ANIVERSARIANTES: ");
gets(comparar2);
for(cont2=0; cont2<=cont; cont2++)
{
if(strcmp(comparar1, funcionario[cont2].aniversario.mes)==0)
if(strcmp(comparar2, funcionario[cont2].aniversario.dia)==0)
{
printf("FUNCIONARIO COM ANIVERSARIO PARA O DIA INFORMADO: \n\n"
"DADOS PESSOAIS:\n"
"NOME: %s\n"
"E-MAIL: %s\n"
"NUMERO DE TELEFONE: (%s) %s\n"
"\nENDERECO: \n"
"PAIS: %s\n"
"ESTADO: %s\n"
"CIDADE: %s\n"
"BAIRRO: %s\n"
"RUA: %s\n", funcionario[cont2].nome, funcionario[cont2].email,
funcionario[cont2].ddd, funcionario[cont2].numero_tel,
funcionario[cont2].local.pais, funcionario[cont2].local.estado,
funcionario[cont2].local.cidade, funcionario[cont2].local.bairro,
funcionario[cont2].local.rua);
confirmacao ++;
}
}
if(confirmacao == 0){
printf("\nNÃO HÁ CADASTRO DE FUNCIONÁRIO(S) QUE FAÇAM ANIVERSÁRIO NESTE DIA.\n"); }
confirmacao =0;
break;}
case 5: ///CASO 5: FECHA O PROGRAMA;
{
escolha = 0;
}
}
}while(escolha);
return 0;
}
I do not know if it is enough to be duplicate, but the solution is here: https://answall.com/q/45213/101
– Maniero
I don’t quite understand, I’m a beginner and it’s still confusing for me... because my variable ddd is an entire type there in the struct and I could only record a value using %s... it doesn’t make sense.
– System_4n4n
Exactly, your code does not make sense. Treat descriptive information as text and your problem will be solved (there are others besides this).
– Maniero
When you create a vector of
int
, not that each position will contain a number from 1 to 9, it will contain the whole number. Works withstring
, because the string, specifically, is already a char vector, so it works the way you expect it to when it’s%s
, but it doesn’t work when it’s%d
– Felipe Avelar
For you who said that my code does not make sense I already finished it and yes it works perfectly, if you do not understand I will put the code below for you to test and remove your words... I am beginner but proud!!! kkkk
– System_4n4n
please don’t be angry - this is how the site works; if you like, from a past in chat, there you can ask questions of all kinds without this negative feedback... until more!
– Daniel