Программирование >>  Структурное программирование 

1 ... 201 202 203 [ 204 ] 205 206 207 ... 342


шел II C0MMIS1 .н

Класс CoiranissionWorker, производный от Employee #1fndef C0MMIS1 H ttdefine C0MMIS1 H #include employ2 . h

class CommissionWorker : public Employee { public:

CommissionWorker( const char *, const char *, float = 0.0, float = 0.0, unsigned = 0);

void setSalary (float) ;

void setCommission(float); CT void setQuantity(unsigned); ШЯ virtual float earnings {) const; fln virtual void print() const;

ЩЯк private:

float salary; Базовая заработная плата за неделю

float commission; Комиссионные от продажи одного изделия

I unsigned quantity; Количество проданных изделий за неделю ЦР };

Н #endif

Рис. 10.1. Класс CommissionWorker, производный от абстрактного базового класса Employee

(часть 5 из 12)

C0MMIS1.CPP

Определения функций-элементов класса CommissionWorker #include <iostream.h> Iinclude commisl.h

Конструктор класса CommissionWorker CommissionWorker::CommissionWorker(const char *first, const char *last, float s, float c, unsigned q) : Employee(first, last) вызов конструктора базового класса

salary = s > О ? s : 0; commission = с > 0 ? с: 0; quantity = q > О ? q: 0;

Установка еженедельного основного оклада для класса CommissionWorker

void CommissionWorker::setSalary(float s) I { salary = s > 0 ? s : 0; } Л

. Установка комиссионных для класса CommissionWorker void CommissionWorker::setCommission(float c) { commission = с > 0 ? с : 0; }

Установка количества продаж изделий void CommissionWorker::setQuantity(unsigned q)

лять заработную плату в классе Boss; виртуальную функцию print, которая выводит тип служащего и его имя.



{ quantity = q > О ? q : 0; }

Определение заработной платы служащих из класса ComissionWorker float CommissionWorker::earnings() const { return salary + commission * quantity; )

Печать имени служащего из класса CommissionWorker void CommissionWorker::print() const {

cout << endl Служащий на комиссионных: getFirstNameО getLastName();

Рис. 10.1. Определения функций-элементов класса ComissionWorker (часть б из 12)

Класс ComissionWorker (части 5 и 6 рис. 10.1) является производным от класса Employee открытым наследованием. Открытые функции-элементы включают: конструктор, который принимает в качестве аргументов имя, фамилию, базовую недельную заработную плату, комиссионное вознаграждение и количество проданных изделий, а также передает имя и фамилию конструктору Employee; функцию set, которая присваивает новые значения скрытым данным-элементам salary, comission и quantity; виртуальную функцию earnings, в которой определено, как начислять заработную плату в классе ComissionWorker; виртуальную функцию print, которая выводит тип служащего и его имя.

Класс Pieceworker (рис. 10.1, части 7 и 8) является производным от класса Employee с открытым наследованием. Открытые функции-элементы включают: конструктор, который принимает в качестве аргументов имя, фамилию, оплату за единицу продукции и количество произведенной продукции за неделю, а также передает имя и фамилию конструктору Employee; функцию set, которая присваивает новые значения скрытым данным-элементам wagePerPiece и quantity; виртуальную функцию earnings, в которой определено, как начислять заработную плату в классе Pieceworker; виртуальную функцию print, которая выводит тип служащего и его имя.

PIECE1.H

Класс Pieceworker, производный от Employee tifndef PIECE1 H tdefine PIECE1 H tinclude employ2.h

class Pieceworker : public Employee { public:

Pieceworker(const char*, const char*, float = 0.0,unsigned = 0); void setWage(float); void setQuantity(unsigned); virtual float earnings() const; virtual void print() const; private:

float wagePerPiece; Оплата единицы продукции

unsigned quantity; Число единиц продукции за неделю

tendif

Рис. 10.1. Класс PieceWorl<er, производный от абстрактного базового класса Employee

(часть 7 из 12)



i Установка сдельной заработной платы ;/oid Pieceworker:: setWage (float w)

{ wagePerPiece = w > 0 ? w : 0; )

Установка количество произведенных единиц продукции , void Pieceworker::setQuantity(unsigned q) { quantity = q > 0 ? q : 0; )

Опеределение заработной платы служащих из класса Pieceworker float Pieceworker: learnings О const

( return quantity * wagePerPiece; }

Печать имени служащего из класса Pieceworker id Pieceworker::print() const

-. cout endl Служащий на сдельной оплате: V. getFirstName()

<<<< getLastName О ;

Рис. 10.1. Определения функций-элементов класса Pieceworker (часть 8 из 12) HOURLY1. Н

Класс HourlyWorker, производный от Employee fndef H0URLY1 H l tdefine H0URLY1 H . I tinclude employ2.h

.jp I class HourlyWorker : public Employee { ? I public:

HourlyWorker(const char *, const char *,

float = 0.0, float = 0.0); void setWage(float); void setHours(float); virtual float earnings() const; virtual void print() const; fjJS-! private:

lite float wage; Заработная плата за час

f jfloat hours; Количество отработанных часов за неделю

}; -i-* tend if

Рис. 10.1. Класс HouriyWorker, производный от абстрактного базового класса Employee

(чааь 9 из 12)

PIECEl.CPP Определения функций-элементов класса Pieceworker tinclude <iostream.h> tinclude piecel.h

Конструктор класса Pieceworker

Pieceworker::Pieceworker (const char *first, const char last,

float w, unsigned q) : Employee(first, last) Вызов конструктора базового класса

wagePerPiece = w > О ? w : 0; quantity = q > О ? q : 0;

Я }



1 ... 201 202 203 [ 204 ] 205 206 207 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика