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;
}