You will code, build, and execute a program requiring strings and pointers
You are developing a software package that requires users to enter their own passwords. The passwords must meet the software criteria:
The password should be at least 6 characters long
The password should contain at least one uppercase and one lowercase letter
The password should have at least one digit
Learning outcomes:
Be able to explain the need for strings
Be able to explain the way memory is allocated for arrays in a program.
Be able to explain the fact that arrays are objects in C++.
Be able to write a program that implements strings.
Deliverales
Section | Deliverable | Points |
Lab 5 | Step 5: Program Listing and Output | 30 |
All Steps | Total | 30 |
Lab Steps
Preparation:
If you are using the Citrix remote lab, follow the login instructions located on the iLab tab in Course Home.
Locate the Visual Studio icon and launch the application.
Step 1: Requirements |
You are developing a software package that requires users to enter their own passwords. Loop until the passwords meet the software criteria:
The password should be at least 6 characters long The password should contain at least one uppercase and one lowercase letter The password should have at least one digit The program should have an isValid function that will test if the password is valid. Use the following code to declare a password variable with a global constant int SIZE=80; char password[SIZE]; Next use a while(true) to continue looping until the user enters a valid password. Read in the password and call the isValid program. You can use the isupper(), islower(), and isdigit() functions. For example: if (isdigit(*password)) //if this is true, you know the password has at least one digit. Output from Program: Password requirements: – The password should be at least 6 characters long – The password should contain at least one uppercase – and one lowercase letter. – The password should have at least one digit. Enter a password: aaaaaaa The password was invalid Password requirements: – The password should be at least 6 characters long – The password should contain at least one uppercase – and one lowercase letter. – The password should have at least one digit. Enter a password: aBcdEfg The password was invalid Password requirements: – The password should be at least 6 characters long – The password should contain at least one uppercase – and one lowercase letter. – The password should have at least one digit. Enter a password: abc123D The password is valid |
Step 2: Processing Logic |
Using the pseudocode below, write the code that will meet the requirements.
Declare constants SIZE and MIN Function prototype for isValid Main Function
Declare the password as a character array. While true Display the password requirements Get password from user Call the isValid function Display results of isValid function isValid function Declare Boolean variables Use strlen command to determine the length of the password and if it is greater than MIN, set bool value to true Loop Test if password has a lowercase letter Test if password has an upperecase letter Test if password has a digit Go to next character (ie *password++;) End loop If all boolean values are true, return 1, else return 0 |
Step 3: Create a New Project |
Create a new project and name it LAB5. Write your code using the Processing Logic in Step 2. Make sure you save your program. |
Step 4: Compile and Execute |
Compile your program. Eliminate all syntax errors.
Build your program and verify the results of the program. Make corrections to the program logic if necessary until the results of the program execution are what you expect. its a C++ 170 program. |
Expert Answer
#include<iostream>
using namespace std;
const int SIZE = 80;
const int MIN = 6;
bool isValid(char[]);//declaration of function and passing char array
void main()
{
char *password;//dynamically allocating an array
int length;//to store the string length
password = new char[SIZE];
while (true)
{
cout << “Password requirements:”<<
“n- The password should be at least 6 characters long”<<
“n- The password should contain at least one uppercase”<<
“n- and one lowercase letter.”<<
“n- The password should have at least one digit.n”;
cout << “Enter a password : “;
cin >> password;
length = strlen(password);
if (length > MIN)
{
if (isValid(password))
{
cout << “password is valid ” << endl;
break;
}
}
else
{
cout << “Password is not Valid ” << endl;
continue;
}
}
delete[] password;//free allocated memory
}
bool isValid(char pass[])
{
bool aUpper = false,aLower = false, aDigit = false;
for (int i = 0; pass[i]; ++i)
if (isupper(pass[i]))
aUpper = true;
else if (islower(pass[i]))
aLower = true;
else if (isdigit(pass[i]))
aDigit = true;
if (aUpper && aLower && aDigit)
return true;
else
return false;
}
//output