Обектно-ориентирано програмиране
Домашна работа 2 - Номерът на задачата, която получавате е остатъка от делението на последните 2 цифри от ФН на 26.
Да се моделира дадения в задачата "реален" обект с неговите свойства като се използват класове, т.е. да се създаде шаблон-клас, който да работи поне със зададените типове данни и включване на система за обработка на изключения /ОИ/. Класът да притежава следните методи /минимума/:
- конструктор, деструктор, копиращ конструктор
- set и get функции;
- print функция;
- функцията, описана в конкретната задача;
- предефиниране на операцията, описана в задачата;
- обработка на посоченото изключение;
- предефиниране на потоковите операции.
Да се демонстрира:
- създаване на масив(или динамична структура – стек, списък, опашка) от обекти;
- запис на масива във файл;
- четене на обектите от файл;
-.функция за намиране на най-голям обект от масива(необходимо е предефиниране на операцията “>”);
- функция за търсене на обект (необходима е операция “==”);
- да се демонстрира работата на всичко реализирано с подходящи примери.
---------------------------------------------------------------------------
Задачи:
0
Обект: окръжност в равнината, зададена с център и радиус.
Функция: пресечни точки на окръжността с координатните оси.
Операция: събиране (+) - резултатът е най-малката окръжност,
съдържаща двете дадени.
Шаблон: тип на координати на точка и радиус (int,double)
ОИ: отрицателен радиус
1
Обект: матрица 2х2
Функция: детерминантата на матрицата
Операция: сума (+) на матрици
Шаблон: тип на числата на матрицата (int,double)
ОИ: нулева матрица и невалидни индекси
2
Обект: матрица 2х3
Функция: ранга на матрицата
Операция: сума (+) на матрици
Шаблон: тип на числата на матрицата (int,double)
ОИ: нулева матрица и невалидни индекси
3
Обект: права в равнината, зададена с точка и ъгъл,
който сключва с абсцисната ос
Функция: пресечната точка с абсцисната ос
Операция: въртене (*) на ъгъл 90 градуса около зададена точка.
Шаблон: тип на координати на точка и ъгъл (int,double)
ОИ: отрицателен ъгъл
4
Обект: проста дроб
Функция: проверка дали дробта не е цяло число
Операция: събиране на дроби
Шаблон: тип на числителя и знаменателя (int,char,long)
ОИ: нулев знаменател
5
Обект: точка в пространството
Функция: разстоянието от точката до началото на координатната система
Операция: унарен минус - дава симетрична относно началото(0,0) точка
Шаблон: тип на координати на точка (int,double)
ОИ: точка (0,0)
6
Обект: точка в равнината
Функция: разстоянието от точката до началото на координатната система
Операция: увеличаване с 1 (++) премества точката с вектор (1,1)
Шаблон: тип на координати на точка (int,double)
ОИ: точка (0,0)
7
Обект: сила в равнината, зададена с приложна точка, посока и големина
Функция: промяна на посоката на силата, като се завърта на зададен ъгъл
Операция: добавяне (+=) към една сила друга сила по правилото на успоредника
Шаблон: тип на числовите данни (int,double)
ОИ: големина (0,0) и ненулева посока
8
Обект: книга - име на автор, заглавие на книга, име на издателство
и година на издаване
Функция: връща true ако книгата е издадена преди зададена година
Операция: сравнение за равенство (==) на две книги
Шаблон: тип на низовете (string, char*)
ОИ: невалидна година на издаване (>2005 или <Гутенберг)
9
Обект: студент - име, презиме и фамилия, фак. номер, 5 оценки
Функция: изчисляване на среден успех
Операция: сравнение (>) по среден успех
Шаблон: тип на низовете (string, char*)
ОИ: невалидни оценки
10
Обект: вектор в равнината
Функция: големина на вектор
Операция: умножение на вектор с число (*)
Шаблон: тип на координати на вектор (int,double)
ОИ: вектор (0,0)
11
Обект: вектор в пространството
Функция: големина на вектор
Операция: сума (+) на вектори
Шаблон: тип на координати на вектор (int,double)
ОИ: вектор (0,0)
12
Обект: избирател - име, презиме и фамилия, ЕГН, избирателна секция
Функция: проверка дали човекът има право да гласува
Операция: сравнение за равенство (==)
Шаблон: тип на низовете (string, char*)
ОИ: невалидно ЕГН, виж:
http://www.geocities.com/TimesSquare/Lair/7174/egn.html
http://gyuvet.ch/dadzibao/mat/esgraon.htm
13
Обект: автомобил - марка, цвят, обем на двигател, цена
Функция: при зададено число, връща разликата между това число
и цената на автомобила
Операция: сравнение (>) според обема на двигателя
Шаблон: тип на низовете (string, char*)
ОИ: невалидни цени
14
Обект: права в равнината, зададена с 2 точки
Функция: разстояние на правата до началото на координатната система
Операция: сравняване за различие (!=) на две прави
Шаблон: тип на координати на точка (int,double)
ОИ: двете точки при задаване на правата съвпадат
15
Обект: отсечка в равнината, зададена с 2 точки
Функция: дължината на отсечката
Операция: проверка (&) дали 2 отсечки се пресичат
Шаблон: тип на координати на точка (int,double)
ОИ: двете точки при задаване на отсечката съвпадат
16
Обект: отсечка в пространството, зададена с 2 точки
Функция: дължината на отсечката
Операция: проверка (^) дали отсечката пресича някоя координатна равнина
Шаблон: тип на координати на точка (int,double)
ОИ: двете точки при задаване на отсечката съвпадат
17
Обект: полином от 3-та степен
Функция: пресмятане на стойност на полинома при зададено x
Операция: сума (+) на два полинома
Шаблон: тип на коефициентите на полинома(int,double)
ОИ: 4-те коефициента на полинома са нули
18
Обект: матрица nxn с елементи 0 и 1
Функция: брой на нулите в матрицата
Операция: поелементен and (&)
Шаблон: тип на числата на матрицата (int,char,bool)
ОИ: нулева матрица и невалидни индекси
19
Обект: n-мерен вектор с елементи 0 и 1
Функция: брой на двойките 01 във вектора
Операция: поелементно отрицание (~)
Шаблон: тип на елементите на вектора (int,char,long,bool)
ОИ: n>0 и невалиден индекс
20
Обект: дата - ден, месец, година
Функция: колко дни има между две дати
Операция: добавяне на дни към дата (+=)
Шаблон: тип на елементите на датата (int,char,long,bool)
ОИ: невалидна дата
21
Обект: права в пространството, зададена от 2 точки
Функция: дава симетрична относно началото права
Операция: проверка за успоредност (||)
Шаблон: тип на координати на точка (int,double)
ОИ: двете точки при задаване на правата съвпадат
22
Обект: компютър - процесор, памет, HDD
Функция: при зададени 3 числа - MHz, MB и GB връща true, ако
характеристиките на компютъра са такива или по-добри
Операция: сравнение (>=) по памет
Шаблон: тип на числовите данни (int,double,long,char)
ОИ: невалидни числови данни
23
Обект: работник - име, часова надница, брой отработени часове за
месеца
Функция: връща месечната заплата
Операция: повишаване на часовата надница (+=) със зададен процент
Шаблон: тип на числовите данни (int,double) и на низове (string, char*)
ОИ: невалидни числови данни: брой отработени часове за месеца < 0 и
процент <=0 или >100
24
Обект: самолетен полет - дата, час, място, брой пътници
Функция: проверява дали полета е след зададена дата
Операция: сравняване на два полета (<) по брой пътници
Шаблон: тип на числовите данни (int,long)
ОИ: невалидна дата
25
Обект: комплексно число
Функция: модул на комплексно число
Операция: събиране на комплексни числа
Шаблон: тип на реална и имагинерна части на числото (int,double)
ОИ: числото (0,0)
---------------------------------------------------------------------------
Сподели с приятели: |