//Ryan Shahriyarpour CS1A Chapter 8 Question 1
/*****************************************************************************
*
* Charge Account Validation
*
*********************
*
* This program lets the user enter a charge account number and determines
* whether the number is valid by checking for it in a list of 18 valid
* account numbers stored in an array.
*
* *******************
* A LINEAR SEARCH is used. Each element of the array is compared to the
* number entered, starting at the first element, until a match is found or
* the end of the array is reached.
*
* INPUT
* account - the charge account number to check
*
* OUTPUT
* A message saying whether the account number is valid or invalid
*
****************************************************************************/
#include <iostream>
using namespace std;
// Constant for the number of valid accounts
const int SIZE = 18;
int main()
{
// data dictionary
int accounts[SIZE] = { // List of valid account numbers
5658845, 4520125, 7895122, 8777541, 8451277, 1302850,
8080152, 4562555, 5552012, 5050552, 7825877, 1250255,
1005231, 6545231, 3852085, 7576651, 7881200, 4581002
};
int account; // Account number entered by the user
int index; // Loop counter for the search
bool isValid = false; // True if the account number is in the list
// Get the account number
cout << "Enter a charge account number: ";
cin >> account;
// Linear search
for (index = 0; index < SIZE; index++)
{
if (accounts[index] == account)
{
isValid = true;
break;
}
}
// Display the result
if (isValid)
cout << "\nThat account number is valid." << endl;
else
cout << "\nThat account number is invalid." << endl;
return 0;
}
Ly9SeWFuIFNoYWhyaXlhcnBvdXIgICBDUzFBICBDaGFwdGVyIDggICBRdWVzdGlvbiAxCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAKICogQ2hhcmdlIEFjY291bnQgVmFsaWRhdGlvbgogKiAKICoqKioqKioqKioqKioqKioqKioqKgogKiAKICogVGhpcyBwcm9ncmFtIGxldHMgdGhlIHVzZXIgZW50ZXIgYSBjaGFyZ2UgYWNjb3VudCBudW1iZXIgYW5kIGRldGVybWluZXMKICogd2hldGhlciB0aGUgbnVtYmVyIGlzIHZhbGlkIGJ5IGNoZWNraW5nIGZvciBpdCBpbiBhIGxpc3Qgb2YgMTggdmFsaWQKICogYWNjb3VudCBudW1iZXJzIHN0b3JlZCBpbiBhbiBhcnJheS4KICogCiAqICoqKioqKioqKioqKioqKioqKioKICogQSBMSU5FQVIgU0VBUkNIIGlzIHVzZWQuIEVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXkgaXMgY29tcGFyZWQgdG8gdGhlCiAqIG51bWJlciBlbnRlcmVkLCBzdGFydGluZyBhdCB0aGUgZmlyc3QgZWxlbWVudCwgdW50aWwgYSBtYXRjaCBpcyBmb3VuZCBvcgogKiB0aGUgZW5kIG9mIHRoZSBhcnJheSBpcyByZWFjaGVkLgogKiAKICogSU5QVVQKICogIGFjY291bnQgIC0gdGhlIGNoYXJnZSBhY2NvdW50IG51bWJlciB0byBjaGVjawogKiAKICogT1VUUFVUICAgIAogKiAgQSBtZXNzYWdlIHNheWluZyB3aGV0aGVyIHRoZSBhY2NvdW50IG51bWJlciBpcyB2YWxpZCBvciBpbnZhbGlkCiAqIAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLy8gQ29uc3RhbnQgZm9yIHRoZSBudW1iZXIgb2YgdmFsaWQgYWNjb3VudHMKY29uc3QgaW50IFNJWkUgPSAxODsKIAppbnQgbWFpbigpCnsKICAgIC8vIGRhdGEgZGljdGlvbmFyeQogICAgaW50IGFjY291bnRzW1NJWkVdID0geyAgICAgICAgICAvLyBMaXN0IG9mIHZhbGlkIGFjY291bnQgbnVtYmVycwogICAgICAgIDU2NTg4NDUsIDQ1MjAxMjUsIDc4OTUxMjIsIDg3Nzc1NDEsIDg0NTEyNzcsIDEzMDI4NTAsCiAgICAgICAgODA4MDE1MiwgNDU2MjU1NSwgNTU1MjAxMiwgNTA1MDU1MiwgNzgyNTg3NywgMTI1MDI1NSwKICAgICAgICAxMDA1MjMxLCA2NTQ1MjMxLCAzODUyMDg1LCA3NTc2NjUxLCA3ODgxMjAwLCA0NTgxMDAyCiAgICB9OwogICAgaW50IGFjY291bnQ7ICAgICAgICAgICAgICAgICAgICAvLyBBY2NvdW50IG51bWJlciBlbnRlcmVkIGJ5IHRoZSB1c2VyCiAgICBpbnQgaW5kZXg7ICAgICAgICAgICAgICAgICAgICAgIC8vIExvb3AgY291bnRlciBmb3IgdGhlIHNlYXJjaAogICAgYm9vbCBpc1ZhbGlkID0gZmFsc2U7ICAgICAgICAgICAvLyBUcnVlIGlmIHRoZSBhY2NvdW50IG51bWJlciBpcyBpbiB0aGUgbGlzdAogCiAgICAvLyBHZXQgdGhlIGFjY291bnQgbnVtYmVyCiAgICBjb3V0IDw8ICJFbnRlciBhIGNoYXJnZSBhY2NvdW50IG51bWJlcjogIjsKICAgIGNpbiA+PiBhY2NvdW50OwogCiAgICAvLyBMaW5lYXIgc2VhcmNoCiAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBTSVpFOyBpbmRleCsrKQogICAgewogICAgICAgIGlmIChhY2NvdW50c1tpbmRleF0gPT0gYWNjb3VudCkKICAgICAgICB7CiAgICAgICAgICAgIGlzVmFsaWQgPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAKICAgIC8vIERpc3BsYXkgdGhlIHJlc3VsdAogICAgaWYgKGlzVmFsaWQpCiAgICAgICAgY291dCA8PCAiXG5UaGF0IGFjY291bnQgbnVtYmVyIGlzIHZhbGlkLiIgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJcblRoYXQgYWNjb3VudCBudW1iZXIgaXMgaW52YWxpZC4iIDw8IGVuZGw7CiAKICAgIHJldHVybiAwOwp9