Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I NEED HELP PUTTING THE PROGRAM WITH METHODS AND CONSTRUCTOR. public class Credi

ID: 3903850 • Letter: I

Question

I NEED HELP PUTTING THE PROGRAM WITH METHODS AND CONSTRUCTOR.

public class CreditCardValidator { /** * @param number * @return */ public static boolean isValid(long number) { int total = sumOfDoubleEvenPlace(number) + sumOfOddPlace(number); if ((total % 10 == 0) && (prefixMatched(number, 1) == true) && (getSize(number) >= 13) && (getSize(number) <= 16)) { return true; } else { return false; } } /** * @param number * @return */ public static int getDigit(int number) { if (number <= 9) { return number; } else { int firstDigit = number % 10; int secondDigit = (int) (number / 10); return firstDigit + secondDigit; } } /** * @param number * @return */ public static int sumOfOddPlace(long number) { int result = 0; while (number > 0) { result += (int) (number % 10); number = number / 100; } return result; } /** * @param number * @return */ public static int sumOfDoubleEvenPlace(long number) { int result = 0; long temp = 0; while (number > 0) { temp = number % 100; result += getDigit((int) (temp / 10) * 2); number = number / 100; } return result; } /** * @param number * @param d * @return */ public static boolean prefixMatched(long number, int d) { if ((getPrefix(number, d) == 4) || (getPrefix(number, d) == 5) || (getPrefix(number, d) == 3)) { if (getPrefix(number, d) == 3) { System.out.println(" Visa Card "); } else if (getPrefix(number, d) == 5) { System.out.println(" Master Card "); } else if (getPrefix(number, d) == 3) { System.out.println(" American Express Card "); } return true; } else { return false; } } /** * @param d * @return */ public static int getSize(long d) { int count = 0; while (d > 0) { d = d / 10; count++; } return count; } /** * @param number * @param k * @return */ public static long getPrefix(long number, int k) { if (getSize(number) < k) { return number; } else { int size = (int) getSize(number); for (int i = 0; i < (size - k); i++) { number = number / 10; } return number; } } /** * @param args */ public static void main(String[] args) { long input = 4388576018410707l; if (isValid(input) == true) { System.out.println(" " + input + " is Valid. "); } else { System.out.println(" " + input + " is Invalid. "); } input = 4388576018402626l; if (isValid(input) == true) { System.out.println(" " + input + " is Valid. "); } else { System.out.println(" " + input + " is Invalid. "); } } }

Explanation / Answer

public class CreditCard{

CreditCard(){

}

/** * @param number * @return */

public boolean isValid(long number) {

int total = this.sumOfDoubleEvenPlace(number) + this.sumOfOddPlace(number);

if ((total % 10 == 0) && (this.prefixMatched(number, 1) == true) && (this.getSize(number) >= 13) && (this.getSize(number) <= 16)) {

return true;

} else {

return false; }

}

/** * @param number * @return */

public int sumOfDoubleEvenPlace(long number) {

int result = 0; long temp = 0;

while (number > 0) {

temp = number % 100;

result += this.getDigit((int) (temp / 10) * 2);

number = number / 100;

}

return result;

}

/** * @param number * @return */

public int getDigit(int number) {

if (number <= 9) {

return number;

}

else {

int firstDigit = number % 10;

int secondDigit = (int) (number / 10);

return firstDigit + secondDigit;

}

}

/** * @param number * @return */

public int sumOfOddPlace(long number) {

int result = 0;

while (number > 0) {

result += (int) (number % 10);

number = number / 100;

}

return result;

}

/** * @param number * @param d * @return */

public boolean prefixMatched(long number, int d) {

if ((this.getPrefix(number, d) == 4) || (this.getPrefix(number, d) == 5) || (this.getPrefix(number, d) == 3)) { if (this.getPrefix(number, d) == 3)

{

System.out.println(" Visa Card ");

} else if (this.getPrefix(number, d) == 5) {

System.out.println(" Master Card ");

} else if (this.getPrefix(number, d) == 3) {

System.out.println(" American Express Card ");

} return true;

} else {

return false; }

}

/** * @param number * @param k * @return */

public long getPrefix(long number, int k) {

if (this.getSize(number) < k) {

return number;

} else {

int size = (int) this.getSize(number);

for (int i = 0; i < (size - k); i++) {

number = number / 10;

}

return number; }

}

/** * @param d * @return */

public int getSize(long d) {

int count = 0;

while (d > 0) {

d = d / 10; count++;

}

return count;

}

}

public class CreditCardValidator {

public static void main(String[] args) {

long input = 4388576018410707l;

CreditCard obj= new CreditCard();

if (obj.isValid(input) == true)

{ System.out.println(" " + input + " is Valid. ");}

else

{ System.out.println(" " + input + " is Invalid. "); }

input = 4388576018402626l;

if (obj.isValid(input) == true)

{ System.out.println(" " + input + " is Valid. "); }

else

{ System.out.println(" " + input + " is Invalid. "); }

}

}