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
#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
//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
Get step-by-step solutions from verified subject matter experts
