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