#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
main()
{
inicio:
system("cls");
fflush(stdin);
int te[12],soma1,soma2,i,erro,erro2,erro3,te_invalido=0;
int parte1,parte2,parte3,parte4,dig1,dig2,opc;
char numero_te[12],resp;
printf("*==================================================================*\n");
printf("|______________ VALIDADOR DE TITULO ELEITORAL V. 1.0 ______________|\n");
printf("| |\n");
printf("| Autor: Thiago C. Serrilho |\n");
printf("| E-mail: webserrilho@gmail.com |\n");
printf("| 3o. Semestre - Licenciatura em Computacao |\n");
printf("| Disciplina: Linguagem de Programacao I |\n");
printf("| Prof. Carlos Acacio |\n");
printf("*==================================================================*\n\n");
printf("*========================================*\n");
printf("| O que voce deseja fazer? |\n");
printf("*----------------------------------------*\n");
printf("| 1 - Descobrir os digitos verificadores |\n");
printf("| 2 - Verificar a validade de um TE |\n");
printf("| 3 - Finaliza o programa |\n");
printf("*========================================*\n");
erro=0;
do
{
erro++;
if(erro>1)
{
printf("Erro: Opcao invalida!\n");
erro=1;
}
printf("Informe a sua opcao: ");
scanf("%d",&opc); fflush(stdin);
printf("*==================================================================*\n");
}while(opc>3 || opc<1);
switch(opc)
{
case 1:
{
system("cls");
printf("*==================================================================*\n");
printf("Acrescente zeros antes do numero caso ele nao seja igual a 10\n");
printf("Exemplo: Para TE com n. 1234 5678 sendo que 78 sao os digitos\n");
printf("verificador do TE. O mesmo deve ser digitado como abaixo:\n");
printf("0000 1234 56 excluindo-se os digitos verificadores.\n");
printf("*==================================================================*\n");
printf("Digite os 10 primeiros numeros do TE: ",i);
for(i=1;i<=10;i++)
{
if(i-1==4)printf(" ");
if(i-1==8)printf(" ");
numero_te[i]=getche();
te[i]=atoi(numero_te);
numero_te[i]=' ';
}
break;
}
case 2:
{
system("cls");
printf("*==================================================================*\n");
printf("OBS: O programa foi feito para funcionar com Titulos contendo 12\n");
printf("digitos. Exemplo: 0000 0000 0000 onde os 2 ultimos digitos sao os\n");
printf("digitos verificadores do TE. Portanto caso seu titulo nao possua\n");
printf("12 digitos, basta completar com 0 (zeros) no inicio.\n");
printf("Ex: para TE com n. 1234 5678 deve ficar 0000 1234 5678\n");
printf("*==================================================================*\n");
printf("Digite os 12 numeros do TE: ",i);
for(i=1;i<=12;i++)
{
if(i-1==4)printf(" ");
if(i-1==8)printf(" ");
numero_te[i]=getche();
te[i]=atoi(numero_te);
numero_te[i]=' ';
}
break;
}
case 3:
{
printf("Deseja continuar no programa (s/n)? ");
scanf("%s",&resp);
if((resp=='n') || (resp=='N')) goto fim; else goto inicio; }
}
soma1=((te[1]*2)+
(te[2]*3)+
(te[3]*4)+
(te[4]*5)+
(te[5]*6)+
(te[6]*7)+
(te[7]*8)+
(te[8]*9));
parte1=int(soma1 / 11);
parte2=(parte1 * 11);
dig1=(soma1 - parte2);
if(dig1>9)dig1=0;
if(opc==1)
{
printf("\n*==================================================================*\n");
printf("Primeiro digito: %d\n",dig1);
}
else
printf("\n*==================================================================*\n");
soma2=((te[9]*7)+
(te[10]*8)+
(dig1*9));
parte3=int(soma2 / 11);
parte4=(parte3 * 11);
dig2=(soma2 - parte4);
if(dig2>9)dig2=0;
if(opc==1)
{
printf("Segundo digito.: %d\n",dig2);
printf("*==================================================================*\n");
}
printf("Numero completo do TE\n");
for(i=1;i<=10;i++)
{
printf("%d",te[i]);
if(i-1==3)printf(" ");
if(i-1==7)printf(" ");
}
if(opc==1)
{
printf("%d%d\n",dig1,dig2); }
if(opc==2)
{
if(dig1==te[11] && dig2==te[12])
{
printf("%d%d\n",te[11],te[12]); printf("Titulo eleitoral valido.\n");
}
else
{
printf("%d%d\n",te[11],te[12]); printf("Titulo eleitoral invalido\n");
te_invalido++;
}
}
if(te_invalido<1)
{
printf("*==================================================================*\n");
printf("Informacao adicional:\n");
if(te[9]==0 && te[10]==1) printf("Titulo Eleitoral emitido em SP\n");
else if(te[9]==0 && te[10]==2) printf("Titulo Eleitoral emitido em MG\n");
else if(te[9]==0 && te[10]==3) printf("Titulo Eleitoral emitido no RJ\n");
else if(te[9]==0 && te[10]==4) printf("Titulo Eleitoral emitido em RS\n");
else if(te[9]==0 && te[10]==5) printf("Titulo Eleitoral emitido na BA\n");
else if(te[9]==0 && te[10]==6) printf("Titulo Eleitoral emitido no PR\n");
else if(te[9]==0 && te[10]==7) printf("Titulo Eleitoral emitido no CE\n");
else if(te[9]==0 && te[10]==8) printf("Titulo Eleitoral emitido em PE\n");
else if(te[9]==0 && te[10]==9) printf("Titulo Eleitoral emitido em SC\n");
else if(te[9]==1 && te[10]==0) printf("Titulo Eleitoral emitido em GO\n");
else if(te[9]==1 && te[10]==1) printf("Titulo Eleitoral emitido no MA\n");
else if(te[9]==1 && te[10]==2) printf("Titulo Eleitoral emitido na PB\n");
else if(te[9]==1 && te[10]==3) printf("Titulo Eleitoral emitido no PA\n");
else if(te[9]==1 && te[10]==4) printf("Titulo Eleitoral emitido no ES\n");
else if(te[9]==1 && te[10]==5) printf("Titulo Eleitoral emitido no PI\n");
else if(te[9]==1 && te[10]==6) printf("Titulo Eleitoral emitido no RN\n");
else if(te[9]==1 && te[10]==7) printf("Titulo Eleitoral emitido em AL\n");
else if(te[9]==1 && te[10]==8) printf("Titulo Eleitoral emitido em MT\n");
else if(te[9]==1 && te[10]==9) printf("Titulo Eleitoral emitido em MS\n");
else if(te[9]==2 && te[10]==0) printf("Titulo Eleitoral emitido no DF\n");
else if(te[9]==2 && te[10]==1) printf("Titulo Eleitoral emitido em SE\n");
else if(te[9]==2 && te[10]==2) printf("Titulo Eleitoral emitido no AM\n");
else if(te[9]==2 && te[10]==3) printf("Titulo Eleitoral emitido em RO\n");
else if(te[9]==2 && te[10]==4) printf("Titulo Eleitoral emitido no AC\n");
else if(te[9]==2 && te[10]==5) printf("Titulo Eleitoral emitido em AP\n");
else if(te[9]==2 && te[10]==6) printf("Titulo Eleitoral emitido em RR\n");
else if(te[9]==2 && te[10]==7) printf("Titulo Eleitoral emitido em TO\n");
else if(te[9]==2 && te[10]==8) printf("Titulo Eleitoral emitido no exterior\n");
else
{
printf("*==================================================================*\n");
printf("Titulo de eleitor invalido.\n");
printf("O nono e o decimo digito juntos nao podem ultrapassar 28 e nem\n");
printf("serem iguais a 00\n");
}
}
printf("*==================================================================*\n");
printf("Pressione \"enter\" para continuar...");
getchar();
goto inicio; fim:;
}