Міністерство освіти і науки України
Вінницький національний технічний університет
Інститут інформаційних технологій та комп’ютерної інженерії
Кафедра захисту інформації
Розробка програми для ДЕМОНСТРАЦІЇ АВТОМОБІЛЬНОГО РУХУ ЧЕРЕЗ ЗАЛІЗНОДОРОЖНІЙ ПЕРЕЇЗД
Вінниця 2008
Анотація
Даний курсовий проект призначений для демонстрування автомобільного руху через залізнодорожній переїзд . Програма демонструє рух автомобіля через переїзд, та наслідки, які можуть виникнути внаслідок неуважності працівника переїзду. Для досягнення поставленої задачі використовується програмне середовище Visual C++ 8.0 з використанням Win32 API функцій. Програма реалізує діалоговий інтерфейс користувача, який включає головне меню, що викликає потрібні користувачеві дії: запуск програми, виклик вікон для виконання потрібних дій.
ЗМІСТ
ВСТУП 5
1 Розробка структури програмного забезпечення
1.1 Обгрунтування структури програмного забезпечення
1.2 Розробка головного меню програми
1.3 Розробка структури програми
1.4 Створення ресурсів
1.5 Алгоритм роботи додатку
1.6 Розробка загальної схеми функціонування програми
2.1 Підбір програмних засобів
2.2 Реалізація інтерфейсу
2.3 Реалізація виведення графічних зображень
2.4 Програмна реалізація вікна
2.5 Програмна реалізація загальних елементів керування та музики
2.6 Програмна реалізація роботи з шлагбаумом
3 Аналіз результатів роботи програми
3.1 Інструкція з технічного обслуговування
3.2 Інструкція системного програміста
3.3 Інструкція програміста
3.4 Інструкція оператора
ВИСНОВКИ
ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ
Додаток. Лістинг програми
Вступ
Основною ідеєю структурного програмування є розділення складної задачі на декілька менших задач, і це ділення треба продовжувати до тих пір поки задачі не стануть простими для розуміння. Основною ідеєю сучасного програмування є створення окремих елементів, придатних до складання конкретних програм.
На відміну від бібліотек стандартних підпрограм, в яких теж використовується повторні модулі об’єктно-орієнтований підхід дозволяє створити ще ієрархію вкладених один в одного модулів. Модель об’єктно-орієнтованого програмування базується на декількох основних принципах: абстрагуванні даних, інкапсуляції, наслідувані та поліморфізмі.
Абстракція даних – це можливість визначати нові типи даних, з якими можна працювати майже так само, як і з основними. Такі типи називають абстрактними, хоча більш точною назвою є “типи даних, що визначаються користувачем”.
Інкапсуляція – це механізм, який об’єднує дані і код, що працює з цими даними і захищає перше та друге від зовнішнього втручання або неправильного використання.
Наслідування – це процес, за допомогою якого один об’єкт може отримати властивості іншого.
Поліморфізм – це властивість програми вести себе по-різному, в залежності від ситуації, що виникає в момент виконання. Ця властивість полягає у принципі перевантаження функцій, тобто в не однократній об’яві функції з різними типами аргументів. Всі вони базуються на використанні класів.
Об’єктно-орієнтоване програмування є дуже потужним засобом програмування, який є одним з передових підходів до програмування. Однією з найдосконаліших програмних реалізацій цієї мови є програмний пакет Microsoft Visual C++ 8.0, за допомогою якого і буде реалізована дана курсова робота.
Оскільки данна програма буде використовуватись в середовищі MS Windows, потрібно створити, просте та зручне для користувача, меню.
Для демонстрації автомобільного руху через переїзд необхідно використати зрозумілий інтерфейс та зробити зрозумілою роботу самої програми. Меню буде створене з простими та зручними пунктами.
Меню має складатись з таких пунктів: “Старт Поїзда”, “Керування Шлагбаумом”, “Сервіс”, “Вихід”. В пункті меню “Сервіс будуть: відомості про розробника програми, саме завдання та допомога по використанню програмного продукту.
Самим головним пунктом меню програми буде “Старт Поїзда”. Який наглядно покаже рух автомобіля (рух автомобіля керується за допомогою шлагбаума), поїзда, та приклад аварії.
Меню повинно містити два основні та два додаткових розділи: Старт Поїзда та Керування шлагбаумом, Сервіс та Вихід, в яких буде реалізовано доступ користувача до всіх можливостей програмного продукту.
Розглянемо кожен пункт меню детальніше:
Старт поїзда – початок руху поїзда.
Керування Шлагбаумом:
- Підняти Шлагбаум;
- Опустити Шлагбаум;
Сервіс:
– Завдання Курсової – варіант та зміст задачі;
– Інфо –відомості про виконавця;
– Допомога – допомога.
Вихід – завершення роботи програми .
Розглянемо структуру програми. Після запуску програми, на екрані з’явиться головне вікно додатку. У ньому буде реалізовано фоновий малюнок, на якому буде відбуватись власне й рух автомобіля та поїзда. Рух буде показаний у вигляді чотирьох малюнків, завантажених у проект (детальніше при програмній реалізації): дорога і переїзд (Background..bmp), шлагбаум (Shlagbaym.bmp), поїзд (train.bmp), автомобіль (car2.bmp).Для того, щоб програма була зручною для користувача, потрібно створити дружній і зручний інтерфейс. Це може бути свій оригінальний курсор, іконка, екранна заставка і т.п.
Кнопки Завдання Курсової, Інфо, Допомога будуть представленні у вигляді діалогових вікон.
Підсумовуючи вище сказане, можна зробити висновок, що майбутній програмний продукт буде складатися з однієї віконної та чотирьох діалогових процедур, що забезпечить створення зручного для стороннього користувача інтерфейсу.
Для підключення іконки та курсору необхідно підключити до проекту створений файл ресурсів. Назвемо його l3.rc. Добавимо курсор: IDC_CURSOR1, (рис. 1.1), далі іконки: IDI_ICON1, IDI_ICON2 (рис. 1.2).
Рисунок 1.1 – Вигляд курсору
Рисунок 1.2 – Вигляд іконок
Для підключення ресурсів потрібно на початку програми написати таку стрічку: #include «resource.h», та вказати курсор, меню та іконку при реєстрації вікна:
RegClass(WndProc,szMainClass,COLOR_APPWORKSPACE,IDI_ICON1,IDC_CURSOR1,
IDR_MENU1)
Завдання курсової (рис. 1.3), інформація про виконавця (рис. 1.4), допомога (рис. 1.5) потрібно оформити діалоговими вікнами, щоб зробити стиль програми більш гарнішимзручнішим.
Рисунок 1.3 – Вигляд діалогового вікна «Завдання Курсової роботи»
Рисунок 1.4 – Вигляд діалогового вікна «Інфо»
Рисунок 1.5 - Вигляд діалогового вікна «Допомога»
При натисненні на пункт меню «Старт Поїзда» буде рухатись поїзд, при цьому машина рухається залежно від положення шлагбауму. При натисненні на «Керування Шлагбаумом» ->«Підняти Шлагбаум» - шлагбаум піднімається, і автомобіль продовжує рух, «Керування Шлагбаумом» ->«Опустити Шлагбаум» - шлагбаум опускається і автомобіль зупиниться, коли під`їде до нього. Нижче наведено алгоритм, за яким працює додаток (рис. 1.6).
Рисунок 1.6 – Алгоритм дорожнього руху
При завантаженні програми відкриється вікно з меню. Алгоритм, представлений у вигляді схеми, наведений нижче (рис. 1.7).
Рисунок 1.7 – Загальна схема програми
2.1 Підбір програмних засобів
В даному програмному продукті потрібно наглядно показати, як підключити і працювати з ресурсами при використанні API-функцій. Програма складається з однієї віконної та чотирьох діалогових функцій, що викликаються в залежності від команд користувача. Для кожного вікна потрібно реалізувати прийнятний для користувача інтерфейс. Для цього потрібно показати як реалізується графічне представлення програми, як потрібно створити і працювати з різними типами вікон.
Для більш цікавішої роботи програми потрібно підключити загальні елементи керування та доповнити рух певними звуками. Рухомість графічних зображень додасть програмі динамічності.
Реалізацію кожного елемента програми розглянемо в окремих пунктах.
2.2 Реалізація інтерфейсу
Як було сказано у попередніх розділах головне меню знаходиться в головному вікні. Воно складається з розділів: Старт Поїзда, Керування Шлагбаумом, Сервіс та Вихід. При натисненні на «Вихід» вилетить текстове повідомлення, яке буде просити відповіді. Це повідомлення являє собою функцію MessageBox, яка створює, відображає, забезпечує роботу та закриває вікно повідомлення:
int WIAPI MessageBox(HWND hWnd, LPCTSTR Text, LPCTSTR lpCaption,
UINT uType );
Якщо hWnd=NULL, вікно повідомлення не має батьківського вікна. При lpCaption = NULL, в заголовок виводиться рядок “Помилка”. Параметр uType визначає зміст та поводження вікна повідомлень. Також передбачена можливість видачі звукових повідомлень, при визові функції MessageBeep. Синтаксис цієї функції:
BOOL MessageBeep(UINT uType);