• Due?Dec 14?by?11:59pm
    • Points?100
    • Submitting?a file upload
    • Available?Sep 9 at 12am – Dec 14 at 11:59pm?3 months
?
?
?

The American Equities investment company offers a wide range of investment opportunities ranging from mutual funds to bonds. Investors can check the value of their portfolio from the American Equities’ web page. Information about personal portfolios is protected via encryption and can only be accessed using a password. The American Equities company requires that a password consist of 8 characters, 5 of which must be letters and the other 3 digits. The letters and digits can be arranged in any order. For example,
rt56AA7q
123actyN
1Lo0Dwa9 myNUM741
are all valid passwords. However, the following are all invalid:
the476NEw // It contains more than 8 characters (also more than 5
// letters)
be68moon // It contains less than 3 digits.
$retrn99 // It contains only 2 digits and has an invalid character (‘$’)
American Equities needs a program for their web page that determines whether or not an entered password is valid.? The code is below.?

Exercise 1: Fill in the code in bold and then run the program several times with both valid and invalid passwords. Read through the program and make sure you understand the logic of the code.
Exercise 2: Alter the program so that a valid password consists of 10 charac- ters, 6 of which must be digits and the other 4 letters.
Exercise 3: Adjust your program from Exercise 2 so that only lower case letters are allowed for valid passwords.

// This program tests a password for the American Equities
// web page to see if the format is correct
// Place Your Name Here
#include <iostream>
#include <cctype>
#include <cstring>
using namespace std;
//function prototypes
bool testPassWord(char[]);

int countLetters(char*);

int countDigits(char*);
int main()
{
char passWord[20];
cout << “Enter a password consisting of exactly 5 ” << “letters and 3 digits:” << endl;
cin.getline(passWord,20);
if (testPassWord(passWord))
cout << “Please wait – your password is being verified” << endl;
else
{
}
cout << “Invalid password. Please enter a password “
<< “with exactly 5 letters and 3 digits” << endl;
cout << “For example, my37RuN9 is valid” << endl;
// Fill in the code that will call countLetters and
// countDigits and will print to the screen both the number of
// letters and digits contained in the password.
return 0;
}

//**************************************************************
// testPassWord
//
// task: determines if the word in the character array passed to it, contains exactly 5 letters and 3 digits.
// data in: a word contained in a character array data returned: true if the word contains 5 letters & 3
// digits, false otherwise
//
//**************************************************************
bool testPassWord(char custPass[])
{
int numLetters, numDigits, length;
length = strlen(custPass);
numLetters = countLetters(custPass);
numDigits = countDigits(custPass);
if (numLetters == 5 && numDigits == 3 && length == 8 )
return true;
else
return false;
}
// the next 2 functions are from Sample Program 10.5
//**************************************************************
// countLetters
//
// task: counts the number of letters (both
// capital and lower case)in the string
// data in: a string
// data returned: the number of letters in the string
//
//**************************************************************
int countLetters(char *strPtr)
{
int occurs = 0;
while(*strPtr != ‘\0’)
{
if (isalpha(*strPtr))
occurs++;
strPtr++;
}
return occurs;
}

//**************************************************************
// countDigits
//
// task: counts the number of digits in the string
// data in: a string
// data returned: the number of digits in the string
//
//**************************************************************
int countDigits(char *strPtr)
{
int occurs = 0;
while(*strPtr != ‘\0’)
{
if (isdigit(*strPtr)) // isdigit determines if
// the character is a digit
occurs++;
strPtr++;
}
return occurs;
}