In this project, you are assisting an investigation. The investigator asked you to help him determine the validity of credit card numbers located in a case of Mobius Duck, case number 20150510-001.

Your task is to:

  • Read the data listed below "Data to Evaluate" from a file.
  • Evaluate each number to see if they are representing a possible credit card number.
  • Validate each credit card number to see if they are a valid number.
  • Store the valid numbers and invalid numbers in a separate array.
  • Write the contents of validated credit card number array into a file called "valid_cards.txt".
  • Write the invalid credit card number array to a file called "invalid_numbers.txt".
  • Make sure to include the issuer for each group of credit card numbers identified.
  • Your application should work with any number of credit card entries.

Turn in:

  • Source code ( .java ) files of all classes and driver class.
  • Completed UML for application classes.
  • Flow chart for every method that contains beyond sequential logic flow.
  • Generated javadocs structure.
  • Input and output files

Extra Credit:

  • Implement the full Issuer IIN Range instead of the simplified list.

Luhn Example: see image.

List of credit card number formats

Credit Card Issuer Starts With (IIN Range) Length (Number of Digits)
American Express 34, 37 15
Diners Club - Carte Blanche 300, 301, 302, 303, 304, 305 14
Diners Club - International 36 14
Diners Club - USA & Canada 54 16
Discover 6011, 622126 to 622925, 644, 645, 646, 647, 648, 649, 65 16
InstaPayment 637, 638, 639 16
JCB 3528 to 3589 16
Laser 6304, 6706, 6771, 6709 16 - 19
Maestro 5018, 5020, 5038, 5893, 6304, 6759, 6761, 6762, 6763 16 - 19
MasterCard 51, 52, 53, 54, 55 16 - 19
Visa 4 13 - 16
Visa Electron 4026, 417500, 4508, 4844, 4913, 4917 16

Data to Evaluate

3158539628375348
3337465828248404
3112804683572030
3112804683572033
5435528978467581
6706465468107999
6304362971054667
6706169762827894
6706169762827892
4844104341377697
4913405490886727
4844885754351829
4844885754351822
6371473570875275
6381475006869978
6389057917814806
347100734345549
347100734345543
6011162533805000
6011621663574413
6011824617460743
6011824617460745
6389057917814802
4539318768050385
36880982786892
36845793345501
36661154562232
36661154562234
5893329089846994
6761680165952016
6763100400984029
6763100400984022
5127043299122389
5330838017737340
5429168755154025
5429168755154023
375354034606481
379570632133224
4485521241443135
4532916206508075
4532916206508076
5590976687287124
5540641137519895
5540641137519892
30522070708059
30066552673241
30365487186802
30365487186801
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.