#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class Car
{
private:
string reportingMark;
int carNumber;
string kind;
bool loaded;
string destination;
public:
Car();
Car(const Car& obj);
Car(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest);
~Car()
{ };
void setReportingMark(string rMark)
{ reportingMark = rMark;}
void setCarNumber(int cNumber)
{ carNumber = cNumber;}
void setKind(string knd)
{ kind = knd;}
void setLoaded(bool load)
{ loaded = load;}
void setDestination(string dest)
{ destination = dest;}
string getReportingMark() const
{ return reportingMark;}
int getCarNumber() const
{ return carNumber;}
string getKind() const
{ return kind;}
bool getLoaded() const
{ return loaded;}
string getDestination() const
{ return destination;}
void output();
friend bool operator == (const Car &left, const Car &right);
};
void input(string &rMark, int &cNumber, string &knd, bool &load, string &dest);
int main()
{
string rMark;
int cNumber;
string knd;
bool load;
string dest;
input(rMark, cNumber, knd, load, dest);
Car car1(rMark, cNumber, knd, load, dest);
Car car2(car1);
Car car3;
cout << "\nContents of car1:\n";
car1.output();
cout << "\nContents of car2:\n";
car2.output();
cout << "\nContents of car3:\n";
car3.output();
cout <<endl;
if (car1 == car2)
cout << "car1 is the same car as car2\n";
else
cout << "car1 is not the same car as car2\n";
if (car2 == car3)
cout << "car2 is the same car as car3\n";
else
cout << "car2 is not the same car as car3\n";
car2.setReportingMark ("UP");
car2.setCarNumber (81002);
car2.setKind ("box");
car2.setLoaded (true);
car2.setDestination ("Spokane");
cout<< "car 2 data" << endl;
car2.output();
return 0;
}
Car::Car()
{
reportingMark = "";
carNumber = 0;
kind = "other";
loaded = false;
destination = "NONE";
}
Car::Car(const Car &obj)
{
reportingMark = obj.reportingMark;
carNumber = obj.carNumber;
kind = obj.kind;
loaded = obj.loaded;
destination = obj.destination;
}
Car::Car(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest)
{
setUp(rMark, cNumber, knd, load, dest);
}
void Car::output()
{
cout << setw(18) << left << "reportingMark: " << reportingMark << endl;
cout << setw(18) << left << "carNumber: " << carNumber << endl;
cout << setw(18) << left << "kind: " << kind << endl;
cout << setw(18) << left << "loaded: ";
if (loaded)
cout << "true";
else
cout << "false";
cout << endl;
cout << setw(18) << left << "destination: " << destination;
cout << endl;
}
void Car::setUp(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest)
{
reportingMark = rMark;
carNumber = cNumber;
kind = knd;
loaded = load;
destination = dest;
}
void input(string &rMark, int &cNumber, string &knd, bool &load, string &dest)
{
int len; // Check a string of 5 or less characters
// Read all the data from the user
cout << "Enter reportingMark: ";
getline(cin, rMark);
len = rMark.length();
// Check length
while (len > 5)
{
cout << "Invalid! Enter reportingMark with 5 or less upper case characters: ";
cin >> rMark;
len = rMark.length();
}
for (int i = 0; i < int (rMark.length()); i++)
rMark[i] = toupper(rMark[i]);
cout << "Enter carNumber: ";
cin >> cNumber;
cout << "Enter kind (box, tank, flat or other): ";
cin >> knd;
cout << "Enter 'true' for load or 'false' for noload: ";
cin >> std::boolalpha >> load;
cin.ignore();
if (load)
{
cout << "Enter destination: ";
getline(cin, dest);
}
else
dest = "NONE";
}
// THIS CODE IS SHOWING ME ERRORS I DONT KNOW WHY. CAN SOMEONE HELP ME?
for setUp method the prototype was not included in the class.
void setUp(const string&, const int&, const string&, const bool&, const string&);
for operator == the body was not defined.
bool operator == (const Car &left, const Car &right)
{
return left.carNumber==right.carNumber;
}
working code
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class Car
{
private:
string reportingMark;
int carNumber;
string kind;
bool loaded;
string destination;
public:
Car();
Car(const Car& obj);
Car(const string &rMark, const int &cNumber, const
string &knd, const bool &load, const string
&dest);
void setUp(const string&, const int&, const string&,
const bool&, const string&);
~Car()
{ };
void setReportingMark(string rMark)
{ reportingMark = rMark;}
void setCarNumber(int cNumber)
{ carNumber = cNumber;}
void setKind(string knd)
{ kind = knd;}
void setLoaded(bool load)
{ loaded = load;}
void setDestination(string dest)
{ destination = dest;}
string getReportingMark() const
{ return reportingMark;}
int getCarNumber() const
{ return carNumber;}
string getKind() const
{ return kind;}
bool getLoaded() const
{ return loaded;}
string getDestination() const
{ return destination;}
void output();
friend bool operator == (const Car &left, const Car &right);
};
bool operator == (const Car &left, const Car
&right)
{
return left.carNumber==right.carNumber;
}
void input(string &rMark, int &cNumber, string &knd,
bool &load, string &dest);
int main()
{
string rMark;
int cNumber;
string knd;
bool load;
string dest;
input(rMark, cNumber, knd, load, dest);
Car car1(rMark, cNumber, knd, load, dest);
Car car2(car1);
Car car3;
cout << "\nContents of car1:\n";
car1.output();
cout << "\nContents of car2:\n";
car2.output();
cout << "\nContents of car3:\n";
car3.output();
cout <<endl;
if (car1 == car2)
cout << "car1 is the same car as car2\n";
else
cout << "car1 is not the same car as car2\n";
if (car2 == car3)
cout << "car2 is the same car as car3\n";
else
cout << "car2 is not the same car as car3\n";
car2.setReportingMark ("UP");
car2.setCarNumber (81002);
car2.setKind ("box");
car2.setLoaded (true);
car2.setDestination ("Spokane");
cout<< "car 2 data" << endl;
car2.output();
return 0;
}
Car::Car()
{
reportingMark = "";
carNumber = 0;
kind = "other";
loaded = false;
destination = "NONE";
}
Car::Car(const Car &obj)
{
reportingMark = obj.reportingMark;
carNumber = obj.carNumber;
kind = obj.kind;
loaded = obj.loaded;
destination = obj.destination;
}
Car::Car(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest)
{
setUp(rMark, cNumber, knd, load, dest);
}
void Car::output()
{
cout << setw(18) << left << "reportingMark: " << reportingMark << endl;
cout << setw(18) << left << "carNumber: " << carNumber << endl;
cout << setw(18) << left << "kind: " << kind << endl;
cout << setw(18) << left << "loaded: ";
if (loaded)
cout << "true";
else
cout << "false";
cout << endl;
cout << setw(18) << left << "destination: " << destination;
cout << endl;
}
void Car::setUp(const string &rMark, const int &cNumber, const string &knd, const bool &load, const string &dest)
{
reportingMark = rMark;
carNumber = cNumber;
kind = knd;
loaded = load;
destination = dest;
}
void input(string &rMark, int &cNumber, string &knd, bool &load, string &dest)
{
int len; // Check a string of 5 or less characters
// Read all the data from the user
cout << "Enter reportingMark: ";
getline(cin, rMark);
len = rMark.length();
// Check length
while (len > 5)
{
cout << "Invalid! Enter reportingMark with 5 or less upper case characters: ";
cin >> rMark;
len = rMark.length();
}
for (int i = 0; i < int (rMark.length()); i++)
rMark[i] = toupper(rMark[i]);
cout << "Enter carNumber: ";
cin >> cNumber;
cout << "Enter kind (box, tank, flat or other): ";
cin >> knd;
cout << "Enter 'true' for load or 'false' for noload: ";
cin >> std::boolalpha >> load;
cin.ignore();
if (load)
{
cout << "Enter destination: ";
getline(cin, dest);
}
else
dest = "NONE";
}
please upvote if it helped.Feel free to ask any query
#include <iostream> #include <string> #include <iomanip> using namespace std; class Car { private: string reportingMark; int...