// Nathanael Schwartz CS1A Chapter 8, P. 515, #1
//
/*******************************************************************************
*
* VERIFY CHARGE ACCOUNT NUMBER
* _____________________________________________________________________________
* This program prompts the user to enter a charge account number and verifies
* its validity by checking it against a predefined list using a linear search.
* _____________________________________________________________________________
* INPUT
* userAccount : Charge account number input by the user
*
* OUTPUT
* Message indicating if the number is valid or invalid
*
******************************************************************************/
#include <iostream>
using namespace std;
// Function prototype
bool linearSearch(const int[], int, int);
int main() {
// List of valid charge account numbers
const int SIZE = 18;
int validAccounts[SIZE] = {
5658845, 4520125, 7895122, 8777541, 8451277, 1302850,
8080152, 4562555, 5552012, 5050552, 7825877, 1250255,
1005231, 6545231, 3852085, 7576651, 7881200, 4581002
};
int userAccount; // User-entered account number
// Prompt the user to enter an account number
cout << "Enter a charge account number: ";
cin >> userAccount;
// Search for the account number in the array
if (linearSearch(validAccounts, SIZE, userAccount)) {
cout << "The account number is valid." << endl;
} else {
cout << "The account number is invalid." << endl;
}
return 0;
}
/**************************************************************
* linearSearch *
* This function performs a linear search on an integer array *
* to find a specified value. Returns true if found; *
* otherwise, returns false. *
**************************************************************/
bool linearSearch(const int array[], int size, int value) {
for (int i = 0; i < size; i++) {
if (array[i] == value) {
return true; // Value found, return true
}
}
return false; // Value not found, return false
}
Ly8gTmF0aGFuYWVsIFNjaHdhcnR6ICAgICAgICAgICAgICAgICBDUzFBICAgICAgICAgICAgICAgICBDaGFwdGVyIDgsIFAuIDUxNSwgIzEKLy8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKICogVkVSSUZZIENIQVJHRSBBQ0NPVU5UIE5VTUJFUgogKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogKiBUaGlzIHByb2dyYW0gcHJvbXB0cyB0aGUgdXNlciB0byBlbnRlciBhIGNoYXJnZSBhY2NvdW50IG51bWJlciBhbmQgdmVyaWZpZXMgCiAqIGl0cyB2YWxpZGl0eSBieSBjaGVja2luZyBpdCBhZ2FpbnN0IGEgcHJlZGVmaW5lZCBsaXN0IHVzaW5nIGEgbGluZWFyIHNlYXJjaC4KICogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICogSU5QVVQKICogICB1c2VyQWNjb3VudCAgICAgIDogQ2hhcmdlIGFjY291bnQgbnVtYmVyIGlucHV0IGJ5IHRoZSB1c2VyCiAqCiAqIE9VVFBVVAogKiAgIE1lc3NhZ2UgaW5kaWNhdGluZyBpZiB0aGUgbnVtYmVyIGlzIHZhbGlkIG9yIGludmFsaWQKICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRnVuY3Rpb24gcHJvdG90eXBlCmJvb2wgbGluZWFyU2VhcmNoKGNvbnN0IGludFtdLCBpbnQsIGludCk7CgppbnQgbWFpbigpIHsKICAgIC8vIExpc3Qgb2YgdmFsaWQgY2hhcmdlIGFjY291bnQgbnVtYmVycwogICAgY29uc3QgaW50IFNJWkUgPSAxODsKICAgIGludCB2YWxpZEFjY291bnRzW1NJWkVdID0gewogICAgICAgIDU2NTg4NDUsIDQ1MjAxMjUsIDc4OTUxMjIsIDg3Nzc1NDEsIDg0NTEyNzcsIDEzMDI4NTAsCiAgICAgICAgODA4MDE1MiwgNDU2MjU1NSwgNTU1MjAxMiwgNTA1MDU1MiwgNzgyNTg3NywgMTI1MDI1NSwKICAgICAgICAxMDA1MjMxLCA2NTQ1MjMxLCAzODUyMDg1LCA3NTc2NjUxLCA3ODgxMjAwLCA0NTgxMDAyCiAgICB9OwogICAgCiAgICBpbnQgdXNlckFjY291bnQ7IC8vIFVzZXItZW50ZXJlZCBhY2NvdW50IG51bWJlcgogICAgCiAgICAvLyBQcm9tcHQgdGhlIHVzZXIgdG8gZW50ZXIgYW4gYWNjb3VudCBudW1iZXIKICAgIGNvdXQgPDwgIkVudGVyIGEgY2hhcmdlIGFjY291bnQgbnVtYmVyOiAiOwogICAgY2luID4+IHVzZXJBY2NvdW50OwogICAgCiAgICAvLyBTZWFyY2ggZm9yIHRoZSBhY2NvdW50IG51bWJlciBpbiB0aGUgYXJyYXkKICAgIGlmIChsaW5lYXJTZWFyY2godmFsaWRBY2NvdW50cywgU0laRSwgdXNlckFjY291bnQpKSB7CiAgICAgICAgY291dCA8PCAiVGhlIGFjY291bnQgbnVtYmVyIGlzIHZhbGlkLiIgPDwgZW5kbDsKICAgIH0gZWxzZSB7CiAgICAgICAgY291dCA8PCAiVGhlIGFjY291bnQgbnVtYmVyIGlzIGludmFsaWQuIiA8PCBlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXJTZWFyY2ggICAgICAgICAgICAgICAgICAgICAgICAgKgogKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgbGluZWFyIHNlYXJjaCBvbiBhbiBpbnRlZ2VyIGFycmF5ICoKICogdG8gZmluZCBhIHNwZWNpZmllZCB2YWx1ZS4gUmV0dXJucyB0cnVlIGlmIGZvdW5kOyAgICAgICAgICoKICogb3RoZXJ3aXNlLCByZXR1cm5zIGZhbHNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpib29sIGxpbmVhclNlYXJjaChjb25zdCBpbnQgYXJyYXlbXSwgaW50IHNpemUsIGludCB2YWx1ZSkgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKICAgICAgICBpZiAoYXJyYXlbaV0gPT0gdmFsdWUpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAvLyBWYWx1ZSBmb3VuZCwgcmV0dXJuIHRydWUKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7IC8vIFZhbHVlIG5vdCBmb3VuZCwgcmV0dXJuIGZhbHNlCn0K