Обектно-ориентирано програмиране ЮЗУ - ІІ курс Първа курсова задача (домашна работа) [05.10.2001] Номерът на курсовата задача се получава като резултат от операцията "остатък от целочислено деление" в С++. Първият аргумент на операцията е факултетният номер на студента, а вторият аргумент е числото 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 Обект: полином от 3-та степен Функция: пресмятане на стойност на полинома при зададено x Операция: сума (+) на два полинома 18 Обект: матрица nxn с елементи 0 и 1 Функция: брой на нулите в матрицата Операция: поелементен and (&) 19 Обект: n-мерен вектор с елементи 0 и 1 Функция: брой на двойките 01 във вектора Операция: поелементно отрицание (~) 20 Обект: дата - ден, месец, година Функция: колко дни има между две дати Операция: добавяне на дни към дата (+=) 21 Обект: права в пространството, зададена от 2 точки Функция: дава симетрична относно началото права Операция: проверка за успоредност (||) 22 Обект: компютър - процесор, памет, HDD Функция: при зададени 3 числа - MHz, MB и GB връща true, ако характеристиките на компютъра са такива или по-добри Операция: сравнение (>=) по памет 23 Обект: работник - име, часова надница, брой отработени часове за месеца Функция: връща месечната заплата Операция: повишаване на часовата надница (+=) със зададен процент 24 Обект: самолетен полет - дата, час, място, брой пътници Функция: проверява дали полета е след зададена дата Операция: сравняване на два полета (<) по брой пътници 25 Обект: комплексно число Функция: модул на комплексно число Операция: събиране на комплексни числа ---------------------------------------------------------------------------