These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction of bibliographies out of text citations and references. 
            Students may use these solutions for personal skill-building and practice. 
            Unethical use is strictly forbidden.
          
 #include "Month.h"
/**
 * A default constructor that sets monthNumber to 1 and name to January.
 */
Month::Month() {
     monthNumber = 1;
     month = "January";
}
/**
 * A constructor that accepts the name of the month as an argument. 
 * It should set name to the value passed as the argument 
 * and set monthNumber to the correct value.
 * @param name
 */
Month::Month(string month) {
     setMonth(month);
}
/**
 * A constructor that accepts the number of the month as an argument. 
 * It should set monthNumber to the value passed as the argument
 * and set name to the correct month name
 * @param number
 */
Month::Month(int number) {
     setMonthNumber(number);
}
Month::Month(const Month& o) {
     month = o.month;
     monthNumber = o .monthNumber;
}
Month::~Month() {
}
int Month::getMonthNumber() const {
     return monthNumber;
}
string Month::getMonth() const {
     return month;
}
void Month::setMonthNumber(int number) {
     string n [] = {"January", "February", "March", "April",
          "May", "June", "July", "August", "September", "November", "December"};
     if (number < 1 || number > 12) {
          monthNumber = 1;
          month = n[0];
     } else {
          monthNumber = number;
          month = n[number - 1];
     }
}
void Month::setMonth(string month) {
     string n [] = {"January", "February", "March", "April",
          "May", "June", "July", "August", "September", "November", "December"};
     this->month = n[0];
     monthNumber = 1;
     for (int i = 0; i < 12; i++) {
          if (month == n[i]) {
                this->month = n[i];
                monthNumber = i + 1;
                break;
          }
     }
}
Month& Month::operator++() {
     monthNumber++;
     if (monthNumber > 12) {
          monthNumber = 1;
     }
     month = numberToName(monthNumber);
     return *this;
}
Month Month::operator++(int) {
     Month tmp = *this;
     ++ * this;
     return tmp;
}
Month& Month::operator--() {
     monthNumber--;
     if (monthNumber < 1) {
          monthNumber = 12;
     }
     month = numberToName(monthNumber);
     return *this;
}
  
            This is only a preview of the solution.
            Please use the purchase button to see the entire solution.