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

C++ version 2017 So I am having some problems with this program I am not sure wh

ID: 3881375 • Letter: C

Question

C++ version 2017

So I am having some problems with this program I am not sure what I am doing wrong but any help would be helpfull If someone can look over the code and see where the errors and help me change them or whatever it takes.

It started to have to errors at first then ended up as 7 when i tried to run it

Month Month::operator ++();

Month Month::operator --();

Thanks for the Help! :)

#include<iostream>

#include<string>

using namespace std;

class Month

{

private:

int monthNumber;

string name;

public:

Month();

~Month();

Month()

{

monthNumber = 1;

name = " January";

}

Month(string nm)

{

name = nm; //nm*= number of month

setNumber(name);

}

Month(int number)

{

if (number >= 1 && number <= 12)

{

monthNumber = number;

}

setName(monthNumber);

}

void setName(int number)

{

// Name's of Months with corresponding month numbers

if (number == 1)

name = "January";

else if (number == 2)

name = "February";

else if (number == 3)

name = "March";

else if (number == 4)

name = "April";

else if (number == 5)

name = "May";

else if (number == 6)

name = "June";

else if (number == 7)

name = "July";

else if (number == 8)

name = "August";

else if (number == 9)

name = "September";

else if (number == 10)

name = "October";

else if (number == 11)

name = "November";

else

name = "December";

}

void setNumber(string nm)

{

// Number of the Months

if (nm== "January")

monthNumber = 1;

else if (nm== "February")

monthNumber = 2;

else if (nm== "March")

monthNumber = 3;

else if (nm== "April")

monthNumber = 4;

else if (nm== "May")

monthNumber = 5;

else if (nm== "June")

monthNumber = 6;

else if (nm== "July")

monthNumber = 7;

else if (nm== "August")

monthNumber = 8;

else if (nm== "September")

monthNumber = 9;

else if (nm== "October")

monthNumber = 10;

else if (nm== "November")

monthNumber = 11;

else

monthNumber = 12;

}

int getNumber()

{

return monthNumber;

}

string getName()

{

return name;

}

// Overloading Operators ++ -- of >> <<

// These two pieces of code are the error here

Month Month::operator ++();

Month Month::operator --();

//

friend ostream &operator<< (ostream &, const Month &);

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

};

Month Month::operator ++()

{

monthNumber++;

if (monthNumber == 13)

{

monthNumber = 1;

name = "January";

}

setName(monthNumber);

return *this;

}

Month Month::operator --()

{

monthNumber--;

if (monthNumber == 0)

{

monthNumber = 12;

name = " December";

}

setName(monthNumber);

return *this;

}

ostream &operator<<(ostream &str, const Month &obj)

{

str << " Detail I Month(s): Name:"

<< obj.name << " Number:" << obj.monthNumber << endl;

}

istream &operator>>(istream &str, Month &obj)

{

//Input

cout << " Enter Number of Month: ";

str >> obj.monthNumber;

cout << "Enter Month's Name: ";

str >> obj.name;

return str;

}

Month::Month()

{

}

Month::~Month()

{

}

// Main

int main()

{

//Declaring object

Month m1;

cout << "Input details: ";

cin >> m1;

//

m1++;

cout << m1;

//

m1--;

cout << m1;

system("PAUSE");

return 0;

}

Explanation / Answer

Below is your working code: -

#include<iostream>
#include<string>
using namespace std;

class Month {
private: int monthNumber;
string name;
public:
~Month();
Month() {
monthNumber = 1;
name = " January";
}
Month(string nm) {
name = nm;
setNumber(name);
}
Month(int number) {
if (number >= 1 && number <= 12) {
monthNumber = number;
}
setName(monthNumber);
}
void setName(int number) {
if (number == 1)
name = "January";
else if (number == 2)
name = "February";
else if (number == 3)
name = "March";
else if (number == 4)
name = "April";
else if (number == 5)
name = "May";
else if (number == 6)
name = "June";
else if (number == 7)
name = "July";
else if (number == 8)
name = "August";
else if (number == 9)
name = "September";
else if (number == 10)
name = "October";
else if (number == 11)
name = "November";
else
name = "December";
}
void setNumber(string nm) {
if (nm == "January")
monthNumber = 1;
else if (nm == "February")
monthNumber = 2;
else if (nm == "March")
monthNumber = 3;
else if (nm == "April")
monthNumber = 4;
else if (nm == "May")
monthNumber = 5;
else if (nm == "June")
monthNumber = 6;
else if (nm == "July")
monthNumber = 7;
else if (nm == "August")
monthNumber = 8;
else if (nm == "September")
monthNumber = 9;
else if (nm == "October")
monthNumber = 10;
else if (nm == "November")
monthNumber = 11;
else
monthNumber = 12;
}
int getNumber() {
return monthNumber;
}
string getName() {
return name;
}
Month operator++(int);
Month operator--(int);
friend ostream & operator << (ostream & ,
const Month & );
friend istream & operator >> (istream & , Month & );
};
Month Month::operator++(int) {
monthNumber++;
if (monthNumber == 13) {
monthNumber = 1;
name = "January";
}
setName(monthNumber);
return *this;
}
Month Month::operator--(int) {
monthNumber--;
if (monthNumber == 0) {
monthNumber = 12;
name = " December";
}
setName(monthNumber);
return *this;
}
ostream & operator << (ostream & str, const Month & obj) {
str << " Detail I Month(s): Name:" << obj.name << " Number:" << obj.monthNumber << endl;
}
istream & operator >> (istream & str, Month & obj) {
cout << " Enter Number of Month: ";
str >> obj.monthNumber;
cout << "Enter Month's Name: ";
str >> obj.name;
return str;
}

Month::~Month() {}
int main() {
Month m1;
cout << "Input details: ";
cin >> m1;
m1++;
cout << m1;
m1--;
cout << m1;
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