Обектно-ориентирано програмиране

Втора курсова задача (домашна работа)

    Номерът на курсовата задача се получава като резултат от операцията "остатък от целочислено деление" в С++. Първият аргумент на операцията е факултетният номер на студента, а вторият аргумент е числото 24 (ф.н. % 24).
    Да се моделира дадения в задачата "реален" обект с неговите свойства като се използват класове и наследственост. Да се създадат най-малко 2 класа, свързани с наследственост. Двата класа трябва да съдържат виртуална функция за отпечатване на членовете-данни. Да се демонстрира работата на програмата с подходящи тестови примери:
- създаване и унищожаване на обекти и указатели от двата класа;
- работата на член-функциите на класовете;
- статично и динамично свързване.
За това студентът получава 3 точки. Допълнително количество точки (още 2) могат да се получат, ако се използват други техники на ООП като:
- създаване и използване на още един производен клас;
- използване на индиректни базови класове;
- многократна наследственост;
- предефиниране на операции в базовия и производния клас;
- функции за динамично свързване с псевдоним и указател;
- виртуални деструктори;
- защитена или частна наследственост.
[Съкращения: БК - базов клас,; ПК - производен клас]

Задачи:
0 БК - време (час, минути); ПК - метерологично време в даден момент от времето - температура, влажност, вятър (посока и сила), атмосферно налягане
1 БК - време (час, минути); ПК - телевизионно предаване: ден, време, име на предаването
2 БК - точка в равнината; ПК - квадрат със страни, успоредни на координатните оси, зададен с център и дължина на страна
3 БК - точка в равнината; ПК - сила (посока и големина) в дадена точка от равнината
4 БК - точка в n-мерното пространство; ПК - n-мерна сфера с център в дадена точка
5 БК - равностранен триъгълник; ПК - правилна 3-ъгълна пирамида с основа равностранен триъгълник и височина
6 БК - точка в равнината; ПК - квадрат със страни, успоредни на координатните оси, зададен с върхът си, най-близо до координатния център и дължина на страна
7 БК - точка в равнината; ПК - права в равнината, минаваща през дадена точка и зададена с ъгъл, който сключва с абсцисната ос
8 БК - окръжност в равнината; ПК - конус в пространството
9 БК - човек: име, презиме, фамилия, ЕГН; ПК - студент: човек, фак. номер, курс, група
10 БК - име на учебна дисциплина, в кой курс се изучава, брой часове за лекции и за упражнения; ПК -  имената на лектора и асистента
11 БК - име на работник и базова заплата; ПК - търговски работник с базова заплата и процент от оборота
12 БК - име на работник и почасовото му  заплащане; ПК - търговски работник с почасово заплащане и % от оборота
13 БК - дата, час; ПК - бележка: дата, час, описание на ангажимент на определена дата в даден час
14 БК - човек: име, презиме и фамилия и телефонен номер; ПК - приятел: човек, е-mail адрес, GSM, рождена дата
15 БК - свободен вектор в равнината; ПК - права в равнината, зададена с точка и нормален вектор
16 БК - точка в равнината; ПК - вертикална отсечка, зададена със средата си и дължината си
17 БК - време (час, минути) и дата; ПК - самолетен полет: време и дата, заминава за, вид на самолета
18 БК - квадрат в равнината, зададен с център и дължина на страна; ПК - правилна 4-ъгълна пирамида
19 БК - номер на GSM; ПК - абонат с даден номер на GSM: име, фамилия, месечна такса
20 БК - правоъгълник с 2 страни, лежащи на координатните оси; ПК - пирамида, зададена от БК и точка в пространството
21 БК - държава - име, площ, население; ПК - износ на държава: видове стоки и количества (масив или вектор)
22 БК - точка в пространството; ПК - отсечка със среда дадена точка, дадена дължина и която е част от права, минаваща през началото на координатната система
23 БК - сграда: застроена площ, височина, брой етажи; ПК - жилищен блок: брой апартаменти на всеки етаж