ЗАТВЕРДЖЕНОНаказ Міністерства освіти і науки України29.03.2012 N 384
Форма N Н-6.01
Міністерство освіти і науки України
Вінницький національний технічний університет
Кафедра програмного забезпечення
КУРСОВА РОБОТА
з дисципліни «Операційні системи»
на тему: «Розробка програмного додатку для розширеного пошуку даних на жорсткому диску, використовуючи регулярні вирази»
Студента 3 курсу групи 1ПІ-13б напряму підготовки 6.050103спеціальності ”Програмна інженерія ”Гаврилюка Романа ОлександровичаКерівник доцент кафедри ПЗ, Рейда О.М.Національна шкала ___________________________Кількість балів: __________ Оцінка: ECTS _______
Члени комісії
________________(підпис)
___________________________(прізвище та ініціали)
________________(підпис)
___________________________(прізвище та ініціали)
м. Вінниця – 2015 рік
Міністерство освіти і науки України
Вінницький національний технічний університет
Факультет інформаційних технологій та комп’ютерної інженерії
ЗАТВЕРДЖУЮ
Зав. кафедри ПЗ, проф., д.т.н.
______________ А.М. Пєтух
(підпис)
” ” 2015 р.
ІНДИВІДУАЛЬНЕ ЗАВДАННЯна курсову роботу з дисципліни «Операційні системи»
студенту групи 1ПІ-13б Гаврилюку Р.О.
«Розробка програмного додатку для розширеного пошуку даних на жорсткому диску, використовуючи регулярні вирази»
Вихідні дані:
Розробити програмний додаток для ОС Windows, використовуючи мову програмування С++, IDE Microsoft Visual Studio, .
1 Провести аналіз сучасного стану питання та обґрунтування задачі:
1.1 аналоги і їх основні характеристики;
1.2 обґрунтування вибору мови розробки додатку.
2 Розробити програмний додаток:
2.1 обґрунтувати вибір інтерфейсу;
2.2 описати інтерфейс;
2.3 розробити структурну схему інтерфейсу;
2.4 розробити дизайн інтерфейсу.
3 Розробити моделі програмного додатку:
3.1 розробити блок-схему і структурну схему додатку;
3.2 розробити алгоритми роботи програмного додатку і базових модулів;
3.3 розробити структури даних додатку.
4 Провести тестування програмного додатку:
4.1 описати методики тестування;
4.2 розробити інструкцію тестування програмного додатку;
4.3 розробити інструкцію користувача програмного додатку.
Дата видачі ” ” 2015 р. Керівник ______________
Завдання отримав ______________
АНОТАЦІЯ
Курсова робота присвячена розробці програмного додатку "FreeSearcher" для розширеного пошуку даних на жорсткому диску, використовуючи регулярні вирази. Програмний додаток "FreeSearcher" виконує основні функції: пошук файлів, використовуючи регулярні вирази, збереження результатів пошуку у текстовий файл та сортування результатів пошуку.
Програмний додаток "FreeSearcher" реалізований за допомогою середовища розробки - Microsoft Visual Studio 2015, мовою розробки - C++.
ANNOTATION
Course work is devoted to develop software application "FreeSearcher" for an advanced search data on your hard disk using regular expressions. The software application "FreeSearcher" performs basic functions: searching for files using regular expressions, saving search results to a text file and sorting search results.
The software application "FreeSearcher" implemented with a development environment - Microsoft Visual Studio 2015, language of development - C ++.
ЗМІСТ
1 АНАЛІЗ СУЧАСНОГО СТАНУ ПИТАННЯ ТА ОБҐРУНТУВАННЯ ЗАДАЧІ 7
1.1 Аналоги і їх основні характеристики 7
1.2 Обґрунтування вибору мови розробки додатку 10
1.3 Обґрунтування вибору середовища розробки додатку 13
1.4 Висновоки 15
2 РОЗРОБКА ПРОГРАМНОГО ДОДАТКУ 16
2.1 Обґрунтування вибору інтерфейсу 16
2.2 Опис інтерфейсу 17
2.4 Розробка дизайну 23
2.5 Висновки 25
3 РОЗРОБКА МОДЕЛІ ПРОГРАМНОГО ДОДАТКУ 26
3.1 Блок-схема і структурна схема додатку 26
3.2 Алгоритми роботи програмного додатку і базових модулів 29
3.3 Структури даних додатку 32
3.4 Висновки 33
4 ТЕСТУВАННЯ ПРОГРАМНОГО ДОДАТКУ 34
4.1 Методики тестування програмного додатку 34
4.2 Інструкція тестування програмного додатку 34
4.3 Інструкція користувача програмного додатку 35
4.4 Висновки 38
ВИСНОВКИ 39
ПЕРЕЛІК ПОСИЛАНЬ 40
Д О Д А Т К И 41
Додаток А. Інтегровані середовища розробки 42
Додаток Б. Дизайн додатку 44
Додаток В. Лістинг основних функцій програми 46
Додаток Г. Тест-кейси для тестування додатку 48
Додаток Д. Інструкція користувача 51
ВСТУП
Метою даної курсової роботи є розробка програмного додатку для ОС Windows для пошуку даних на жорсткому диску, використовуючи регулярні вирази.
Пошук даних на жорсткому диску на даний час активно впливає на швидкість, ефективність та комфортність користувача у користуванні ОС. З кожним роком жорсткі диски мають все більший об'єм пам'яті - тобто зростає кількість файлів, яку вони зберігають. У зв'язку з цим виникає потреба швидкого пошуку файлів на жорсткому диску. Для полегшення та прискорення цієї процедури використовують пошукові програми. Тому є доцільним розробити власний програмний продукт для розширеного пошуку даних на жорсткому диску.
Об’єктом дослідження є процес розробки програмного додатку "FreeSearcher" для розширеного пошуку даних на жорсткому диску, використовуючи регулярні вирази.
Предметом дослідження є методи і засоби розробки програмного додатку (мова розробки С++ та інтегроване середовище розробки Visual Studio 2015).
Задачами програмного продукту "FreeSearcher" є:
1. Пошук даних на жорсткому диску.
2. Пошук за допомогою регулярних виразів.
3. Вибір директорії пошуку.
4. Відображення результатів пошуку у вигляді списку.
5. Відкриття файлів.
6. Пошук файлів визначеного формату.
Курсова робота складається з чотирьох розділів, представлена на 40 сторінках, містить 12 сторінок додатків.
1 АНАЛІЗ СУЧАСНОГО СТАНУ ПИТАННЯ ТА ОБҐРУНТУВАННЯ ЗАДАЧІ
1.1 Аналоги і їх основні характеристики
LookDisk - додаток, який випущений Vincenzo Iuorno. Перша версія програми вийшла 28 січня 2014р. На даний момент вийшла версія продукту 6.2 від 8 серпня 2015р. Тип ліцензії - FreeWare[1].
Переваги:
Пошук за допомогою регулярних виразів[2].
Пошук файлів визначеного формату.
Вибір директорії пошуку.
Сортування результатів пошуку.
Недоліки:
Відображення результатів пошуку лише після проходження пошуковика по всім файлам і папкам в вибраних директоріях.
Результати і параметри пошуку знаходяться в різних вкладках.
Після згортання програми, вона залишається лише в треї.
Рисунок 1.1 - Приклад роботи програми LookDisk
SearchMyFiles - програмний продукт від компанії Nir Sofer. Додаток випущений 4 березня 2009 року. На даний момент актуальною є версія 2.61 від 13 серпня 2015р. Тип ліцензії - FreeWare[3].
Переваги:
Пошук за допомогою регулярних виразів.
Пошук файлів визначеного формату.
Вибір директорії пошуку.
Недоліки:
Два вікна: вікно параметрів пошуку та вікно результату пошуку.
Пошук лише після вибору всіх параметрів пошуку.
Програма складається з двох вікон: вікно для введення параметрів пошуку(див. рис. 1.2) та вікно виведення результатів пошуку (див. рис. 1.3).
Рисунок 1.2 - Вікно введення параметрів пошуку
Рисунок 1.3 - Вікно виведення результатів пошуку
REM - програмний додаток для пошуку файлів, автором якого є DenisChes. Додаток випущений 27.02.2010р. На сьогоднішній день останньою версією є REM 6.0. Тип ліцензії - FreeWare(див. рис. 1.4).
Переваги:
Пошук файлів визначеного формату.
Вибір директорії пошуку.
Пошук по неповній назві файлу чи папки.
Недоліки:
Автоматичний запуск програми в трей.
Пошук лише після створення зони пошук.
Відсутність регулярних виразів при пошуку.
Рисунок 1.4 - Приклад роботи програми REM
Для проведення аналізу характеристик аналогів та власного додатку потрібно створити таблицю аналізу наступних програмних додатків: "LookDisk", "SerchMyFiles", "REM" та власного програмного продукту "FreeSearcher".
Таблиця 1.1 - Аналіз існуючих аналогів з розробленою програмою
Критерій
LookDisk
SerchMyFiles
REM
FreeSearcher
Миттєвий пошук
-
(0)
-
(0)
-
(0)
+
(0,7)
Регулярні вирази
+
(0,6)
+
(0,6)
-
(0)
+
(0,6)
Сортування результатів пошуку
+
(0,4)
+
(0,4)
-
(0)
+
(0,4)
Результат і параметри пошуку в одному вікні
-
(0)
-
(0)
+
(0,3)
+
(0,3)
Вибір директорії пошуку
+
(0,5)
+
(0,5)
+
(0,5)
+
(0,5)
Сума
1,5
1,5
0,8
2,5
В результаті аналізу, що проведений у таблиці 1.1 було отримано наступні коефіцієнти якості: LookDisk - 1.5, SerchMyFiles - 1.5, REM - 0.8, FreeSearcher - 2.5. Вирішено розробити власний програмний продукт FreeSearcher, адже він має найбільший коефіцієнт якості.
1.2 Обґрунтування вибору мови розробки додатку
Для вибіру мови програмування власного програмного продукту, потрібно проаналізувати дані мови програмування та вибрати оптимальну для розроблюваного додатку.
С++ - об'єктно-орієнтована мова програмування високого рівня, яка розроблена Б'ярном Страуструпом (англ. Bjarne Stroustrup) в AT&T Bell Laboratories (Мюррей-Хілл, Нью-Джерсі) у 1979 році[4].
Найбільше мова програмування C ++ запозичила з мови Сі, а також з безпосереднього її попередника мови BCPL. Ці запозичення забезпечили C ++ потужними засобами низького рівня, що дозволяють вирішувати складні завдання системного програмування. В С++, на відмінну від Сі появилися поняття класу, наслідування і віртуальних функцій, перейнятих з мови Симул 67. Клас є ключовим поняттям C ++. Опис класу містить опис даних, потрібних для подання об'єктів цього типу і набір операцій для роботи з подібними об'єктами.
На відміну від традиційних структур Сі й Паскаля, членами класу є не тільки дані, але й методи. Методи - члени класу мають привілейований доступ до даних усередині об'єктів цього класу і забезпечують інтерфейс між цими об'єктами і рештою програми.
Основна сфера використання мови програмування С++ полягає в розробці Desktop-додатків для різноматнітних операційних систем.
Крім того, операційні системи Windows, Linux, Unix написані на С++. Тому це «рідна мова» практично всього програмного забезпечення, яким користуються переважна більшість користувачів.
Переваги:
Обєктно-орієнтованість.
Кросплатформеність.
Можливість роботи на низькому рівні з адресами та пам'яттю.
Автоматичний виклик деструкторів.
Множинне наслідування.
Недоліки:
Відсутність збирача сміття.
Шаблони в своєму початковому вигляді призводять до породження коду дуже великого обсягу.
Мова програмування Паскаль була розроблена Ніколасом Віртом в 1968 році як альтернатива існуючим мовам програмування, таким, як PL / 1, Algol, Fortran.
На початку 80-х років Паскаль ще більше зміцнив свої позиції з появою трансляторів MS-Pascal і Turbo-Pascal для ПЕОМ. З цього часу Паскаль стає одним з найбільш важливих і широко використовуваних мов програмування. Найважливішою особливістю Паскаля є втілена ідея структурного програмування. Основна причина популярності Паскаля полягає в наступному: простота мови дозволяє швидко її освоїти і створювати алгоритмічно складні програми. Паскаль дає дуже багато в розумінні сутності програмування, він прищеплює гарний стиль програмування, ретельну розробку алгоритму.
Переваги:
Простота мови робить її легкою у вивченні.
Сувора типізація дозволяє заощадити пам'ять.
Кросплатформеність.
Досить низькі апаратні і системні вимоги, як самого компілятора, так і програм, написаних на Паскалі.
Недоліки:
Громіздкі конструкції мови.
Локальні змінні не можна визначати в тому місці, де вони починають використовуватися - це призводить до засмічення простору видимості.
Ключові слова без урахування регістру.
Basic (Beginner's All-Purpose Symbolic Instruction Code - "універсальний символічний код інструкцій для початківців") - мова програмування високого рівня для персональних комп'ютерів. Він з'явився в 1963 році завдяки американцям Джону Кемені і Томас Курцу.
Переваги:
Простота мови робить її легкою у вивченні.
Неявне оголошення змінних.
Висока швидкість створення додатків з графічним інтерфейсом для MS Windows.
Недоліки:
Підтримка операційних систем тільки сімейства Windows і Mac OS.
Відсутність механізму наслідування об'єктів.
Громіздкі конструкції мови.
Повільна швидкість роботи, оскільки всі вбудовані функції мови реалізовані через бібліотеку часу виконання (runtime library).
Для оптимального вибору мови програмування для розроблюваного додатку, потрібно провести аналіз даних програмування(див. таб. 1.2).
Таблиця 1.2 - Аналіз існуючих аналогів з розробленою програмою
Критерій
С++
Паскаль
Basic
Об'єктно-орієнтованість
+
(1)
+
(1)
-
(0)
Кросплатформенність
+
(1)
+
(1)
-
(0)
Множине наслідування
+
(1)
-
(0)
-
(0)
Можливість роботи на низькому рівні з адресами та пам'яттю
+
(1)
+
(1)
+
(0)
Неявне оголошення змінних
-
(0)
-
(0)
+
(1)
Сума
4
3
1
Проаналізувавши мови програмування С++, Pascal та Basic, на основі таблиці 1.2 було прийнято рішення, що С++ найбільше підходить для виконання поставленої задачі, адже у неї велика швидкість роботи програм, що практично не поступається програмам на мові Сі.
1.3 Обґрунтування вибору середовища розробки додатку
Для розробки програмного забезпечення, потрібно обрати інтегроване середовище розробки (IDE - Integrated Development Environment). IDE - це комп'ютерна програма, що допомагає програмісту розробляти нове програмне забезпечення чи модифікувати (удосконалювати) вже існуюче. Для порівняння було обрано Visual Studio, Code::Blocks та C++ Builder.
Microsoft Visual Studio — серія продуктів фірми Майкрософт, які дозволяють розробляти як консольні програми, так і програми з графічним інтерфейсом, в тому числі з підтримкою технології Windows Forms, WPF, а також веб-сайти, веб-додатки тощо[5]. Середовище є досить сучачним, стильним та зручним. Підходить як для новачків, так і уже досвідчених ІТ-фахівців. Влітку 2015р. вийшла нова версія програмного продукту під назвою "Visual Studio 2015". На рисунку А.1 зображений приклад роботи IDE Visual Studio 2015.
Переваги:
Підсвічування коду.
Покрокова трансляція коду.
Підказки при помилках.
Підказки при наборі коду.
Автоматичне форматування коду.
Недоліки:
Великий розмір програми.
Не підтримка Unix-подібних операційних систем.
Code::Blocks — кросплатформене середовище розробки програмного забезпечення. Написане компанією The Code::Blocks team на мові програмування С++. Підтримує мови програмування С, С++ та Fortran. Завдяки численним плагінам, функціональність Code::Blocks може бути істотно розширена. На рисунку А.2 зображений приклад роботи IDE Code::Blocks.
Переваги:
Підсвічування коду.
Автоматичне форматування коду.
Підказки при наборі коду.
Недоліки:
Не коректно працює покрокова трансляція коду.
Відсутність підказок при помилках.
C++ Builder — середовище швидкої розробки (RAD), що випускається компанією Codegear, дочірньою фірмою компанії Embarcadero (раніше Borland). Призначена для написання програм на мові програмування C++ (див. рис. А.3).
Builder містить інструменти, які дозволяють здійснювати справжню візуальну розробку Windows-програм методом drag-and-drop та спрощують програмування завдяки вбудованому WYSIWYG — редактору інтерфейсу.
Переваги:
Підсвічування коду.
Підказки при наборі коду.
Автоматичне форматування коду.
Покрокова трансляція коду.
Недоліки:
Не підтримка Unix-подібних операційних систем.
Нові версії програмного продукту мають безкоштовну тільки пробну версію програми, яка має досить урізаний функціонал.
Таблиця 1.3 - Аналіз IDE
Критерій
Visual Studio
Code::Blocks
C++ Builder
Підсвічування коду
+
(0,5)
+
(0,5)
+
(0,5)
Покрокова трансляція коду
+
(0,8)
+/-
(0,4)
+
(0,8)
Підказки при наборі коду
+
(0,4)
+
(0,4)
+
(0,4)
Автоматичне форматування коду
+
(0,3)
+
(0,3)
+
(0,3)
Підказки при помилках
+
(0,6)
-
(0)
-
(0)
Сума
2,6
1,6
2,0
Дослідивши дані IDE, найбільш ефективним та зручним середовищем розробки було обрано Microsoft Visual Studio. Дане програмне забезпечення багатофункціональне, що полегшує роботу програміста.
1.4 Висновоки
Проаналізувавши аналоги, мови програмування та IDE, було прийнято розробити власний програмний додаток "FreeSearcher" для розширеного пошуку даних на жорсткому диску, використовуючи регулярні вирази. Мовою програмування було обрано С++, а інтегрованим середовищем розробки обрано Microsoft Visual Studio.
2 РОЗРОБКА ПРОГРАМНОГО ДОДАТКУ
Обґрунтування вибору інтерфейсу
Windows Forms - інтерфейс програмування додатків (API), що відповідає за графічний інтерфейс користувача і є частиною Microsoft .NET Framework. Даний інтерфейс спрощує доступ до елементів інтерфейсу Microsoft Windows за рахунок створення обгортки для існуючого Win32 API в керованому коді. Причому керований код - класи, що реалізують API для Windows Forms, не залежать від мови розробки. Тобто програміст однаково може використовувати Windows Forms як при написанні ПЗ на C #, С ++, так і на VB.Net, J # та ін.
В Windows Forms форма є видимою поверхнею, на якій відображається інформація, яка необхідна користувачеві. Зазвичай додаток Windows Forms будується шляхом приміщення елементів управління на форму і написанням коду для подій, які виникають після дій користувача над елементами управління.
Існує 2 типи документного інтерфейсу: однодокументний (SDI, Single Document Interface) та багатодокументний (MDI, Multiple Document Interface).
Single Document Interface (SDI) - спосіб організації графічного інтерфейсу додатків в окремих вікнах. Зазвичай в кожному додатку існує одне головне вікно та одне діалогове вікно. Не існує «фонового» або «батьківського» вікна, що містить меню або панелі інструментів, по відношенню до активного - кожне вікно містить ці елементи. Такі додатки дозволяють працювати більш, ніж з одним документом одночасно, наприклад, текстові редактори чи графічні редактори. Зазвичай, кожне з вікон відображається окремо на панелі завдань операційної системи[6].
Multiple document interface (MDI) - спосіб організації графічного інтерфейсу користувача, що передбачає використання віконного інтерфейсу, в якому більшість вікон (виключаючи, тільки модальні вікна) розташовані всередині одного головного вікна. Цим він і відрізняється від SDI, в якому вікна розташовуються незалежно один від одного[7].
Для програмного додатку "FreeSearcher" було обрано SDI інтерфейс, адже розроблюваний програмний продукт має функціонал, який для зручності повинен розташовуватись на одному робочому вікні. Також додаток не матиме нагромадження інструментів на одному вікні.
Опис інтерфейсу
Розроблюваний програмний продукт "FreeSearcher" буде мати одновіконний інтерфейс, а тому буде містите лише головне вікно та модальне вікно "Про програму".
Рисунок 2.1 - Схема інтерфейсу головного вікна
На рисунку 2.1 зображена схема інтерфейсу головного вікна, яка містить:
Іконка програми.
Назва програми.
Кнопка згорнення вікна.
Кнопка розгорнення вікна.
Кнопка закриття вікна.
Елемент меню "Файл" (див. рисунок 2.2).
Елемент меню "Інструменти" (див. рисунок 2.3).
Елемент меню "Допомога" (див. рисунок 2.4).
Меню.
Поле директорії пошуку.
Кнопка вибору директорії.
Панель інструментів для вибору директорії пошуку.
Поле регулярного виразу.
Кнопка початку пошуку.
Панель інструментів для вводу регулярного виразу.
Таблиця відображення результатів пошуку.
Кількість результатів пошуку.
Панель прогресу.
Статус програми.
Панель статусу.
На рисунку 2.2 зображена схема розгорнутого елемента меню "Файл".
Рисунок 2.2 - Розгорнутий список елемента меню "Файл"
На ній зображено:
Елемент меню "Файл".
Елемент меню "Зберегти в файл".
Елемент меню "Вихід".
На рисунку 2.3 зображена схема розгорнутого елемента меню "Інструменти".
Рисунок 2.3 - Розгорнутий список елемента меню "Інструменти"
На ній зображено:
Елемент меню "Інструменти".
Елемент меню "Пошук".
Елемент меню "Вибір директорії пошуку".
На рисунку 2.4 зображена схема розгорнутого елемента меню "Допомога".
Рисунок 2.4 - Розгорнутий список елемента меню "Допомога"
На ній зображено:
Елемент меню "Допомога".
Елемент меню "Довідка".
Елемент меню "Про програму".
На рисунку 2.5 зображена схема інтерфейсу вікна "Про програму".
Рисунок 2.5 - Схема інтерфейсу вікна "Про програму"
Вона містить:
Назва вікна.
Кнопка закриття вікна.
Логотип програми.
Назва програмного продукту.
Версія програмного продукту.
Відомості про автора.
Тип ліцензії.
Короткий опис додатку.
Кнопка "Ок".
Структурна схема інтерфейсу
Розроблюваний програмний продукт складається з головного вікна та вікна "Про програму" (рисунок 2.6).
Рисунок 2.6 - Структура схема додатку "FreeSearcher"
Головне вікно буде містити:
menuStrip - елемент класу MenuStrip слугує контейнером для елементів меню.
MenuItem_File - елемент класу ToolStripMenuItem, що містить елемент меню "Файл".
TSMI_Save - елемент класу ToolStripMenuItem, який виконує функцію збереження результатів пошуку в текстовий файл.
TSMI_Exit - елемент класу ToolStripMenuItem, який закриває програму.
MenuItem_Tools - елемент класу ToolStripMenuItem, що містить елемент меню "Інструменти".
TSMI_Search - елемент класу ToolStripMenuItem, який призначений для початку пошуку.
TSMI_folder - елемент класу ToolStripMenuItem, який призначений для вибору директорії пошуку.
MenuItem_Help - елемент класу ToolStripMenuItem, що містить елемент меню "Допомога".
TSMI_Help - елемент класу ToolStripMenuItem, який викликає керівництво користувача.
TSMI_aboutProgram - елемент класу ToolStripMenuItem, який викликає модальне вікно "Про програму".
statusStrip - елемент класу StatusStrip, що слугує контейнером для елементів статусу програми.
L_status_result - елемент класу ToolStripStatusLabel, який відображає, яка кількість файлів була знайдена.
PrgBar_status_search - елемент класу ToolStripProgressBar, який відображає графічно процес пошуку файлів на жорсткому диску.
L_status_program - елемент класу ToolStripStatusLabel, який відображає статус програми.
DGV_result_search- елемент класу DataGridView, який відображає результати пошуку.
toolStrip_folder - елемент класу ToolStrip, що слугує контейнером для елементів управління програмою.
toolStripL_folder - елемент класу ToolStripLabel, який відображає статичний текст-допомогу користувачеві.
toolStripTB_folder - елемент класу ToolStripTextBox, який відображає шлях до вибраної користувачем директорії.
toolStripB_folder - елемент класу ToolStripButton, який слугує кнопкою для вибору директорії.
toolStrip_regular - елемент класу ToolStrip, що слугує контейнером для елементів управління програмою.
toolStripL_regular - елемент класу ToolStripLabel, який відображає статичний текст-допомогу користувачеві.
toolStripTB_regular - елемент класу ToolStripTextBox, який слугує поле вводу регулярного виразу.
toolStripB_regular - елемент класу ToolStripButton, який слугує кнопкою для початку пошуку.
Рисунок 2.7 - Структурна схема головного вікна
Вікно "Про програму" міститеме:
PB_logo - елемент класу PictureBox, що відображає логотип програми.
L_ProductName - елемент класу Label, що відображає логотип програмного продукту.
L_Version - елемент класу Label, що відображає поточну версію додатку.
L_Copyright - елемент класу Label, що відображає інформацію про розробника.
L_license - елемент класу Label, що відображає тип ліцензії програмного продукту.
TB_description - елемент класу TextBox, що відображає короткий опис функціоналу додатку та останні змін з виходу нової версії програми.
B_OK - елемент класу Button, який закриває діалогове вікно.
tableLayoutPanel - елемент класу TableLayoutPanel, який слугує контейнером для елементів вікна "Про програму".
Структурна схема вікна "Про програму" зображена на рисунку 2.8.
Рисунок 2.8 - Структурна схема вікна "Про програму"
За допомогою структурних схем було зображено основні елементи програми та їх взаємозв’язок.
Розробка дизайну
Для вибору інтерфейсу дизайну потрібно проаналізувати типи інтерфейсів: ХР- сумісний, Vista-сумісний, METRO.
ХР-сумісний інтерфейс містить такі елементи: меню у формі випадаючого списку, панель інструментів, робоче поле та панель статусу. Прикладом програмного продукту з ХР-сумісним інтерфейсом є додаток Microsoft Word 2003 (див. рис. Б.1).
Vista-сумісний інтерфейс містить такі елементи: меню у формі закладок, панель інструментів для кожного елементу меню, робоче поле та панель статусу. Прикладом програмного продукту з Vista-сумісним інтерфейсом є додаток Microsoft Word 2007 (див. рис. Б.2).
Основними принципами Metro є акцент на хорошій типографіці і великий текст, який відразу впадає в очі. Microsoft називає Metro «простим, чистим, сучасним». Велику роль відіграють анімація, плавні переходи і взаємодія з користувачем на основі реальних рухів (таких, як натискання або переміщення). Це створює в користувача враження «живого» і чуйного інтерфейсу з «доданим відчуттям глибини». Прикладом Metro інтерфейсу панель "Пуск" в операційній системі Windows 8 (див. рис. Б.3).
Для додатку FreeSearcher найбільше підходить ХР-сумісний інтерфейс, адже даний програмний продукт не містить багато інструментів, які б могли розміститися у вкладках з Vista-сумісний інтерфейсом. Metro інтерфейс не коректно використовувати, адже він зручний для використання на мобільних пристроях, де керування відбувається за допомогою маніпулювань рукою користувача.
При розробці дизайну додатку важливою є кольорова гамма. Адже кількість, контрастність, насиченість кольорів впливає на роботу користувача з програмним продуктом. Правильно підібрана кольорова гамма робить інтерфейс додатку легким у розуміні та сприйнятті (див. рис. Б.4).
Проаналізувавши рисунок Б.4 було прийнято, що кольорова палітра розроблюваного програмного продукту буде складатися з білого кольору та відтінків сірого. Адже вони відносяться до холодних кольорів, які асоціюється у користувача із зимою: холод, сніг, похмура погода.
Сірий колір викликає відчуття серйозності, консерватизму і традиціоналізму. Збуджує відчуття чистоти і невинності. Білий в свою чергу пов'язаний з чистотою, простотою, свіжістю та добротою.
Висновки
Для програмного додатку "FreeSearcher" було створено одновіконний інтерфейс (SDI), який містить головне вікно та діалогове вікно "Про програму". Було розроблено графічну схему головного вікна та модального вікна "Про програму": визначено основні елементи та їх призначення. Також були створенні структурні схеми: додатку "FreeSearcher", головного вікна "MainForm" та модального вікна "AboutProgram". В структурних схемах були визначені всі елементи інтерфейсу вікна, були описані за своїм функціональним призначенням. Вирішено створити дизайн з XP-сумісним інтерфейсом. Основними кольорами в дизайні розроблюваного додатку є білий та відтінки сірого.
3 РОЗРОБКА МОДЕЛІ ПРОГРАМНОГО ДОДАТКУ
3.1 Блок-схема і структурна схема додатку
Додаток "FreeSearcher" містить 2 класи: MainForm та About_Program. Кожен з класів містить поля та методи, що відображені на рисунку 3.1. Взаємозв'язок між класами - це особливий тип логічних відносин між сутностями, показаних на діаграмах класів і об'єктів. Між даними класами взаємозв'язок називається агрегацією. Агрегації є особливим типом асоціацій, за якого два класи, які беруть участь у зв’язку не є рівнозначними, вони мають зв’язок типу “ціле-частина”[8]. За допомогою агрегації можна описати, яким чином клас, який грає роль цілого, складається з інших класів, які грають роль частин. У агрегаціях клас, який грає роль цілого, завжди має численність рівну одиниці.
Рисунок 3.1 – Схема класів додатку "FreeSearcher"
Позначення режимів доступу на схемі класів (рис. 3.1):
+ доступ public.
- доступ private.
# доступ protected.
Компоненти програмного додатку "FreeSearcher" (рис.3.2).
Рисунок 3.2 – Компоненти програмного додатку "FreeSearcher"
About_program.h - .h-файл форми вікна «Про програму».
MainForm.h - .h-файл форми головного вікна програми.
resource.h -файл файлу ресурсів.
stdafx.h - .h-файл попередньо скомпільованого заголовку.
About_program.cpp - .cpp-файл форми вікна «Про програму».
AssemblyInfo.cpp - .cpp –файл, що містить загальну інформацію про програму.
FreeSearcher.cpp - Вхідний файл в програму.
MainForm.cpp - .cpp -файл форми головного вікна програми.
stdafx.cpp - .cpp -файл попередньо скомпільованого заголовку.
Взаємодія основних блоків та модулів програмного додатку "FreeSearhcer" (рис. 3.3).
Рисунок 3.3 – Взаємодія основних блоків та модулів форми головного вікна програмного додатку "FreeSearcher"
System – простір імен, надає доступ до засобів, що визначають основні види типів даних, події і обробки подій, інтерфейси, атрибути і виключення обробки.
System::IO - простір імен, який надає доступ для роботи з файлами, папками, дисками та пам'яттю.
System::Text::RegularExpressions - простір імен, кий надає доступ для роботи з регулярними виразами.
System::Threading - простір імен, кий надає доступ для роботи з потоками.
System::Windows::Forms – простір імен, що надає доступ до засобів, необхідних для створення форм.
System::Drawing - простір імен, надає доступ до засобів роботи з графікою.
System::Diagnostics – простір імен, що надає доступ до засобів, що дозволяють здійснювати взаємодію з системними процесами.
MainForm.resX – файл ресурсів форми головного вікна програми.
About_program.h - .h-файл форми вікна «Про програму».
About_program.resx – файл ресурсів форми вікна «Про програму». Містить ресурси, що використовуються в даній формі.
3.2 Алгоритми роботи програмного додатку і базових модулів
Алгоритм роботи програмного додатку "FreeSearcher" зображений на рисунку 3.4.
Рисунок 3.4 - Алгоритм роботи програмного додатку "FreeSearcher"
Алгоритм роботи програмного додатку складається з 17 логічних елементів:
Початок роботи програми.
Блок ініціалізації компонентів головного вікна.
Ініціалізація змінної Code, яка використовується для вибору дій користувача.
Метод WaitAction(), який відловлює дії користувача та оброблює змінну Code.
Якщо Code=0, викликається метод TSMI_Exit_Click().
Метод, що викликає функцію завершення роботи програми.
Метод, що обробляє натиск на кнопку вибору директорії пошуку.
Якщо Code=1, викликається метод toolStripB_folder_Click().
Метод, що обробляє натиск на кнопку пошуку.
Якщо Code=2, викликається метод toolStripB_regular_Click().
Метод, що викликає діалогове вікно для збереження результатів пошуку у текстовий файл.
Якщо Code=3, викликається метод TSMI_Save_Click().
Метод, що викликає довідку.
Якщо Code=4, викликається метод TSMI_Help_Click().
Метод, що викликає діалогове вікно вікна "Про програму".
Якщо Code=5, викликається метод TSMI_aboutProgram_Click().
Завершення роботи програми.
Лістинг функції "WaitAction" наведений на рисунку В.1.
Алгоритм роботи функції "FileSearchFunction" (рис.3.5). Дана функція є рекурсивною та призначена для пошуку файлів в заданій директорії, відповідно до регулярно виразу.
Функція "FileSearchFunction" отримує один параметр типу Object^, який приводиться до типу String^. Даний праметр визначає в якій директорії розпочинати пошук. Функція завершує свою роботу коли досягнуто директорії, в якій немає підпапок.
Рисунок 3.5 - Алгоритм роботи функції "FileSearchFunction"
Лістинг функції "FileSearchFunction" наведений на рисунку В.2.
Алгоритм роботи функції "CountFiles" (рис. 3.6). Дана функція є рекурсивною та призначена для підрахунку кількості файлів в заданій директорії, включаючи підпапки.
Рисунок 3.6 - Алгоритм роботи функції "CountFiles"
Функція "CountFiles"отримує один параметр типу Object^, який приводиться до типу String^. Він визначає в якій директорії розпочинати підрахунок кількості файлів. Функція завершує свою роботу коли досягнуто