Домашно 1
Задача 1.
Напишете клас Person с
членове-данни - име човек и неговата възраст и необходимите
член-функциии,
(2 т.)
и клас Car с членове-данн:
• модел на автомобила;
• указател към собственика (Person*);
• указател към водача (също Person*)
и необходимите член-функциии.
(4 т.)
Напишете програма, която чете файла input.txt и
съхранява хората във вектор <Person *>
и и автомобилите във вектор <Car *>.
(6 т.)
Напишете функция за увеличаване на възрастта с една година всички
хора, записане във вектора.
(3 т.)
Напишете функция printall
която отпечатва списък на автомобилите с модел, името на собственика
и водача и тяхната възраст.
(10 т.)
За формата данните на входа и за формата на изходните данни виж
примера по-долу.
(5 т.)
Пример:
Файл input.txt
4
Ivan 25
Nina 32
Nikolay 44
Penka 28
3
Peugeot Ivan Ivan
Honda Ivan Nina
Scoda Penka Nikolay
Резултат от работата на програмата:
Peugeot
Owner: Ivan 26
Driver: Ivan 26
Honda
Owner: Ivan 26
Driver: Nina 33
Scoda
Owner: Penka 29
Driver: Nikolay 45
Задача 2.
Да се напише основен клас Worker и
производните класове HourlyWorker
(работник с почасово заплащане) и SalariedWorker
(работник със заплата). Всеки работник има име и
почасово заплащане.
(8 т.)
Да се напише виртуална функция compute_pay(int
hours), която изчислява седмичното заплащане за
всеки работник.
-- На всеки почасов работник се заплаща часовото възнаграждение за
действителния брой отработени часове, ако часовете са най-много 40.
Ако работещият почасово работи повече от 40 часа, излишъкът се
заплаща с коефициент 1.50 от часовото възнаграждение.
-- Работник на заплата получава часовото възнаграждение за 40 часа,
без значение какъв е отработения брой часове.
(8 т.)
Да се прочете списък с работници от двата типа, да се направи
полиморфен вектор от указатели. Да се прочете и един ред с
отработените часове за всеки работник от списъка и да се пресметне
неговото седмично заплащане.
(10 т.)
Да се отпечати таблицата в показания формат.
(4 т.)
Пример - списък с работници:
7
Ivan sal
Nina sal
Petar hou
John sal
Katya hou
Neda sal
Mary hou
30 40 20 50 40 45 50
Изход - решение на примера:
Ivan 400.00
Nina 400.00
Petar 200.00
John 400.00
Katya 400.00
Neda 400.00
Mary 550.00