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

Design a class called NumDays. The class\'s purpose is to store a value that rep

ID: 3843667 • Letter: D

Question

Design a class called NumDays. The class's purpose is to store a value that represents a number of work hours and convert it to a number of days. For example, 8 hours would be converted to 1 day, 12 hours would be converted to 1.5 days, and 18 hours would be converted to 2.25 days. The class should have a constructor that accepts a number of hours, as well as member functions for storing and retrieving the hours and days. The class should also have the following overloaded operators: + Addition operator When two NumDays objects are added together, the overloaded + operator should return the sum of the two objects' hours members. - Subtraction operator. When one NumDays object is subtracted from another, the overloaded - operator should return the difference of the two objects' hours members ++ Prefix and postfix increment operators. These operators should increment the number of hours stored in the object. When incremented, the number of days should be automatically recalculated. --Prefix and postfix decrement operators. These operators should decrement the number of hours stored in the object. When decremented, the number of days should be automatically recalculated.

Explanation / Answer


#include <iostream>
using namespace std;
class NumDays
{private:
   double hours;
   double days;
public:
       NumDays()
         {hours=0;
         days=0;
         }
       NumDays(double h)
         {hours=h;
         days=h/8;
         }
   void setHours(double h)
         {hours=h;
         days=h/8;
          }
   void setDays(double d)
         {days=d;
         hours=d*8;
         }     
   double getHours()
         {return hours;
         }
   double getDays()
         {return days;
         }
   NumDays NumDays::operator+ (NumDays &n)
{NumDays t;
t.setHours(hours+n.getHours());
   return t;
}
NumDays NumDays::operator- (NumDays &n)
{ NumDays t;
   t.setHours(hours-n.getHours());
   return t;
}
NumDays NumDays::operator++ ()
{hours++;
days=hours/8;
return *this;
}
NumDays NumDays::operator-- ()
{hours--;
days=hours/8;
return *this;
}
NumDays NumDays::operator++ (int)
{NumDays t(hours);
hours++;
days=hours/8;
return t;
}
NumDays NumDays::operator-- (int)
{NumDays t(hours);
hours--;
days=hours/8;
return t;
}
};

int main()
{
   NumDays a(10),b(20),c;
   cout<<"Initially ";
   cout<<"a="<<a.getDays()<<endl;
   cout<<"b="<<b.getDays()<<endl;
   c=a+b;
   cout<<"after c=a+b: c="<<c.getDays()<<endl;
   c=a-b;
   cout<<"after c=a-b: c="<<c.getDays()<<endl;
   c=a++;
   cout<<"after c=a++: a="<<a.getDays()<<", c="<<c.getDays()<<endl;
   c=++a;
   cout<<"after c=++a: a="<<a.getDays()<<", c="<<c.getDays()<<endl;
   c=a--;
   cout<<"after c=a--: a="<<a.getDays()<<", c="<<c.getDays()<<endl;
   c=--a;
   cout<<"after c=--a: a="<<a.getDays()<<", c="<<c.getDays()<<endl;  
   system("pause");
   return 0;
}


#include <iostream>
using namespace std;
class NumDays
{private:
   double hours;
   double days;
public:
       NumDays()
         {hours=0;
         days=0;
         }
       NumDays(double h)
         {hours=h;
         days=h/8;
         }
   void setHours(double h)
         {hours=h;
         days=h/8;
          }
   void setDays(double d)
         {days=d;
         hours=d*8;
         }     
   double getHours()
         {return hours;
         }
   double getDays()
         {return days;
         }
   NumDays operator+ (NumDays &);
   NumDays operator- (NumDays &);
   NumDays operator++ ();        //Prefix
   NumDays operator++ (int);    //Postfix
   NumDays operator-- ();       //prefix
   NumDays operator-- (int);    //Postfix
};
NumDays NumDays::operator+ (NumDays &n)
{NumDays t;
t.setHours(hours+n.getHours());
   return t;
}
NumDays NumDays::operator- (NumDays &n)
{ NumDays t;
   t.setHours(hours-n.getHours());
   return t;
}
NumDays NumDays::operator++ ()
{hours++;
days=hours/8;
return *this;
}
NumDays NumDays::operator-- ()
{hours--;
days=hours/8;
return *this;
}
NumDays NumDays::operator++ (int)
{NumDays t(hours);
hours++;
days=hours/8;
return t;
}
NumDays NumDays::operator-- (int)
{NumDays t(hours);
hours--;
days=hours/8;
return t;
}
int main()
{
   NumDays a(10),b(20),c;
   cout<<"Initially ";
   cout<<"a="<<a.getDays()<<endl;
   cout<<"b="<<b.getDays()<<endl;
   c=a+b;
   cout<<"after c=a+b: c="<<c.getDays()<<endl;
   c=a-b;
   cout<<"after c=a-b: c="<<c.getDays()<<endl;
   c=a++;
   cout<<"after c=a++: a="<<a.getDays()<<", c="<<c.getDays()<<endl;
   c=++a;
   cout<<"after c=++a: a="<<a.getDays()<<", c="<<c.getDays()<<endl;
   c=a--;
   cout<<"after c=a--: a="<<a.getDays()<<", c="<<c.getDays()<<endl;
   c=--a;
   cout<<"after c=--a: a="<<a.getDays()<<", c="<<c.getDays()<<endl;  
   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