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



Дата28.01.2017
Размер60.34 Kb.
Обектно-ориентирано програмиране

Домашна работа 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)


---------------------------------------------------------------------------


База данных защищена авторским правом ©obuch.info 2016
отнасят до администрацията

    Начална страница