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

Please help. Language should be simple c++. Do not change main. Please make the

ID: 3776478 • Letter: P

Question

Please help. Language should be simple c++. Do not change main. Please make the program simple. Thank you

Implement class Day which represents a day of the week. Overload operator+=, operator-=, operator++ (prefix), and operator-- (prefix), and operator<< as described below. use c++ language only. use only #include <iostream> library.

int main()
{
        Day today = Day::WEDNESDAY;
        std::cout << today << std::endl; // "Wednesday"

        Day generic_day; // default constructor-- default day is Sunday
        std::cout << generic_day << std::endl; // "Sunday"

        ++generic_day;
        std::cout << generic_day << std::endl; // "Monday"

        today += 5;
        std::cout << today << std::endl; // "Monday"

        today -= 1;
        std::cout << today << std::endl; // "Sunday"

        return 0;
}

Explanation / Answer

class Day
{
   public:
   char *day;
   int index;
     
     
   Day()
   {
      day="Sunday";
      index=0;
   }
   Day(char *d)
   {
      day=d;
     
      char *days[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
      for(int i=0;i<7;i++)
          if(d==days[i])
          {
               index=i;
               break;
       }
   }
      
   Day operator +=(int n)
   {
      if(n<=6 && n>=0)
      {
           char *days[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
           if((index+n) > 6) index=n-index;
           else index=index+n;
          
           day=days[index];
      }
   }
   Day operator ++()
   {
      if(index<6) index++;
      else index=0;
       char *days[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
       day=days[index];
     
     
     
   }
   Day operator --()
   {
      if(index>0) index--;
      else index=6;
       char *days[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
       day=days[index];
     
     
     
   }
   Day operator -=(int n)
   {
      if(n<=6 && n>=0)
      {
           char *days[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
           if((index-n) >= 0) index=index-n;
           else index=6-n;
          
           day=days[index];
      }
     
   }
   friend istream& operator>>(istream& os, Day c);
friend ostream& operator<<(ostream& os, const Day&c);
     
};
istream &operator >> (istream &in, Day a){
  
       in >> a.day;
       return in;
   }

ostream &operator <<(std::ostream& out, const Day& a){
  
           out << a.day;
           return out;
}

int main()
{
Day today("Wednesday");
std::cout << today << std::endl; // "Wednesday"

Day generic_day; // default constructor-- default day is Sunday
std::cout << generic_day << std::endl; // "Sunday"

++generic_day;
std::cout << generic_day << std::endl; // "Monday"

today += 5;
std::cout << today << std::endl; // "Monday"

today -= 1;
std::cout << today << std::endl; // "Sunday"

return 0;
}