Расчеты неверны в моем коде. Как исправить?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Расчеты неверны в моем коде. Как исправить?

Сообщение Anonymous »

Вот что я должен сделать:

Напишите работника базового класса и 2 полученных класса Hourlyworker и PalariedWorker . У каждого работника есть имя и скорость заработной платы. В течение первых 40 часов почасовой работник получает полную плату и потрачен на ставку за любые часы. Наемный работник получает почасовую заработную плату в течение 40 часов, независимо от того, какое фактическое количество часов.

Код: Выделить всё

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

Worker::Worker() {salary = 0;}
Worker::Worker(string name, int salary)
{
this->name = name;
this->salary = salary;
}
void Worker::print()
{
cout salary * hours;
return payout;
}
string Worker::get_name() {return this->name;}

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) {}

int SalariedWorker::compute_pay(int hours)
{
this->payout = this->salary * 40;
return payout;
}
/////////

int main()
{
HourlyWorker a("Sam", 20);
HourlyWorker b("Mary", 15);
SalariedWorker c("Tom", 30);
SalariedWorker d("Pat", 40);

cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/8289758/calculations-are-wrong-in-my-code-how-to-fix[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»