Validador de Cartão de Credito
Publicado por Djames Suhanko 29/01/2006
[ Hits: 18.781 ]
Homepage: http://phantomclone.com
Um validador mais ou menos pra validar cartão de crédito. Leia o código online para copiar os cabeçalhos.
#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");
}
}
*/
Dado determinados números, retorna-os em ordem crescente
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica
Instalar Dual Boot, Linux+Windows. (8)
Eaí? Já programou no windows? (2)
Erro ao enviar arquivos para o Storage Synology NAS (0)
Conky, alerta de temperatura alta (17)
De volta para o futuro - ou melhor, para o presente (parte 2) (3)









