Question: The code I have so far is below (C++): WitPerson.cpp #include #include #include using namespace std; #include WitPerson.h //Initialization WitPerson::WitPerson() { WitPerson::Name = Default; WitPerson::Addr

 The code I have so far is below (C++): WitPerson.cpp #include

The code I have so far is below (C++):

WitPerson.cpp

#include

#include

#include

using namespace std;

#include "WitPerson.h"

//Initialization

WitPerson::WitPerson() {

WitPerson::Name = "Default";

WitPerson::Addr = "Default";

WitPerson::Wnum = "0";

WitPerson::Category = "Unknown";

WitPerson::Role = "Unknown";

}

//Constructor

WitPerson::WitPerson(string name, string addr, string wNum, string role) {

WitPerson::Name = name;

WitPerson::Addr = addr;

WitPerson::Wnum = wNum;

WitPerson::Role = role;

}

//Copy Constructor

WitPerson::WitPerson(const WitPerson &person) {

Name = person.Name;

Addr = person.Addr;

Wnum = person.Wnum;

Category = person.Category;

Role = person.Role;

}

//Destructor

WitPerson::~WitPerson(void) {

//delete this;

}

//stream insertion operator

ostream& operator

strm

strm

strm

strm

return strm;

}

//stream extraction operator

istream& operator >> (istream& in, WitPerson&c)

{

cout

in >> c.Name;

cout

in >> c.Addr;

cout

in >> c.Wnum;

cout

in >> c.Role;

return in;

}

ofstream& operator

{

ofs

return ofs;

}//end ofstream

ifstream& operator >> (ifstream& ifs, WitPerson &src)

{

string record;

while (getline(ifs, record))

{

int index = record.find('/');

src.Name = record.substr();

}

return ifs;

}//end ifstream

//initialize overloaded operator

WitPerson& WitPerson::operator=(const WitPerson &Person) {

if (this != &Person) {

Name = Person.Name;

Addr = Person.Addr;

Wnum = Person.Wnum;

Category = Person.Category;

Role = Person.Role;

}

return *this;

}

WitPerson.h

#ifndef WITPERSON_H

#define WITPERSON_H

class WitPerson {

friend ostream& operator

friend istream& operator >> (istream&, WitPerson&);

friend ofstream& operator

friend ifstream& operator >> (ifstream&, WitPerson &);

public:

WitPerson();

WitPerson(string name, string addr, string wNum, string role);

~WitPerson(void);

string getName(void) const { return Name; };

string getAddr(void) const { return Addr; };

string getWnum(void) const { return Wnum; };

string getCategory(void) const { return Category; };

string getRole(void) const { return Role; };

private:

WitPerson(const WitPerson &person);

WitPerson& operator=(const WitPerson&);

string Name;

string Addr;

string Wnum;

string Category;

string Role;

};

#endif

Source.cpp

#include

#include

#include

#include

using namespace std;

#include "WitPerson.h"

void addUser(WitPerson people[], int index, string role);

void User() { cout

int main() {

string name, address, wNumber, role;

WitPerson *people = new WitPerson[8];

vector dest;

//Manual

int size = 0;

int user_choice;

do {

cout

cin >> user_choice;

cin.ignore();

switch (user_choice) {

case 1:

addUser(people, size, role);

size++;

break;

case 2:

addUser(people, size, role);

size++;

break;

case 3:

addUser(people, size, role);

size++;

break;

case 4:

cout

for (int i = 0; i

cout

cout

cout

cout

cout

}

break;

default:

cout

for (int i = 0; i

cout

cout

cout

cout

cout

}

return 0;

} //switch end

} while (size

cout

for (int i = 0; i

cout

cout

cout

cout

cout

}

return 0;

}

void addUser(WitPerson people[], int index, string role) {

/*string name;

string address;

string wNumber;

cin >> name;

cin >> address;

cin >> wNumber;*/

string user_info;

cout

getline(cin, user_info);

cin.ignore();

//tokenize string

string token;

size_t commaPos;

int counter = 0;

while (user_info.size() != 0)

{

commaPos = user_info.find(",");

if (commaPos != string::npos)

{

token = user_info.substr(0, commaPos);

user_info = user_info.substr(commaPos + 1);

counter++;

if (counter == 1)

{

cin >> people[counter].getName();

counter++;

}//end 1st nested if

else if (counter == 2)

{

cin >> people[counter].getAddr();

counter++;

}//end 2nd nested if

else if (counter == 3)

{

cin >> people[counter].getWnum();

counter++;

}//end 3rd nested if

else if (counter == 4)

{

cin >> people[counter].getRole();

counter++;

}//end 4th nested if

} //end whole if statement

else

{

token = user_info;

user_info = "";

}

//WitPerson person = new WitPerson(c1, c2, c3, role);

//people[index] = *p;

} //end while loop

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!