question

verificacao de cartao de credito de programacao de Java..ajuda sobre o que esta falta?

Escreva um programa que usa um número de cartão de crédito e determina se é um número válido ou não. Aqui está o algoritmo para determinar se o número é válido:

A partir do dígito mais à direita (o dígito de verificação), formam a soma de todos os outros dígitos. Por exemplo, se o número de cartão de crédito for 5490123456789128, você poderia somar até 8++ 1++ 8++ 6++ 4++ 2++ 0 + 4 = 33.
Agora, para cada um dos dígitos restantes, duplo-los e juntos adicione seus dígitos resultantes. Aqui você é deixado com 5 9 1 3 5 7 9 2. Duplicação da lhes dá-lhe 10 18 2 6 10 14 18 4. Adicionar todos os dígitos agora dá-lhe 1++ 0 + 1++ 8++ 2++ 6++ 1++ 0 + 1++ 4++ 1++ 8++ 4 = 37.
Somar os dois montantes das etapas acima. 33++ 37 = 70.
Se o resultado termina em 0 (ou seja, é uniformemente dividido por 10), então é um número de cartão de crédito válido. Caso contrário, não é.
Esse método é chamado de seleção "mod 10".

Depois de determinar se o número é válido ou não, você irá informar o usuário e se o número não é válido, informe ao usuário o que o dígito de verificação deve ser para essa placa.

Uma dica: se você ler o número como uma Cadeia de caracteres, você terá que converter cada dígito do caractere para o valor numérico real.

ENTRADA: Uma Cadeia de caracteres

SAÍDA:
Cartão de crédito!
- ou -
Cartão de crédito inválido!
O dígito de verificação deve ser: _

public static void main (String [] args) {
Teclado scanner = novo Scanner(System.in);

Boolean mesmo = true;

System.out.Print ("Insira um cartão de crédito número sem espaços:");
Número de seqüência de caracteres = keyboard.next();
/ / System.out.print ("Número é" + número);
/ / int cardNumb = Integer.parseInt(number);

for (int i = 1; i< number.length();="" i="i" +="" 2)="" {="">
int Num = Integer.parseInt(number.charAt(i) + "");
sum1 int;
int sum2 = 0;
sum1 = sum2 + Num;

sum2 = sum2 + (Num % 10);
sum1 = sum1 + (Num % 10);

se (sum1 = = sum2) {
se (i % 2 = = 0) {
mesmo = true;

} else {
mesmo = false;
System.out.Print ("O dígito de verificação deve ser:" + i);
}
}

}

se (mesmo = = true) {
System.out.Print ("número válido");
}
se (mesmo = = false) {
System.out.Print ("número inválido");

}

// ////////////////////////////////
}

}

Eu não sei como verificar se o dígito certo?
resposta Resposta
tente isso. Descomente as saídas do sistema para entender o que está acontecendo. Também declarei muito variável apenas para compreensão.

Import java.util.Scanner;

Classe Demo

{

public static void main (String [] args) {

Número de seqüência de caracteres;

Teclado scanner = novo Scanner(System.in);

//Get creditcard de usuário

System.out.Print ("Insira o cartão de crédito:");

número = keyboard.nextLine();



sum1 int = 0, sum2 = 0;



//Find a primeira soma

for(int i=number.length()-1;i>=0;i=i-2)

{

sum1 = sum1 + caractere. getNumericValue (número. charAt(i));

}



//Find a segunda soma

for(int i=number.length()-2;i>=0;i=i-2)

{

int doublenumber = 2 caracteres. getNumericValue (number.charAt(i));

String doublestring = Integer.toString(doublenumber);

//System.out.println (doublenumber + "" + doublestring);

for (int j = 0; j<doublestring.length();j++)></doublestring.length();j++)>

{

/ / System.out.println (Character. getNumericValue (doublestring.charAt(j)));

sum2 = sum2 + caractere. getNumericValue (doublestring.charAt(j));

}

}

//System.out.println (sum1 + "" + sum2);



//Check o resultado

se ((sum1+sum2) % 10 = = 0)

System.out.println ("cartão de crédito válido!");

outra pessoa

{

System.out.println ("cartão de crédito inválido!");



Dígito de verificação direito //suggesting

/ / System.out.println(sum1+sum2);

int totalsum = sum1 + sum2;

int lastdigitoftotalsum = totalsum % 10;

int numbertoaddtocheckdigit = 10 - lastdigitoftotalsum;

int userenteredcheckdigit = caractere. getNumericValue (número. charAt(number.length()-1));

int progsuggestedcheckdigit = userenteredcheckdigit + numbertoaddtocheckdigit;

//System.out.println (lastdigitoftotalsum + "" + numbertoaddtocheckdigit + "" + userenteredcheckdigit + "" + progsuggestedcheckdigit);

System.out.println ("O dígito de verificação deve ser" + progsuggestedcheckdigit);

}

}

}

ComentáriosComentários

Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved