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

This Lab 3 asks you to make two revisions to the program you wrote for Lab2. The

ID: 3869906 • Letter: T

Question

This Lab 3 asks you to make two revisions to the program you wrote for Lab2.

The revisions are as follows

1) The first modification is to add a protected data member to the personType class. named contact_Info. This data member is an instance of a new class named contact_infoType(defined below)

2) Change the data structure that stores the membershipTypes from an array to a vector.

Combine your specification, implementation and driver files. Submit a working application in the space provided below. Remember to append your output at the end as a comment.

You can use the code below to declare your vector of membershipTypes and to declare an iterator i to index this array.

driver code

#include <iostream>

#include <fstream>

#include "personType.h"

#include <string>

#include <vector>

using namespace std;

int main()

{

membershipType members[6]; // vector of membershipTypes

string x, i1, i2;

ifstream myfile;

myfile.open("infile.txt");

for (int i = 0; i < 6; i++)

{

myfile >> members[i].lastName >> members[i].firstName >> members[i].personNum >>

members[i].personID >> members[i].address.streetAddressNum >>

members[i].address.streetName >> members[i].address.streetType >> members[i].address.city >> members[i].address.stateInitials >> members[i].address.zipCode >> members[i].gender;

myfile >> i1 >> i2;

myfile >> members[i].membership_status;

myfile >> members[i].membership_type;

members[i].setInterest1(i1);

members[i].setInterest2(i2);

members[i].print_membership_type();

}

myfile.close();

system("pause");

return 0;

}

specification code

#include <iostream>

#include <string>

using namespace std;

class addressType { //class defintions and prototypes member variables

public:

addressType();

string streetAddressNum, streetName, streetType, city, stateInitials;

int zipCode;

};

class personType

{

public:

personType();

string firstName;

string lastName;

int personNum;

char gender;

int personID;

addressType address;

void setInterest1(string interest1);//mutator

void setInterest2(string interest2);

void printPerson();

string GetInterest1() const; // Accessor

string GetInterest2() const;

private:

string SetInterest1;

string SetInterest2;

protected:

class contact_infoType

{

public:

string get_emailAddress;

private:

string emailAddress;

string phoneNumber;

string userName;

string password;

};

};

//define membershipType class

class membershipType :public personType

{

public:

char membership_type;

char membership_status;

membershipType(); // 1st constructor

membershipType(char, char); // 2nd constructor

void print_membership_type();

};

implntation code

#include "personType.h"

personType::personType()

{

int personNum = 0;

int personID = 0;

}

addressType::addressType() {

int zipCode = 0;

}

void personType::setInterest1(string interest1) {

SetInterest1 = interest1;

}//mutator

void personType::setInterest2(string interest2) {

SetInterest2 = interest2;

}

string personType:: GetInterest1() const

{

return SetInterest1;

}// Accessor

string personType:: GetInterest2() const {

return SetInterest2;

}

void personType :: printPerson() {//constructor

cout << firstName << " " << lastName << " " << gender << " " <<

personID << " " << address.streetAddressNum << " "

<< address.streetName << " " << address.streetType

<< " " << address.city << " " << address.stateInitials

<< " " << address.zipCode << " " << SetInterest1 << " " << SetInterest2 << endl;

}

membershipType::membershipType() {

membership_type = ' ';

membership_status = ' ';

}

membershipType::membershipType(char set_type,char set_type2) {

membership_type = set_type;

membership_status = set_type2;

}

void membershipType::print_membership_type()

{

static int counter = 1;

if (counter <= 6) {

cout<<counter<<"." << firstName <<","<< endl;

cout << "Personal ID:" << personID << endl;

cout << "MembershipStatus:" << membership_status << endl;

cout << "MembershipType:" << membership_type << endl;

cout << "Interests" << GetInterest1() << GetInterest2() << endl;

cout << address.streetAddressNum << address.streetName << address.streetType << address.city <<

address.city << address.stateInitials << address.zipCode << endl;

cout << endl;

cout << endl;

cout << endl;

counter++;

}

}

Explanation / Answer

declaration code:

#include <iostream>

#include <string>

using namespace std;

class addressType { //class defintions and prototypes member variables

public:

addressType();

string streetAddressNum, streetName, streetType, city, stateInitials;

int zipCode;

};

class contact_infoType {

public:

contact_infoType();

string get_emailAddress;

private:

string emailAddress;

string phoneNumber;

string userName;

string password;

};

class personType {

public:

personType();

string firstName;

string lastName;

int personNum;

char gender;

int personID;

addressType address;

void setInterest1(string interest1);//mutator

void setInterest2(string interest2);

void printPerson();

string GetInterest1() const; // Accessor

string GetInterest2() const;

private:

string SetInterest1;

string SetInterest2;

protected:

contact_infoType contact_Info;

};

class membershipType :public personType

{

public:

char membership_type;

char membership_status;

membershipType(); // 1st constructor

membershipType(char, char); // 2nd constructor

void print_membership_type();

};



implmementation code:

#include "personType.h"

// AddressType functions

addressType::addressType() {

int zipCode = 0;

}

contact_infoType::contact_infoType() {

get_emailAddress = "";

emailAddress = "";

phoneNumber = "";

userName = "";

password = "";

}

// PersonType functions

personType::personType()

{

int personNum = 0;

int personID = 0;

}

void personType::setInterest1(string interest1) {

SetInterest1 = interest1;

}//mutator

void personType::setInterest2(string interest2) {

SetInterest2 = interest2;

}

void personType :: printPerson() {//constructor

cout << firstName << " " << lastName << " " << gender << " " <<

personID << " " << address.streetAddressNum << " "

<< address.streetName << " " << address.streetType

<< " " << address.city << " " << address.stateInitials

<< " " << address.zipCode << " " << SetInterest1 << " " << SetInterest2 << endl;

}

string personType:: GetInterest1() const

{

return SetInterest1;

}// Accessor

string personType:: GetInterest2() const {

return SetInterest2;

}

// membershipType functions

membershipType::membershipType() {

membership_type = ' ';

membership_status = ' ';

}

membershipType::membershipType(char set_type,char set_type2) {

membership_type = set_type;

membership_status = set_type2;

}

void membershipType::print_membership_type()

{

static int counter = 1;

if (counter <= 6) {

cout<<counter<<"." << firstName <<","<< endl;

cout << "Personal ID:" << personID << endl;

cout << "MembershipStatus:" << membership_status << endl;

cout << "MembershipType:" << membership_type << endl;

cout << "Interests" << GetInterest1() << GetInterest2() << endl;

cout << address.streetAddressNum << address.streetName << address.streetType << address.city <<

address.city << address.stateInitials << address.zipCode << endl;

cout << endl;

cout << endl;

cout << endl;

counter++;

}

}

// Driver code:

#include <iostream>

#include <fstream>

#include "personType.h"

#include <string>

#include <vector>

using namespace std;

int main()

{

vector <membershipType> members; // vector of membershipTypes

string x, i1, i2;

ifstream myfile;

myfile.open("infile.txt");

for (int i = 0; i < 6; i++)

{

// create a temporary member

membershipType m;

myfile >> m.lastName >> m.firstName >> m.personNum >>

m.personID >> m.address.streetAddressNum >>

m.address.streetName >> m.address.streetType >> m.address.city >> m.address.stateInitials >> m.address.zipCode >> m.gender;

myfile >> i1 >> i2;

myfile >> m.membership_status;

myfile >> m.membership_type;

m.setInterest1(i1);

m.setInterest2(i2);

// add this member to vector

members.push_back(m);

}

vector <membershipType>::iterator i;

for(i = members.begin(); i != members.end(); ++i) {

member m = *i;

m.print_membership_type();

}

myfile.close();

system("pause");

return 0;

}

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