У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


визначений конструктор за замовчуванням. Крім того, для об'єкта повинні бути визначені оператори < і ==.

Для класу вектор визначені наступні оператори порівняння

==, <, <=, !=, >, >=.

Крім цього, для класу vector визначається оператор індексу [].

Нові елементи можуть включатися за допомогою функцій

insert(), push_back(), resize(), assign().

Існуючі елементи можуть віддалятися за допомогою функцій

erase(), pop_back(), resize(), clear().

Доступ до окремих елементів здійснюється за допомогою ітераторів begin(), end(), rbegin(), rend(),

Маніпулювання контейнером, сортування, пошук у ньому, тощо, можливо за допомогою глобальних функцій файлу-заголовка <algorithm.h>.

2.3 Розробка програми

Виконання поставленого завдання 2.2.1 Класовий тип для роботи з структурами типу "Вектор".

Для створення класу вектора було вибрано клас динамічний масив із стандартної бібліотеки шаблонів STL — vector. Як тип користувача створено клас Vector, який також є шаблонним, тобто може приймити будь–які значення які задаються користувачам через параметр шаблону. Даний клас, що розроблений у дипломному проекті є своєрідною обгорткою над класом з бібліотеки шаблонів. В даному випадку використаний однин із фундаментальних принципів об’єктно–орієнтованого програмування — агрегацію. За цим принципом клас користувача містить в собі інший об’єкту який визначений раніше і таким чином утворена колекція класів. Всі необхідні методи зазначені в завданні були реалізовані. Для того, щоб відобразити класи, що створені в данному дипломному проекті приводиться діаграма класів, яка виконана за всіма правилами представлення класів за допомогою UML.

2.3.1 Представлення класів, як діаграм UML для роботи з структурами типу "Вектор"

Рисунок 2.1. — Діаграма класів UML

Проект для роботи з структурами типу "Вектор" складається з таких файлів:

Vector.cpp — реалізація класу Вектор

VectorMain.cpp — головна програма

iface.h — абстрактний інтерфейс класу

Vector.h — інтерфейс класу Вектор

У файлі iface.h оголошений абстрактний інтерфейс класу, де зазначені всі методи які потрібно для роботи з векторами. Всі методи являються чистими віртуальними функціями. Файли Vector.h і Vector.cpp — це відповідно оголошення і реалізація класу вектор. В додатку А приводяться лістинги проекту.

2.3.2 UML діаграми класів для роботи з векторами і матрицями

Рисунок 2.2 - UML діаграма класу Матриця

Рисунок 2.3 - UML діаграма класу Матриця

У додатку В наведено опис класів вектор і матриця, а також їхня реалізація.

Основна програма (реалізація з графічним інтерфейсом)

Рисунок 2.4 - UML діаграма класу форми

2.4 Налагодження, тестування та демонстрація роботи програми

Програма тесування дозволя є працювати з трьома видами векторів:

Вектор цілих чисел

Вектор чисел з плаваючою комою

Вектор символів

Користувачу пропонується вибрати який з яким вектором він бажає працювати з даний момет часу. Для вибору іншого типу потрібно запустити іншу копіб програми, або перезапустити програму.

2.4.1 Вектор цілих чисел

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

Рисунок 2.5 — Робота з цілочисельним вектором

Як бачимо у на початку роботи програми у нас є вибір з яким типом вектора працювати. Після цього пропонується ввести одну із команд, які ідентифікуються одним наперед відомим символом для програми. Коли користувач вводить цей символ, то програма виконує одну із процедур яка обробляє цей символ і виконує певну дію над вектором.

2.4.2 Вектор чисел з плаваючою комою

Рисунок 2.6 — Робота в режимі вектору з числами з плаваючою комою

У цьому випадку робота проводиться коли користувач вводить дробові значення у вектор. Тобто вектор буде містити значення які містять цілу і дробову частину. У пам’яті комп’ютера ці числа зберігаються як числа з плаваючою комою.

2.4.3 Вектор символів

Рисунок 2.7 — Робота з символами

Вище було продемонстровано три види векторів коли як параметр їм передавались значення певного типу. Це не весь список типів, з якими може працювати клас Vector. Він може приймати значення будь–якого типу в тому числі типу, який визначений користувачем. Тобто, якщо потрібно створити динамічний масив класів, то даний клас вже адаптований для таких випадків. Крім того програма тестування, яка була розроблена не повністю показує використання всіх методів класу. Так як в ньому визначені і інші методи, такі як накопичення суми або добутку, чи введення / виведення із файлу. Також є можливість порівняння двох векторів і присвоєння значень, об’єднання векторів чи обмін значеннями. Але використання цих методів є тривіальним і тому на них не акцентується увага, а приводиться тільки використання тих методів, які найчастіше зустрічаються в роботі з структурами даних типу динамічний масив (вектор) .

Нище наведено тестування консольної програми та програми з графічний інтерфейсом для роботи з векторами і матрицями.

2.4.5 Результати роботи консольної програми

Рисунок 2.8 - Робота з векторами

Рисунок 2.9 - Робота з матрицями

Рисунок 2.10 - Робота з векторами і матрицями

(множення вектора на матрицю)

Результати роботи програми з графічним інтерфейсом

Рисунок 2.11 - Робота програми з графічним інтерфейсом

Висновок

У даному дипломному проекті було проведено розробку і тестування програмного класу С ++ для роботи з двохмірними векторами (матрицями), що надає можливість користувачам програми, на основі методів створеного класу одержувати доступ до елементів , як з динамічних масивів даних.

Створено класовий тип для роботи з числовими матрицями і векторами. Розроблено програму в якій застосовано основні методи об’єктно-орієнтованого програмування для створення і використання моделі заданого виду об’єкта (числового вектора чи матриці).

Для роботи з числовими матрицями було розроблено два варіанти тестової програми для перевірки і роботи з класами: консольна – проста, що використовує режим консолі у Windows і з графічним інтерфейсом – проста і зручна у використанні, з доступним і зрозумілим для будь-якого користувача Windows об’єктами керування.

Список використаних джерел

Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12