|| cont==5) cont--; data[cont] = ' '; } } else if (isdigit(tecla)) { if(cont<10) { data[cont] = tecla; cont++; } if(cont==2 || cont==5) cont++; } } while(tecla!=(char)13); return(data);}int val_cpf(char str[12]){ int cpf[11]; int vercpf[11]; int d1,d2,d3,d4,aux,i; // printf(" INSIRA O SEU CPF SEM PONTOS: "); //scanf ("%s", str); printf("\n"); for(i = 0;i < 11; i++) { cpf[i]=str[i]-48; } //printf("\n"); for(i = 0;i < 11; i++) { //printf("%d\n",cpf[i]); } //verificando o primeiro digito aux = 10; for(i = 0;i < 9; i++) { vercpf[i] = cpf[i] * aux; aux = aux - 1; } aux = 0; for(i = 0;i < 9; i++) { aux = vercpf[i] + aux; } d1 = aux / 11; d2 = d1 * 11; d3 = aux - d2; if(d3 <= 1) d3 = 0; else d3 = 11 - d3; //printf(" Digito verificador 1: %d",d3); //printf("\n"); //verificando o segundo digito d1 = 0; d2 = 0; d4 = 0; aux = 11; for(i = 0;i < 10; i++) { vercpf[i] = cpf[i] * aux; aux = aux - 1; } aux = 0; for(i = 0;i < 10; i++) { aux = vercpf[i] + aux; } d1 = aux / 11; d2 = d1 * 11; d4 = aux - d2; if(d4 <= 1) d4 = 0; else d4 = 11 - d4; //printf(" Digito verificador 2: %d",d4); //printf("\n\n"); if((d3 != cpf[9]) || (d4 != cpf[10])) { //printf(" CPF INVALIDO \n\n"); //val_cpf(str); return(1);//scanf("%d",d3); } else {// printf(" CPF CONFERE...");// for(i = 0;i < 11; i++)// {// printf("%d",cpf[i]);// } return(0); } //printf("\n\n");}typedef struct Formulario{ int valida; char nome[50]; char e_mail[50]; char Nasc[15]; char rg[20]; char cpf[20]; char telefone[15]; double saldo; char end[80]; char cid[30]; char estado[30]; char cep[12];}REGISTRO;/*#**///Funcao cadastrarvoid cadastrar(){ system("CLS"); FILE *arquivo; REGISTRO cliente; int opt,cpf[12]; printf("CADASTRAR\n\n"); //Cadastro Informacoes-Pessoais printf("Nome:\nE_mail:\nNascimento:\nRG:\nCPF:\nTel:\nSaldo Inicial:\n"); //Cadastro Informacoes-Endereco printf("Endereco:\nBairro:\nCidade:\nCEP:"); //Digitar Dados gotoxy(6,2); fflush(stdin); gets(cliente.nome); gotoxy(8,3); fflush(stdin); gets(cliente.e_mail); gotoxy(20,4); recebe_data();fflush(stdin); strcpy(cliente.Nasc,INVALIDO); gotoxy(4,5); fflush(stdin); gets(cliente.rg); gotoxy(5,6); scanf("%s",cpf);if(val_cpf(cpf)==0){gotoxy(5,6);fflush(stdin);gets(cliente.cpf);}else {gotoxy(5,6);printf(INVALIDO);strcpy(cliente.cpf,INVALIDO);} gotoxy(5,7); fflush(stdin); gets(cliente.telefone); gotoxy(15,8); scanf("%lf", &cliente.saldo); gotoxy(10,9); fflush(stdin); gets(cliente.end); gotoxy(8,10); fflush(stdin); gets(cliente.estado); gotoxy(15,11); fflush(stdin); gets(cliente.cid); gotoxy(5,12); fflush(stdin); gets(cliente.cep); cliente.valida=1; //Salvar Dados printf("\n1.SALVAR\n0.VOLTAR\n\n: "); scanf("%d", &opt); if(opt){ if(!(arquivo=fopen("Informacoes.bin","a+b"))){ printf("\nErro na abertura do arquivo."); exit(0); } if(!fwrite(&cliente,sizeof(REGISTRO),1,arquivo)){ printf("\nErro na escrita do arquivo."); exit(0); } system("CLS"); printf("\nSeus dados foram salvos com sucesso."); fclose(arquivo); }else{ system("CLS"); printf("\nDados nao salvos."); } system("pause>0");}/*#**///Imprimir os dados de um clientevoid ImprimirDados(REGISTRO cliente){ system("CLS"); gotoxy(10,7);printf("Nome: %s\n", cliente.nome); gotoxy(10,8);printf("E_mail: %s\n", cliente.e_mail); gotoxy(10,9);printf("Nascimento: %s\n", cliente.Nasc); gotoxy(10,10);printf("RG: %s\n", cliente.rg); gotoxy(10,11);printf("CPF: %s\n", cliente.cpf); gotoxy(10,12);printf("Tel: %s\n", cliente.telefone); gotoxy(10,13);printf("Saldo: %0.2lf\n", cliente.saldo); gotoxy(10,14);printf("Endereco: %s\n", cliente.end); gotoxy(10,15);printf("Estado: %s\n", cliente.estado); gotoxy(10,16);printf("Cidade: %s\n", cliente.cid); gotoxy(10,17);printf("CEP: %s\n", cliente.cep);}/*#**///Calcular o numero maximo de clientesint Max(){ FILE *arquivo; int Max; if(!(arquivo=fopen("Informacoes.bin","rb"))){ printf("\nErro na abertura do arquivo."); exit(0); } fseek(arquivo,0,SEEK_END); Max=ftell(arquivo)/sizeof(REGISTRO); fclose(arquivo); return Max;}/*#**///Consulta "Por Letra"int p_ini(int N_CLI,char letra){ FILE *arquivo; REGISTRO cliente; int i=1, a=0; if(!(arquivo=fopen("Informacoes.bin","rb"))){ printf("\nErro na abertura do arquivo."); exit(0); } rewind(arquivo); while(i<=N_CLI){ if(!fread(&cliente,sizeof(REGISTRO),1,arquivo)){ printf("\nErro na leitura do arquivo."); exit(0); } if((cliente.nome[0]==letra || cliente.nome[0]==letra+32 || cliente.nome[0]==letra-32) && cliente.valida){ printf("\n%d-%s", i, cliente.nome); a=1; } i++; } printf("\n\n"); fclose(arquivo); return a;}/*#**///Consulta "Por Saldo"int porSaldo(int N_CLI,double saldoMenor,double saldoMaior){ FILE *arquivo; REGISTRO cliente; int i=1, a=0; if(!(arquivo=fopen("Informacoes.bin","rb"))){ printf("\nErro na abertura do arquivo."); exit(0); } rewind(arquivo); while(i<=N_CLI){ if(!fread(&cliente,sizeof(REGISTRO),1,arquivo)){ printf("\nErro na