Antharaz 3 Denunciar post Postado Setembro 2, 2009 Bem... Não sei se vai ajudar alguém mas está aí... Fiz o programa com intuito de testar meu conhecimento sobre tipo bool e criação de novas funções. Source: /* Nome: Gerador de cpf/cnpj/titulo eleitoral/cgc Autor: Jorge Almeida Miguel Date: 31/08/09 18:01 Descrição: Programa feito 100% por Jorge Almeida Miguel. Feito apenas para teste de conhecimento. O autor não se responsabiliza pelo uso inapropriado do mesmo */ #include <stdio.h> // para usar o printf e o scanf #include <time.h> // para usar o srand(time(NULL)) e gerar verdadeiros numeros aleatorios #include <windows.h> // para o gettickcount #include <stdbool.h> // para usar int a,b,c,d,e,f,g,h,i,j,k,l,m,n,w,q; // tive que declarar globais porque uso elas em mais de uma função int usorand() { a = rand()%10; b = rand()%10; c = rand()%10; d = rand()%10; e = rand()%10; f = rand()%10; g = rand()%10; h = rand()%10; i = rand()%10; j = rand()%10; k = rand()%10; l = rand()%10; } int cpf() // PARTE RESPONSÁVEL POR GERAR CPFs { q = 1; printf ("\n\nQuantos CPFs deseja gerar?\n\n"); scanf ("%i%*c", &w); while (q <= w) { usorand(); l = a*10+b*9+c*8+d*7+e*6+f*5+g*4+h*3+i*2; j = l%11; if (j <= 1) j = 0; else j = 11 - j; k = a*11+b*10+c*9+d*8+e*7+f*6+g*5+h*4+i*3+j*2; k = k%11; if (k <= 1) k = 0; else k = 11 - k; printf ("\n\nCPF: %i%i%i.%i%i%i.%i%i%i-%i%i", a,b,c,d,e,f,g,h,i,j,k); q = q +1; } q = 1; } int cnpj() // PARTE RESPONSÁVEL POR GERAR CNPJ { printf ("\n\nQuantos CNPJs deseja gerar?\n\n"); scanf ("%i%*c", &w); while (q <= w) { usorand(); m = a*5+b*4+c*3+d*2+e*9+f*8+g*7+h*6+i*5+j*4+k*3+l*2; m = m%11; if (m <= 1) m = 0; else m = 11 - m; n = a*6+b*5+c*4+d*3+e*2+f*9+g*8+h*7+i*6+j*5+k*4+l*3+m*2; n = n%11; if (n <= 1) n = 0; else n = 11 - n; printf ("\n\nCNPJ: %i%i.%i%i%i.%i%i%i/%i%i%i%i-%i%i", a,b,c,d,e,f,g,h,i,j,k,l,m,n); q = q+1; } q = 1; } int main() { char C,r; bool u2; srand(time(NULL)); printf("Programa feito totalmente por Jorge Almeida Miguel.\nFoi feito apenas para teste "); printf("de conhecimento e o autor não se responsabiliza pelo uso inapropriado do mesmo.\n\n\n\n\n\n"); r = '2'; u2 = true; while (r == '2') { printf ("\n\nO que deseja gerar? [1-CPF/2-CNPJ(CGC)]\n\n"); scanf ("%c%*c", &C); if (C == '1') { cpf(); u2 = true; } else if (C == '2') { cnpj(); u2 = true; } else { printf("\n\nPor favor, coloque o numero das opções desejadas. ;D"); u2=false; } if (u2==true) { printf("\n\n\nDeseja sair do programa? [1-sim/2-nao]\n\n"); scanf("%c%*c",&r); } } // fim do while printf ("\n\n\nGrato pelo uso do programa!!!\n\n"); printf ("Qualquer duvida/sugestao/critica mande um e-mail ou me adicione no msn:\njorge_do_colegio@hotmail.com\n\n\n\n\n"); int t = GetTickCount(); // t recebe o início da contagem while(t + 4000 > GetTickCount()); // tipo um timer para esperar que a contagem aumente até t + 4000 milisegundos(4s) return 0; } Agradecimentos: quitZAUMMM por ter paciência(muita =x) e tirar algumas dúvidas... ^^ Compartilhar este post Link para o post Compartilhar em outros sites
Antharaz 3 Denunciar post Postado Setembro 3, 2009 Eu vi um erro só agora no code... ele não entra na pergunta se quer sair... já arrumei! Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Setembro 3, 2009 =D gostei! Mas posso dar uma sugestão? Ao invés de declarar aquele monte de variáveis globais, por que não criar uma struct, e passar ela para as funções? Por exemplo: struct CPF_t { int a, b, c, d, e, f, g, h, i, j, k, l; }; int Inicializa(struct CPF_t &cpf) { cpf.a = rand()%10; cpf.b = rand()%10; .... cpf.l = rand()%10; } ... ... Compartilhar este post Link para o post Compartilhar em outros sites
Antharaz 3 Denunciar post Postado Setembro 3, 2009 Apesar de conhecer o struct, não o usei porque queria fazer de acordo com o que o professor já ensinou + ou -... ^^ Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Setembro 3, 2009 É cara isso ae http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Só comece a melhorar o nome das variáveis ^^ []s --- Título Editado: Gerador de CPF/CNPJ http://forum.imasters.com.br/public/style_emoticons/default/seta.gif [Código] Gerador de CPF/CNPJ Compartilhar este post Link para o post Compartilhar em outros sites