Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР2_ООП.doc
Скачиваний:
2
Добавлен:
14.11.2019
Размер:
191.49 Кб
Скачать

Завдання до лабораторної роботи

Загальна частина завдань для варіантів 1-20

Написати програму, яка демонструє роботу з об’єктами двох типів: Т1 і Т2, для чого створити систему відповідних класів. Кожен об’єкт повинен мати ідентифікатор (у вигляді довільного рядка символів) і одне або кілька полів для зберігання стану об’єкта (один клас є нащадком іншого). Клієнту (функції main) повинні бути доступні наступні основні операції (методи): створити об’єкт, видалити об’єкт, показати значення об’єкту та інші додаткові операції (залежно від варіанту). Операції по створенню та видаленню об’єктів інкапсулювати в класі Factory. Передбачити меню, що дозволяє продемонструвати задані операції. При необхідності в класи, які розробляються додаються додаткові методи (наприклад, конструктор копіювання, операція присвоювання та інші) для забезпечення належного функціонування цих класів.

Варіанти 1-10

У табл. 2 і 3 перераховані можливі типи об’єктів і можливі додаткові операції над ними.

Таблиця 2

Перелік типів об’єктів

Клас

Об’єкт

SymbString

Символьний рядок (довільний рядок символів)

BinString

Двійковий рядок (зображення двійкового числа)1

OctStrincj

Вісімковий рядок (зображення вісімкового числа)

DecStnng

Десятковий рядок (зображення десяткового числа)

HexString

Шістнадцятковий рядок (зображення шістнадцяткового числа)

Таблиця 3

Перелік додаткових операцій (методів)

Операція (метод)

Опис

ShowBin()

Показати зображення двійкового значення об’єкту

ShowOct()

Показати зображення вісімкового значення об’єкту

ShowDec()

Показати зображення десяткового значення об’єкту

ShowHex()

Показати зображення шістнадцяткового значення об’єкту

Operator +(T& S1. T& S2)2

Для об’єктів SymbString – конкатенація рядків S1 та S2; для об’єктів інших класів складання відповідних чисельних значень з наступним перетворенням до типу Т

Операція (метод)

Опис

operator -(Т& s i . Т& s2)

Для об’єктів SymbString – якщо s2 міститься як підрядок в s1, то результатом є рядок, отриманий з s1 видаленням підрядка s2; в іншому випадку повертається значення s1; для об’єктів інших класів – віднімання відповідних чисельних значень з наступним перетворенням до типу Т

Зауваження: Перші чотири операції можуть застосовуватися до об’єктів будь-яких класів, за винятком класу SymbString

Табл. 4 містить специфікації варіантів.

Таблиця 4

Специфікації варіантів 1-10

Варіант

Т1

Т2

Операції(методи)

1

SymbString

BinString

ShowOct(). ShowDec(). ShowHex()

2

SymbString

BinString

Operator+(T&.T&)

3

SymbString

BinString

Operator-(T&.T&)

4

SymbString

OctString

Operator+(T&.T&)

5

SymbString

OctString

Operator-(T&.T&)

6

SymbString

DecString

ShowBin ShowDec(). ShowHex()

7

SymbString

DecString

Operator+(T&.T&)

8

SymbString

DecString

Operator-(T&.T&)

9

SymbString

HexString

Operator+(T&.T&)

10

SymbString

HexString

Operator-(T&.T&)

Варіанти 11-20

В табл. 5 і 6 перераховані можливі типи об’єктів і можливі додаткові операції над ними.

Таблиця 5

Перелік типів об'єктів

Клас

Обєкт

Triangle

трикутник

Quadrate

квадрат

Rectangle

прямокутник

Tetragon

чотирикутник

Pentagon

п'ятикутник

Таблиця 6

Перелік додаткових операцій (методів)

Move()

Перемістити об’єкт на площині

Compare(T& ob1. Т& оb2)

Порівняти об’єкти ob1 і ob2 по площі

IsIntersect(T& ob1. Т& оb2)

Визначити факт перетину об’єктів ob1 і оb2 (є перетин чи ні)

IsInclude(T& ob1. Т& оb2)

Визначити факт включення об’єкту оb2 в об’єкт ob1

Таблиця 7 містить специфікації варіантів

Таблиця 7

Специфікація варіантів 11-20

Варіант

Т1

Т2

Операції(методи)

11

Triangle

Quadrate

Move().Compare(T&.T&)

12

Quadrate

Pentagon

Move(). IsIntersect(T&.T&)

13

Triangle

Rectangle

Move().Compare(T&.T&)

14

Triangle

Rectangle

Move(). IsIntersect(T&.T&)

15

Rectangle

Pentagon

Move(). IsIntersect(T&.T&)

16

Triangle

Tetragon

Move().Compare(T&.T&)

17

Triangle

Tetragon

Move(). IsIntersect(T&.T&)

18

Triangle

Tetragon

Move(). IsIntersect(T&.T&)

19

Triangle

Pentagon

Move().Compare(T&.T&)

20

Triangle

Pentagon

Move(). IsIntersect(T&.T&)

Література

  1. Т.А.Павловская. С/С++. Программирование на языке высокого уровня. – СПб., 2008.

  2. В.В.Лаптев. С++. Объектно-ориентированное программирование. ­ – СПб., 2008.

  3. А. Пол. Объектно-ориентированное программирование на С++. - М., 2001.

  4. У.Савитч. Язык С++. Курс объектно-ориентированного программирования. Пер. С англ. – М., 2001.

  5. Б. Страуструп. Язык программирования С++. - СПб., 1999.

  6. С.В.Глушаков, А.В.Коваль, С.В.Смирнов. Язык программирования С++. - Харьков, 2002.

  7. Г. Шилдт. Теория и практика С++. – М., 2001.

  8. С. Прата. Язык программирования С++. – М.-СПб.- К., 2003.

  9. У. Топп. Структуры данных в С++. – М., 2000.

  10. Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. - М., 1999.

  11. Т. Бадд. Объектно-ориентированное программирование в действии. - СПб., 2001.

  12. Р. Лафоре. Объектно-ориентированное программирование в С++. ­ - СПб., 2003.

  13. Д. Лукас. С++ под рукой. – М., 1999.

  14. Х. Дейтел. Как программировать на С++. – М., 2001.

  15. В.Войтенко, А.Морозов. С/С++: Теорія та практика. Навч.-метод. посібник. – Житомир, 2004.

  16. Т.А.Павловская, Ю.А.Щупак. С++. Объектно-ориентированное программирование: Практикум. – СПб., 2004.

  17. В.В.Лаптев, А.В.Морозов, А.В.Бокова. С++. Объектно-ориентированное программирование. Задачи и упражнения. ­ – СПб., 2007.

НАВЧАЛЬНЕ ВИДАННЯ