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;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.