Домашно 1

Задача 1.
Напишете клас Person с две полета - име човек и неговата възраст, и клас Car с три полета:
 • модел на автомобила;
 • указател към собственика (Person*);
 • указател към водача (също Person*).

 Напишете програма, която чете файла input.txt и съхранява хората във вектор <Person *> и и автомобилите във вектор <Car *>. Обходете вектора от хората и увеличете възрастта на всеки с една година. Накрая, обходете вектора на автомобилите и отпечатайте модела на колата, името и възрастта на собственика, името на водача и възрастта му.
 
 Файл 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 (работник със заплата). Всеки работник има име и почасово заплащане.
 
 Да се напише виртуална функция compute_pay(int hours), която изчислява седмичното заплащане за всеки работник. На всеки почасов работник се заплаща часовото възнаграждение за действителния брой отработени часове, ако часовете са най-много 40. Ако работещият почасово работи повече от 40 часа, излишъкът се заплаща с коефициент 1.50 от часовото възнаграждение. Работник на заплата получава часовото възнаграждение за 40 часа, без значение какъв е отработения брой часове.
 
 Да се прочете списък с работници от двата типа, да се направи полиморфна колекция - вектор от указатели. Да се прочете и един ред с отработените часове за всеки работник от списъка и да се пресметне неговото седмично заплащане. Да се отпечати таблицата в показания формат.
 
 Пример - списък с работници:
 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