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

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

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

 Задачи:
0 Обект: окръжност в равнината, зададена с център и радиус. Функция: пресечни точки на окръжността с координатните оси. Операция: събиране (+) - резултатът е най-малката окръжност, съдържаща двете дадени.
1 Обект: матрица 2х2. Функция: детерминантата на матрицата. Операция: сума (+) на матрици.
2 Обект: матрица 2х3. Функция: ранга на матрицата. Операция: сума (+) на матрици.
3 Обект: права в равнината, зададена с точка и ъгъл, който сключва с абсцисната ос Функция: пресечната точка с абсцисната ос Операция: въртене (*) на ъгъл 90 градуса около зададена точка.
4 Обект: проста дроб. Функция: проверка дали дробта не е цяло число. Операция: събиране на прости дроби.
5 Обект: точка в пространството. Функция: разстоянието от точката до началото на координатната система. Операция: унарен минус - дава симетрична относно началото точка.
6 Обект: точка в равнината. Функция: разстоянието от точката до началото на координатната система. Операция: увеличаване с 1 (++) премества точката с вектор (1,1).
7 Обект: сила в равнината, зададена с приложна точка, посока и големина. Функция: промяна на посоката на силата, като се завърта на зададен ъгъл. Операция: добавяне (+=) към една сила друга сила по правилото на успоредника.
8 Обект: книга - име на автор, заглавие на книга, име на издателство и година на издаване. Функция: връща true ако книгата е издадена преди зададена година. Операция: сравнение за равенство (==) на две книги.
9 Обект: студент - име, презиме и фамилия, фак. номер, 5 оценки. Функция: изчисляване на среден успех. Операция: сравнение (>) по среден успех.
10 Обект: вектор в равнината. Функция: големина на вектор. Операция: умножение на вектор с число (*).
11 Обект: вектор в пространството. Функция: големина на вектор. Операция: сума (+) на вектори.
12 Обект: избирател - име, презиме и фамилия, ЕГН, избирателна секция. Функция: проверка дали човекът има право да гласува. Операция: сравнение за равенство (==).
13 Обект: автомобил - марка, цвят, обем на двигател, цена. Функция: при зададено число, връща разликата между това число и цената на автомобила. Операция: сравнение (>) според обема на двигателя.
14 Обект: права в равнината, зададена с 2 точки. Функция: разстояние на правата до началото на координатната система. Операция: сравняване за различие (!=) на две прави.
15 Обект: отсечка в равнината, зададена с 2 точки Функция: дължината на отсечката Операция: проверка (&) дали 2 отсечки се пресичат
16 Обект: отсечка в пространството, зададена с 2 точки. Функция: дължината на отсечката. Операция: проверка (^) дали остечката пресича някоя координатна равнина.
17 Обект: полином на x от 3-та степен. Функция: пресмятане на стойност на полинома при зададено x. Операция: сума (+) на два полинома.
18 Обект: матрица n x n с елементи 0 и 1. Функция: брой на нулите в матрицата. Операция: поелементен and (&).
19 Обект: n-мерен вектор с елементи 0 и 1. Функция: брой на двойките 01 във вектора. Операция: поелементно отрицание (~).
20 Обект: дата - ден, месец, година. Функция: колко дни има между две дати. Операция: добавяне на дни към дата (+=).
21 Обект: права в пространството, зададена от 2 точки. Функция: дава симетрична относно началото права. Операция: проверка за успоредност (||).
22 Обект: компютър - процесор, памет, HDD. Функция: при зададени 3 числа - MHz, MB и GB връща true, ако характеристиките на компютъра са такива или по-добри. Операция: сравнение (>=) по памет.
23 Обект: работник - име, часова надница, брой отработени часове за месеца. Функция: връща месечната заплата. Операция: повишаване на часовата надница (+=) със зададен процент.
24 Обект: самолетен полет - дата, час, място, брой пътници. Функция: проверява дали полета е след зададена дата. Операция: сравняване на два полета (<) по брой пътници.
25 Обект: комплексно число.Функция: модул на комплексно число. Операция: събиране на комплексни числа.