
- •Індивідуальне завдання
- •Аналітичний розділ
- •Побудова інформаційно-математичної моделі задачі
- •Об’єктна модель
- •4. Визначення структури даних
- •5. Розробка інтерфейсу програми з користувачем
- •6. Складання коду програми:
- •7. Реалізація проекту у візуальному середовищі
- •8. Аналіз програми
- •9. Тестування програми
- •10. Інструкція з експлуатації програми
- •10.1 Вимоги до технічного забезпечення
- •10.2 Інсталяція програмного забезпечення
- •10.3 Експлуатація програмного продукту
- •11. Аналіз отриманих результатів
Побудова інформаційно-математичної моделі задачі
Побудова інформаційної моделі задачі – це побудова умовної схеми, по якій буде розроблятися певна задача.
Етап побудови інформаційної моделі задачі полягає у дослідженні предметної ділянки задачі та визначенні вхідних даних, способів їх зібрання та обробки. Для даного алгоритму задачі інформаційна модель буде представлена у вигляді блок –схеми, і матиме наступний вигляд (рисунок 2.1).
Рисунок 2.1 – Інформаційна модель задачі
Об’єктна модель
Найкраще об’єктну модель будувати за допомогою засобів Microsoft Visual Studio. Це робиться наступним чином:
Активізуємо вікно Solution Explorer
Клацнути правою клавішею миші на проекті
Вибрати пункт меню View Class Diagram
Об’єктна модель даної задачі зображена на рисунку 3.1.
Рисунок 3.1 – Об’єктна модель задачі
4. Визначення структури даних
У своєму проекті я створив 2 класи: paint_cherga, paint_spusok. Клас paint_cherga бути містити усі необхідні методи та атрибути для роботи з чергою, а клас paint_spusok – для роботи зі списком.
Структуру даних представимо у вигляді таблиць, в яких будуть відображені методи та атрибути цих класів.
В таблиці 4.1 показані методи класу paint_cherga.
Метод |
Тип |
Призначення |
getel(PictureBox^ p, TextBox^ t, int i) |
void |
Створення елементу черги. |
create_cherga() |
void |
Ініціалізація масиву елементів черги (динамічних компонент типу Label) |
Таблиця 4.1 – Методи класу paint_cherga
В таблиці 4.2 показані атрибути класу paint_cherga.
Назва |
Тип |
Призначення |
i |
int |
Індекс елементу який має додатися |
j |
int |
Зберігає координати, які використовуються для перевірки чи всі елементи зсунуті, після того як відбулося видалення |
v |
int |
Позиція в якій елемент повинен зупинитися (при додаванні в чергу) |
k |
int |
Індекс елементу який має зсуватися після того, як відбулося видалення |
d |
int |
Позиція в якій елемент повинен зупинитися після зсуву |
kilk_el |
int |
Кількість елементів в черзі |
mas |
Label^ |
Масив динамічно створених компонент типу Label, за допомогою яких зображуються елементи черги |
Таблиця 4.2 – Атрибути класу paint_cherga
В таблиці 4.3 показані методи класу paint_spusok.
Метод |
Тип |
Призначення |
addel(PictureBox^ p, int t, int l, int i) |
void |
Створення елементу списку(графічно) |
create_spusok() |
void |
Ініціалізація масиву елементів списку (динамічних компонент типу Label) |
zsuv() |
void |
Зсуває індекси масиву елементів списку(на 1 в ліво) |
set_index() |
void |
Встановлює значення покажчика, даного, та адреси елемента списку який має створюватися |
dod_pochatok(Label^ l) |
void |
Додає елемент на початок списку(графічно) |
dod_kinets() |
void |
Додає елемент в кінець списку(графічно) |
vud_pochatok() |
void |
Видаляє елемент з початку списку(графічно) |
vud_kinets() |
void |
Видаляє елемент з кінця списку |
up() |
void |
Зсуває елементи списку, в тому випадку, якщо був видалений не останній елемент(у порядку відображення на екрані) |
dod_pislya_indeksa_1() |
void |
Додають елемент після вказаного індексу |
dod_pislya_indeksa_2() |
||
vud_pislya_indeksa() |
void |
Видаляє елемент після вказаного індекса(графічно) |
index_list() |
void |
Заповнює списки (компоненти типу ComboBox) з яких будуть братися дані для операцій «Додати елемент після індексу» та «Видалити елемент після індексу» |
Таблиця 4.3 – Методи класу paint_spusok
В таблиці 4.4 показані атрибути класу paint_spusok.
Назва |
Тип |
Призначення |
i |
int |
Індекс елементу списку (поле покажчика) який має додатися |
j |
int |
Індекс елементу списку (поле даних) який має додатися |
n |
int |
Індекс елементу списку (поле адреси) який має додатися |
v |
int |
Індекс елементу списку (поле адреси) який потрібно видалити |
d |
int |
Індекс елементу який потрібно рухати при будь-якій операції над списком |
s |
int |
Новий текст для елементу списку (поле адреси) який замінює попередній під час виконання будь-якої з операцій над списком |
c |
int |
Відстань від верхнього краю pictureBox елементу, який має видалитись |
p |
int |
Допоміжна змінна (вона дорівнює 1, якщо після операції видалення зі списку потрібно буде зсувати вказівник на вершину списку |
z |
int |
Текст поля вказівника (не враховуючи символ «*») та поля даного елементу списку, який має створюватися. |
u |
int |
Допоміжна змінна (вона дорівнює 1, якщо закінчилася операція «Додати елемент після індексу №») |
k |
int |
|
kilk_el |
int |
Кількість елементів в списку |
check |
bool |
Перевірка на наповненість допоміжних comboBox-ів |
mas |
Label^
|
Масив динамічно створених компонент типу Label, за допомогою яких зображуються елементи списку |
Таблиця 4.4 – Атрибути класу paint_spusok