Напишите работника базового класса и 2 полученных класса Hourlyworker и PalariedWorker . У каждого работника есть имя и скорость заработной платы. В течение первых 40 часов почасовой работник получает полную плату и потрачен на ставку за любые часы. Наемный работник получает почасовую заработную плату в течение 40 часов, независимо от того, какое фактическое количество часов.
Напишите работника базового класса и 2 полученных класса Hourlyworker и PalariedWorker . У каждого работника есть имя и скорость заработной платы. В течение первых 40 часов почасовой работник получает полную плату и потрачен на ставку за любые часы. Наемный работник получает почасовую заработную плату в течение 40 часов, независимо от того, какое фактическое количество часов.[code]#include #include
using namespace std;
//////////// Worker ///////////////////////////// class Worker { public: Worker(); Worker(string name, int salary); void print(); int compute_pay(int hours); string get_name(); int get_salary(); private: string name; int salary; int payout; };
int Worker::get_salary() { return this->salary;} //////////// HourlyWorker /////////////////////// class HourlyWorker : public Worker { public: HourlyWorker(string name, int salary); int compute_pay(int hours); private: string name; int salary; int payout; };
HourlyWorker::HourlyWorker(string name, int salary) :Worker(name, salary) {}
int HourlyWorker::compute_pay(int hours) { int temp = 0; if (hours >= 40) { temp = (this->salary * (hours - 40)) / 2; this->payout = (this->salary * 40) + temp; } else { this->payout = this->salary * hours; } return payout; } //////////// SalariedWorker ///////////////////// class SalariedWorker : public Worker { public: SalariedWorker(string name, int salary); int compute_pay(int hours); private: string name; int salary; int payout; };
SalariedWorker::SalariedWorker(string name, int salary) :Worker(name, salary) {}