Enviado em 06/06/2013 - 10:26h
gente estou fazendo um programa para efetuar o cadastro de até 10 pessoas depois gerar um relatório com quantos maiores de idade, quantos do sexo masculino e feminino, quantos moram em gurupi, e o total de clientes cadastrados. Obs.: os cpf's ' e codigos não podem ser iguais.
#include <stdio.h>
#include <string.h>
#include <strings.h>
typedef struct cliente
{
int cod,anoNascimento;
char cpf[11],nome[100],cidade[75],sexo;
}Cliente;
Cliente cliente[10];
int i,cont,cont2;
void zerar()
{
for(i=0;i<10;i++)
{
cliente[i].cod=0;
cliente[i].anoNascimento=0;
strcpy(cliente[i].cpf," ");
}
}
void cadastrar()
{
int aux,aux2,j;
char aux3[11];
for(i=0;i<10;i++)
{
if(cliente[i].cod==0)
{
printf("\nDigite o nome do cliente: ");
fgets(cliente[i].nome,100,stdin);
__fpurge(stdin);
do
{
cont=0;
cont2=0;
printf("\nDigite o código do cliente: ");
scanf("%d",&aux2);
__fpurge(stdin);
printf("\nDigite o cpf do cliente: ");
fgets(aux3,11,stdin);
__fpurge(stdin);
for(j=0;j<10;j++)
{
if(aux2==cliente[j].cod)
{
cont++;
}
if(strcmp(aux3,cliente[j].cpf)==0)
{
cont2++;
}
}
if(cont>0)
{
printf("\n já existe um cliente com esse código!");
}
if(cont2>0)
{
printf("\n já existe um cliente com esse cpf!");
}
if((cont==0)&&(cont2==0))
{
cliente[i].cod=aux2;
strcpy(cliente[i].cpf,aux3);
}
}while((cont!=0)&&(cont2!=0));
printf("\nDigite o sexo [m/f]: ");
scanf("%c",&cliente[i].sexo);
__fpurge(stdin);
printf("\nDigite o ano de nascimento: ");
scanf("%d",&cliente[i].anoNascimento);
__fpurge(stdin);
printf("\nDigite a cidade: ");
fgets(cliente[i].cidade,75,stdin);
__fpurge(stdin);
break;
}
}
}
void listar()
{
for(i=0;i<10;i++)
{
if(cliente[i].cod!=0)
{
printf("\nnome: %s",cliente[i].nome);
printf("\nsexo: %c",cliente[i].sexo);
printf("\ncodigo: %d",cliente[i].cod);
printf("\ncpf: %s",cliente[i].cpf);
printf("\nano de nascimento: %d",cliente[i].anoNascimento);
printf("\ncidade: %s",cliente[i].cidade);
printf("\n____________________________________________________________________________");
}
}
}
void maiores_idade()
{
int cont;
cont=0;
for(i=0;i<10;i++)
{
if((2013-cliente[i].anoNascimento>=18)&&(cliente[i].anoNascimento>0)&&(2013-cliente[i].anoNascimento<150))
{
cont++;
}
}
printf("\na)Existem %d maiores de idade cadastrados;",cont);
}
void sexo_masc_fem()
{
int cont,cont2;
cont=0;
cont2=0;
for(i=0;i<10;i++)
{
if((cliente[i].sexo=='m')||(cliente[i].sexo=='M'))
{
cont++;
}
if((cliente[i].sexo=='f')||(cliente[i].sexo=='F'))
{
cont2++;
}
}
printf("\nb)Existem %d pessoas do sexo masculino cadastradas e \n %d do sexo feminino;",cont,cont2);
}
void conferir_gurupi()
{
cont=0;
int a;
for(i=0;i<10;i++)
{
if((strcmp(cliente[i].cidade,"GURUPI")==0)||(strcmp(cliente[i].cidade,"Gurupi")==0)||(strcmp(cliente[i].cidade,"gurupi")==0))
{
cont++;
}
}
printf("\nc) %d pessoas cadastradas moram em gurupi;",cont);
}
void total()
{
int cont;
cont=0;
for(i=0;i<10;i++)
{
if(cliente[i].cod!=0)
{
cont++;
}
}
printf("\nd)Existem %d pessoas cadastradas",cont);
}
void relatorio()
{
maiores_idade();
sexo_masc_fem();
conferir_gurupi();
total();
}
void menu()
{
int opc;
do
{
printf("\n|>>>>>>>>>>>>>>>>>>>MENU<<<<<<<<<<<<<<<<<<<<<<|");
printf("\n|> <|");
printf("\n|> 1) Cadastrar; <|");
printf("\n|> 2) Listar; <|");
printf("\n|> 3) Relatório; <|");
printf("\n|> 4) Limpar tela; <|");
printf("\n|> 5) Sair; <|");
printf("\n|>>>>>>>>>>>>>>>>>>>MENU<<<<<<<<<<<<<<<<<<<<<<|");
printf("\n\nDigite uma opção: ");
scanf("%d",&opc);
__fpurge(stdin);
switch(opc)
{
case 1:
cadastrar();
break;
case 2:
listar();
break;
case 3:
relatorio();
break;
case 4:
system("clear");
break;
case 5:
break;
default :
printf("\nNão costa na lista!");
break;
}
}
while(opc!=5);
}
void main()
{
zerar();
menu();
}