Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Background: In C++, string handling can be kinda challenging. But this topic pre

ID: 3763894 • Letter: B

Question

Background:

In C++, string handling can be kinda challenging. But this topic pretty much summarizes all the things we have seen far so I think it makes for a very worthwhile assignment.

The class string in C++ provides us many use features including:

a constructor that converts c-strings into string objects; as in:   
char * cstr = "Hello";
string s( cstr );

a converting to produce a c-string from a string object; as in:
char * cstr = s.c_str( );

a member that tells us the strings length; as in:
int len = s.length( );

a member that produces a letter; as in:
char c = s.at( 5 );

an operator that combines strings; as in:
string u = s + t;

With this assignment, I hope you'll get a chance to experiment with all these different features.

Project 1: Username and Password Validator

Create a C++ class which, when fed a username and password, can validate that the username and password meets the following criteria:

The username should:

- have at least 8 characters long
- contains only alpha numeric characters (no spaces or special characters)
- contain at least 1 uppercase character
- contain at least 1 lowercase character
- contain at least 1 numeric character (0-9)

The password should:

- not contain a user’s username (i.e. the username “CraigKapp1? is valid, but if that user has the password “CraigKapp1Password”, this password would not be valid because it contains the string “CraigKapp1?)
- be at least 8 characters long
- only contain alpha numeric characters (no spaces or special characters)
- contain at least 1 uppercase character
- contain at least 1 lowercase character
- contain at least 1 numeric character (0-9)

HINT: For this assignment, a very useful library of helper functions are available when you say:   #include <cctype>   which is documented for you here.

A number of different program dialogues describe the program I am looking for.

CS52 Username/Password Validator
Username: SmcCorsair1
Password: GoDodgers1
The Username/Password combination is valid!

CS52 Username/Password Validator
Username: SmcCorsair
Password: GoDodgers1
The Username requires numeric character

CS52 Username/Password Validator
Username: smccorsair1
Password: GoDodgers1
The Username requires an uppercase character

CS52 Username/Password Validator
Username: SMCCORSAIR1
Password: GoDodgers1
The Username requires an lowercase character

CS52 Username/Password Validator
Username: corsair
Password: GoDodgers1
The Username requires atleast 8 letters

CS52 Username/Password Validator
Username: SmcCorsair1
Password: aaSmcCorsair1aa
The Password cannot contain the Username

CS52 Username/Password Validator
Username: SmcCorsair1
Password: gododgers1
The Password requires an uppercase character

CS52 Username/Password Validator
Username: SmcCorsair1
Password: GODODGERS1
The Password requires an lowercase character

CS52 Username/Password Validator
Username: SmcCorsair1
Password: Smc1
The Password requires atleast 8 letters


Following the diagrams show below, create the class UsernamePasswordValidator.

UsernamePasswordValidator Sample Driver Code UsernamePasswordvalidator upv: string user, pass: char * badp a 33word = "data char * goodpa33word = "goodPa33word1"; UsernamePasswordValidator cout

Explanation / Answer

Program:

#include <iostream>
#include<string>
#include<cstring>
using namespace std;

int main() {
string uname,password;
int unameAlphaFlag=0,passwordAlphaFlag=0;
int unameLengthFlag=0,passwordLengthFlag=0;
int unameUpperFlag=0,unameLowerFlag=0,unameNumFlag=0;
int passwordUpperFlag=0,passwordLowerFlag=0,passwordNumFlag=0;
   cout<<"CS52 Username/Password Validator";
   cout<<" Username: ";
cin>>uname;
cout<<" Password: ";
cin>>password;
if(uname.length() >=8)
unameLengthFlag=1;
if(password.length() >= 8)
passwordLengthFlag=1;
   return 0;
const char *c=uname.c_str();
for(int i=0;i<uname.length();i++)
{
if(c[i]>= 'A' && c[i]<='Z' )
unameUpperFlag=1;
else if(c[i]>='a' && c[i]<='z' )
       unameLowerFlag=1;
else if(c[i]>='0' && c[i]<='9' )
unameNumFlag=1;
}
if(unameUpperFlag && unameLowerFlag && unameNumFlag)
unameAlphaFlag=1;
const char *c2=password.c_str();
for(int i=0;i<password.length();i++)
{
if(c2[i]>= 'A' && c2[i]<='Z' )
passwordUpperFlag=1;
else if(c2[i]>='a' && c2[i]<='z' )
       passwordLowerFlag=1;
else if(c2[i]>='0' && c2[i]<='9' )
passwordNumFlag=1;
}
if(passwordUpperFlag && passwordLowerFlag && passwordNumFlag)
passwordAlphaFlag=1;
if(passwordAlphaFlag && unameAlphaFlag && passwordLengthFlag && unameLengthFlag )
cout<<" The Username/Password combination is valid!";
else
{
if(unameNumFlag==0)
{
cout<<" The Username requires numeric character";
}
if(passwordNumFlag==0)
{
cout<<" The Password requires numeric character";
}
if(unameUpperFlag==0)
{
cout<<" The Username requires an uppercase character";
}
if(passwordUpperFlag==0)
{
cout<<" The Password requires an uppercase character";
}
if(unameLowerFlag==0)
{
cout<<" The Username requires an lowercase character";
}
if(passwordLowerFlag==0)
{
cout<<" The Password requires an lowercase character";
}
if(unameLengthFlag==0)
{
cout<<" The Username requires atleast 8 letter";
}
if(passwordLengthFlag==0)
{
cout<<" The Password requires atleast 8 letters";
}

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote