//Devin Scheu CS1A Chapter 8, P. 487, #1
//
/**************************************************************
*
* VALIDATE CHARGE ACCOUNT NUMBER
* ____________________________________________________________
* This program determines if a charge account number is valid
* by checking against a predefined list.
* ____________________________________________________________
* INPUT
* accountNumber : The charge account number entered by the user
*
* OUTPUT
* validationMessage : Message indicating if the number is valid or invalid
*
**************************************************************/
#include <iostream>
#include <iomanip>
using namespace std;
int main () {
//Variable Declarations
const int NUM_ACCOUNTS = 18; //OUTPUT - Number of valid accounts
long long validAccounts[NUM_ACCOUNTS] = {5658845, 4520125, 7895122, 8777541, 8451277, 1302850,
8080152, 4562555, 5552012, 5050552, 7825877, 1250255,
1005231, 6545231, 3852085, 7576651, 7881200, 4581002};
long long accountNumber; //INPUT - The charge account number entered by the user
bool isValid = false; //PROCESSING - Flag indicating if the account is valid
string validationMessage; //OUTPUT - Message indicating if the number is valid or invalid
//Prompt for Input
cout << "Enter the charge account number: ";
cin >> accountNumber;
cout << accountNumber << endl;
//Linear Search for Validation
for (int i = 0; i < NUM_ACCOUNTS; i++) {
if (validAccounts[i] == accountNumber) {
isValid = true;
break;
}
}
validationMessage = isValid ? "The number is valid." : "The number is invalid.";
//Separator and Output Section
cout << "-------------------------------------------------------" << endl;
cout << "OUTPUT:" << endl;
//Output Result
cout << left << setw(25) << "Validation Status:" << right << setw(15) << validationMessage << endl;
} //end of main()
Ly9EZXZpbiBTY2hldSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUzFBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcHRlciA4LCBQLiA0ODcsICMxCi8vCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqCiogVkFMSURBVEUgQ0hBUkdFIEFDQ09VTlQgTlVNQkVSCiogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiogVGhpcyBwcm9ncmFtIGRldGVybWluZXMgaWYgYSBjaGFyZ2UgYWNjb3VudCBudW1iZXIgaXMgdmFsaWQKKiBieSBjaGVja2luZyBhZ2FpbnN0IGEgcHJlZGVmaW5lZCBsaXN0LgoqIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoqIElOUFVUCiogYWNjb3VudE51bWJlciA6IFRoZSBjaGFyZ2UgYWNjb3VudCBudW1iZXIgZW50ZXJlZCBieSB0aGUgdXNlcgoqCiogT1VUUFVUCiogdmFsaWRhdGlvbk1lc3NhZ2UgOiBNZXNzYWdlIGluZGljYXRpbmcgaWYgdGhlIG51bWJlciBpcyB2YWxpZCBvciBpbnZhbGlkCioKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxpb21hbmlwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluICgpIHsKCQoJLy9WYXJpYWJsZSBEZWNsYXJhdGlvbnMKCWNvbnN0IGludCBOVU1fQUNDT1VOVFMgPSAxODsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9PVVRQVVQgICAgIC0gTnVtYmVyIG9mIHZhbGlkIGFjY291bnRzCglsb25nIGxvbmcgdmFsaWRBY2NvdW50c1tOVU1fQUNDT1VOVFNdID0gezU2NTg4NDUsIDQ1MjAxMjUsIDc4OTUxMjIsIDg3Nzc1NDEsIDg0NTEyNzcsIDEzMDI4NTAsCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgwODAxNTIsIDQ1NjI1NTUsIDU1NTIwMTIsIDUwNTA1NTIsIDc4MjU4NzcsIDEyNTAyNTUsCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDUyMzEsIDY1NDUyMzEsIDM4NTIwODUsIDc1NzY2NTEsIDc4ODEyMDAsIDQ1ODEwMDJ9OwoJbG9uZyBsb25nIGFjY291bnROdW1iZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0lOUFVUICAgICAgLSBUaGUgY2hhcmdlIGFjY291bnQgbnVtYmVyIGVudGVyZWQgYnkgdGhlIHVzZXIKCWJvb2wgaXNWYWxpZCA9IGZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9QUk9DRVNTSU5HIC0gRmxhZyBpbmRpY2F0aW5nIGlmIHRoZSBhY2NvdW50IGlzIHZhbGlkCglzdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vT1VUUFVUICAgICAtIE1lc3NhZ2UgaW5kaWNhdGluZyBpZiB0aGUgbnVtYmVyIGlzIHZhbGlkIG9yIGludmFsaWQKCgkvL1Byb21wdCBmb3IgSW5wdXQKCWNvdXQgPDwgIkVudGVyIHRoZSBjaGFyZ2UgYWNjb3VudCBudW1iZXI6ICI7CgljaW4gPj4gYWNjb3VudE51bWJlcjsKCWNvdXQgPDwgYWNjb3VudE51bWJlciA8PCBlbmRsOwoJCgkvL0xpbmVhciBTZWFyY2ggZm9yIFZhbGlkYXRpb24KCWZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0FDQ09VTlRTOyBpKyspIHsKCQlpZiAodmFsaWRBY2NvdW50c1tpXSA9PSBhY2NvdW50TnVtYmVyKSB7CgkJCWlzVmFsaWQgPSB0cnVlOwoJCQlicmVhazsKCQl9Cgl9CgkKCXZhbGlkYXRpb25NZXNzYWdlID0gaXNWYWxpZCA/ICJUaGUgbnVtYmVyIGlzIHZhbGlkLiIgOiAiVGhlIG51bWJlciBpcyBpbnZhbGlkLiI7CgkKCS8vU2VwYXJhdG9yIGFuZCBPdXRwdXQgU2VjdGlvbgoJY291dCA8PCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgPDwgZW5kbDsKCWNvdXQgPDwgIk9VVFBVVDoiIDw8IGVuZGw7CgkKCS8vT3V0cHV0IFJlc3VsdAoJY291dCA8PCBsZWZ0IDw8IHNldHcoMjUpIDw8ICJWYWxpZGF0aW9uIFN0YXR1czoiIDw8IHJpZ2h0IDw8IHNldHcoMTUpIDw8IHZhbGlkYXRpb25NZXNzYWdlIDw8IGVuZGw7CgkKfSAvL2VuZCBvZiBtYWluKCk=