Validador de Cartão de Credito

Publicado por Djames Suhanko 29/01/2006

[ Hits: 18.386 ]

Homepage: http://phantomclone.com

Download cartao.c




Um validador mais ou menos pra validar cartão de crédito. Leia o código online para copiar os cabeçalhos.

  



Esconder código-fonte

#include <stdio.h>
#include "banco.h"
#include "tipo.h"
// Criado por: Djames Suhanko
//os cabeçalhos estão na parte de baixo do codigo
// Funcao para ler o cartao
digcart() {
printf("Digite seu cartao (1234-1234-1234-1234 ou 1234123412341234)\nCartao: >> ");
fflush(NULL);
scanf("%s",&lercartao);
printf("\e[H\e[2J");
       }

//converter para numerico e remover caracteres nao-numericos
convform() {
         int a=0;
        for (i=0; i<20;i++)
         {
         if (lercartao[i] == '.' || lercartao[i] == '-')
            {
            i=i+1;
            }
         cartaolimpo[a] = lercartao[i]-48;
         a = a+1;
         }
        }

//multiplica posicao impar , soma aos demais numeros e valida
multi(){
     for (i=0;i<15;i++)
      {
      acum=cartaolimpo[i]*2;
      if (acum >9)
         {
         acum=acum-9;
         }
      total=total+acum;
      i=i+1;
      }
   for (i=1;i<16;i++)
      {
      total=total+cartaolimpo[i];
      i=i+1;
      }
int modulo;
      modulo=total%10;
      if (modulo == 0)
      {
      if (total<150)
         {
         printf("Cartao: ");
         for (i=0;i<16;i++)
            {
            if (i == 4 || i == 8 || i == 12 )
            {
            printf(" ");
            }
            printf("%d",cartaolimpo[i]);
            }
            printf("\n");
         printf("Numero valido\n\n");
         }
      }
      else
         {
         printf("Cartao Invalido\n\n");;
         }
     }

main()
{
digcart();
convform();
multi();
tipo();
//banco();
return (0);
}

//banco.h 
/*
char lercartao[17];
int cartaolimpo[19];
int total, acum;
int i;

int CityBank[20]={4, 1, 2, 8, 4, 0, 1, 3, 4, 2, 7, 1, 4, 5, 5, 6};
int Bradesco[10]={4, 0, 9, 6, 4, 5, 5, 1};
int Real[6]={4, 9, 1, 6};

banco(){
      printf("");
      }

*/
//tipo.h
/*
tipo(){
   // identifica o tipo do cartao
   if (cartaolimpo[0] == 3)
      {
      printf("Tipo: American Express\n");
      }
   else if (cartaolimpo[0] == 4)
      {
      printf("Tipo: VISA\n");
      }
   else if (cartaolimpo[0] == 5)
      {
      printf("Tipo: MasterCard\n");
      }
   else if (cartaolimpo[0] == 6)
      {
      printf("Tipo: Discover\n");
      }
   else
      {
      printf("Operadora invalida\n");
      }
   }
*/

Scripts recomendados

Pilha Sequencial

Conversão do número de dias em anos (meu segundo programa em C)

MMC

my_strlen

Uma ajuda para quem gosta de Geometria Analítica


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts