SHARE
SPREAD
HELP

The Tradition of Sharing

Help your friends and juniors by posting answers to the questions that you know. Also post questions that are not available.


To start with, Sr2Jr’s first step is to reduce the expenses related to education. To achieve this goal Sr2Jr organized the textbook’s question and answers. Sr2Jr is community based and need your support to fill the question and answers. The question and answers posted will be available free of cost to all.

 

#
Authors:
Walter Savitch ,kenrick Mock
Chapter:
Separate Compilation And Namespaces
Exercise:
Programming Projects
Question:4 | ISBN:9780132846813 | Edition: 5

Question

You would like to verify the credentials of a user for your system. Listed next is a class named Security , which authenticates a user and password. (Note that this example is really not very secure. Typically passwords would be encrypted or stored in a database.)

class Security

{

public:

static int validate(string username, string password);

};


// This subroutine hard-codes valid users and is not

// considered a secure practice.

// It returns 0 if the credentials are invalid,

// 1 if valid user, and

// 2 if valid administrator


int Security::validate(string username, string password)

{

if ((username=="abbott") && (password=="monday")) return 1;

if ((username=="costello") && (password=="tuesday")) return 2;

return 0;

}

Break this class into two files, a file with the header Security.h and a file with the implementation Security.cpp.

Next, create two more classes that use the Security class by including the header file. The first class should be named Administrator and contain a function named Login that returns true if a given username and password have administrator clearance. The second class should be named User and contain a function named Login that returns true if a given username and password have either user or administrator clearance.

Both the User and Administrator classes should be split into separate files for the header and implementation.

Finally, write a main function that invokes the Login function for both the User and Administrator classes to test if they work properly. The main function should be in a separate file. Be sure to use the #ifndef directive to ensure that no header file is included more than once.


TextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbook

Sorry the answer is not available at the moment…

If you are able to find the answer, please make sure to post it here. So that your Juniors have smile on their lips and feel happy.

Spread the 'tradition of sharing'.