Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lr09

.pdf
Скачиваний:
4
Добавлен:
19.02.2016
Размер:
913.13 Кб
Скачать

Ця програма виводить на екран значення попередньо проініціалізованого масиву об'єктів obArr. Для того, щоб масив об’єктів можна було не тільки створювати, але і ініціалізувати при оголошенні, необхідно, щоб клас включав параметризований конструктор (а даному прикладі — AnyClass(int n)). Застосований в прикладі синтаксис ініціалізації масиву obArr є скороченою формою наступної конструкції:

AnyClass obArr[5] = { AnyClass(13) AnyClass(17)

AnyClass(21)

AnyClass(23) AnyClass(27) };

На жаль, нею можна скористатися тільки при ініціалізації масивів об'єктів, конструктор яких містить тільки один параметр. При ініціалізації масивів об'єктів з конструктором, що містить декілька параметрів, доводиться використати повну (чи "довгу") форму конструкції.

У наступному прикладі створюється двовимірний масив об'єктів, конструктор якого містить два параметри.

//Демонстрація створення масиву об’єктів,

//які мають конструктор з двома параметрами

#include "stdafx.h" #include <iostream>

using namespace std;

class Coord

{

int x, y; public:

Coord(int _x, int _y) {x = _x; y = _y;} int GetX() {return x;}

int GetY() {return y;}

};

int _tmain(int argc, _TCHAR* argv[])

{

Coord coordArr[4][2] = { Coord(3,4), Coord(5,6), Coord(7,8), Coord(9,10), Coord(11,12), Coord(13,14), Coord(15,16), Coord(17,18)

}; int i, j;

for (i = 0; i < 4; i++)

{

for (j = 0; j < 2; j++)

{

cout << coordArr[i][j].GetX() << ' '; cout << coordArr[i][j].GetY() << ' '; cout << '\t';

}

cout << '\n';

}

cout << '\n';

return 0;

}

Використання покажчиків для доступу до об'єктів масиву абсолютно аналогічно їх використанню для звичайних змінних і структур. Арифметика покажчиків також аналогічна,

11

Інкрементування покажчика призводить до того, що він вказує на наступний об'єкт масиву, декрементування — до того, що він вказує на попередній об'єкт масиву. Розглянемо приклад:

// Демонстрація доступу до елементів масиву об’єктів через покажчик

//

#include "stdafx.h" #include <iostream>

using namespace std;

class Coord

{

int x, y; public:

Coord(int _x, int _y) {x = _x; y = _y;} int GetX() {return x;}

int GetY() {return y;}

};

int _tmain(int argc, _TCHAR* argv[])

{

Coord coordArr[4] = { Coord(3,4), Coord(5,6), Coord(7,8), Coord(9,10)

};

int i;

Coord* ptr; //Покажчик на об’єкт класу Coord

ptr = coordArr; //Ініціалізація покажчика // адресою масиву

for (i = 0; i < 4; i++)

{

cout << ptr->GetX() << ' ' ; cout << ptr->GetY() << '\n';

ptr++; //Перехід на наступний об'єкт

}

cout << '\n';

return 0;

}

Ця програма виводить на екран в кожному рядку значення змінних x та y поточного елементу масиву об'єктів.

12

Порядок виконання роботи

1.Створити проект Консольної програми Win32, в якому будуть реалізовані наступні пункти роботи.

2.Створити клас A, опис якого подано у варіантах до роботи (таблиця 1). Члени даних класу повинні бути закритими. В класі реалізувати конструктор за замовчуванням, конструктор копіювання, параметричний конструктор, деструктор класу.

3.Реалізувати функції члени класу A для запису та зчитування (типу Get<Ім’я_даних>/Set<Ім’я_даних>) членів даних, які містить клас A згідно варіанту (таблиця 1). Додати до класу A функцію-член Show(), яка виводить на екран в зрозуміло сформованому виді всі дані, що зберігаються в об’єкті класу.

4.Створити клас B опис якого подано у варіантах до роботи (таблиця 2).

5.В класі B реалізувати функції-члени:

повернення кількості заповнених комірок;

додавання даних в першу вільну комірку масиву даних класу B;

очищення даних в останній заповненій комірці масиву даних класу B;

очищення всіх комірок в масиві даних класу B;

виведення на екран інформації про об’єкт: власна назва об’єкту та список даних, які

зберігаються в кожному заповненому елементі масиву даних.

13

Варіанти до роботи

 

 

 

 

 

 

 

 

Таблиця 1. Опис класу A до пункту 2

 

 

 

 

 

 

 

 

 

 

 

Номер варіанту

 

Назва

 

Пояснення

 

 

 

класу A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Картка іноземного слова для англо-українського

 

 

 

 

 

 

 

 

словника. Рекомендовані поля класу:

 

 

 

 

 

 

 

 

 

слово англійською мовою;

 

1

6

11

16

21

26

Word

 

переклад слова українською;

 

 

 

 

 

 

 

 

 

частина мови;

 

 

 

 

 

 

 

 

приклад речення, яке містить дане слово.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Опис купленого в магазині товару.

 

 

 

 

 

 

 

 

Рекомендовані поля класу:

 

 

 

 

 

 

 

 

 

код товару;

 

2

7

12

17

22

27

Goods

 

назва товару;

 

 

 

 

 

 

 

 

 

ціна за одиницю;

 

 

 

 

 

 

 

 

 

кількість одиниць.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Картка тестового завдання контрольної роботи.

 

 

 

 

 

 

 

 

Рекомендовані поля класу:

 

 

 

 

 

 

 

 

 

питання;

 

3

8

13

18

23

28

Task

 

перша відповідь;

 

 

друга відповідь;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

третя відповідь;

 

 

 

 

 

 

 

 

 

номер правильної відповіді.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Картка клієнта магазину. Рекомендовані поля

 

 

 

 

 

 

 

 

класу:

 

 

 

 

 

 

 

 

 

прізвище;

 

4

9

14

19

24

29

Customer

 

дата народження;

 

 

 

 

 

 

 

 

 

назва останньої покупки;

 

 

 

 

 

 

 

 

 

сума останньої покупки.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Книжка. Рекомендовані поля класу:

 

 

 

 

 

 

 

 

 

назва книги;

 

5

10

15

20

25

30

Book

 

автор книги;

 

 

видавництво;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рік видання.

 

 

 

 

 

 

 

 

 

 

 

14

 

 

 

 

 

 

 

 

Таблиця 2. Опис класу B до пункту 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номер варіанту

 

Назва

 

 

Пояснення

 

 

 

 

класу B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Англо-український словник. Поля класу:

 

 

 

 

 

 

 

 

 

 

назва словника;

 

 

 

1

6

11

16

21

26

Dictionary

масив 10 елементів типу класу Word, карток

 

 

іноземних слів;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кількість заповнених елементів масиву слів.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Товарний чек. Поля класу:

 

 

 

 

 

 

 

 

 

 

 

назва магазину;

 

 

 

 

 

 

 

 

 

 

 

масив 10 елементів типу класу Goods,

 

2

7

12

17

22

27

Receipt

 

товарів, куплених в магазині;

 

 

 

 

 

 

 

 

 

кількість

заповнених

елементів

масиву

 

 

 

 

 

 

 

 

 

товарів.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Набор тестових питань. Поля класу:

 

 

 

 

 

 

 

 

 

 

назва предмету;

 

 

 

 

 

 

 

 

 

 

 

масив 10 елементів типу класу Task,

 

3

8

13

18

23

28

TestSet

 

тестових завдань;

 

 

 

 

 

 

 

 

 

 

 

кількість

заповнених

елементів

масиву

 

 

 

 

 

 

 

 

 

завдань.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список покупців магазину. Поля класу:

 

 

 

 

 

 

 

 

 

 

назва магазину;

 

 

 

 

 

 

 

 

 

 

масив 10 елементів типу класу Customer,

 

4

9

14

19

24

29

CustomerList

 

клієнтів магазину;

 

 

 

 

 

 

 

 

 

 

 

кількість

заповнених

елементів

масиву

 

 

 

 

 

 

 

 

 

клієнтів.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список книжок на руках в абонента бібліотеки.

 

 

 

 

 

 

 

 

Поля класу:

 

 

 

 

 

 

 

 

 

 

 

 

прізвище абонента;

 

 

 

5

10

15

20

25

30

Subscriber

 

масив 10

елементів

типу класу

Book,

 

 

книжок;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кількість

заповнених

елементів

масиву

 

 

 

 

 

 

 

 

 

книжок.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

Література

1.Глушаков С. В., Коваль А. В., Смирнов С. В. Язык программирования С++: Учебный курс.

M.: OOO «Издательство АСТ», 2001. — 500 с.

2.Дейтел Харви, Дейтел Пол. Как программировать на С++.

3.Шилдт Герберт. С++: руководство для начинающих. 2-е издание. Пер. с англ. — М.: Издательский дом "Вильямс", 2005. — 672 с.

16

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]