Розробити прикладення "Вантажоперевезення"

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ,
МОЛОДІ ТА СПОРТУ УКРАЇНИ
ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД
«ПРИАЗОВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ»
МАРІУПОЛЬСКИЙ МЕХАНІКО-МЕТАЛЛУРГІЙНИЙКОЛЕДЖ
Розробити прикладення
«Вантажоперевезення»
КУРСОВИЙ ПРОЕКТ
з дисципліни: «Об’єктно-орієнтованепрограмування»
2011

Реферат
Зміст
Вступ
1.Специфікація проекту
1.1Призначення розробки та основи для її виконання
1.2Постановка задачі
1.3Вимоги до програми
1.4Вимоги до програмної документації
1.5Структура програми
2.Програмна документація
2.1Керівництво системного програміста
2.1.1Архітектура програми
2.1.2Встановлення і перевірка програми
2.2Керівництво користувача
2.2.1Призначення програми
2.2.2Виконання програми
2.2.3Повідомлення оператору
Висновки
Переліквикористаних джерел
Додатки

РЕФЕРАТ
Темакурсового проекту: «Розробити прикладення «Вантажоперевезення». Метою курсовогопроекту є створення програми «Вантажоперевезення» в середовищі програмування BorlandC++ Builder.
Пояснювальназаписка до курсового проекту складається з наступних розділів: вступ,специфікація проекту, програмна документація, висновки, перелік використаних джерел та додатків.
У вступі розкриваєтьсянеобхідність використання комп’ютерної техніки, позначена важливість використанняінформаційних систем в сучасних умовах, їх роль в предметній галузі «Вантажоперевезення»,роль засобів зберігання даних в інформаційних системах. Крім того, вказані цільта задачі курсового проекту, відомості о розроблюваній програмі (призначення,що дозволить автоматизувати, технології та язик програмування, які будутьвикористані під час розробки програми.
У першійчастині «Специфікація проекту»викладено призначення розробки тапідстави для її виконання, данапостановка завдання з описом того, що повинна виконувати майбутня програма, описанівзаємозв’язки між таблицямиі подано фізичнийопис моделі. Крім того, розглянуто вимоги до програми і програмної документації. Описані структурапрограми, тобто використовуванікласи і розробляєтьсяграфічний інтерфейс.
Удругій частині курсового проекту «Програмна документація» подані інструкції длясистемного програміста – проектні рішення, архітектура розробленої програми,відомості про призначення, настроювання і перевірку програми, також приведенаUML-діаграма класів з описом призначення форм та класів, а також опис апаратнихта програмних засобів, необхідних для функціонування розробленої програми, діїпо інсталяції програми ПК користувача, способи перевірки, які дають можливістьзробити загальні висновки про працездатність програми. У керівництвікористувача містяться відомості о використанні програми за призначенням, їїфункціях, подано опис повідомлень користувачу у процесі роботи програми,вказана послідовність дій оператора по роботі з програмним забезпеченням,можлива реакція програми на дії оператора з видами форм програми.
Ввисновках приведена оцінка отриманих результатів роботи, а також тих, які небули реалізовані. Наведено перелік використаних джерел, використаних принаписання курсового проекту. Додаток А містить вихідний код розробленоїпрограми.
Проектмістить 22 рисунків, 7 таблиць, виконаний в обсязі 43 аркушів.
ОБ’ЄКТНО-ОРІЄНТОВАНЕПРОГРАМУВАННЯ, C++ BUILDER,АВТОМАТИЗОВАНА СИСТЕМА, ПРОГРАММА, БАЗА ДАНИХ, UML-ДІАГРАМА, МЕТОД, КЛАС, ПРОГРАМНИЙКОД, ІНТЕРФЕЙС

ЗМІСТ
Вступ
1.Специфікація проекту
1.1Призначення розробки тапідстави для її виконання
1.2Постановка завдання
1.3Вимоги до програми
1.4Вимоги до програмної документації
1.5Структура програми
2.Програмна документація
2.1Керівництво системного програміста
2.1.1Архітектура програми
2.1.2Установка і перевірка програми
2.2Керівництво користувача
2.2.1Призначення програми
2.2.2Виконання програми
2.2.3Повідомлення оператору
Висновки
Переліквикористаних джерел
ДодатокА Вихідний код програми

ВСТУП
Новітня система об’єктно-орієнтованогопрограмування C + + Builder виробництва корпорації Borland призначена дляопераційних систем Windows 95 і NT. Інтегрована середовище C + + Builderзабезпечує швидкість візуальної розробки, продуктивність повторновикористовуваних компонентів у поєднанні з міццю мовних засобів C + +,вдосконаленими інструментами і різномасштабними засобами доступу до баз даних. C+ + Builder може бути використаний скрізь, де потрібно доповнити існуючі програмирозширеним стандартом мови C + +, підвищити швидкодію і надати для користувачаінтерфейсу якості професійного рівня.
Інтегроване середовище розробки об’єднує Редактор форм.Інспектор об’єктів. Палітру компонент. Адміністратор проекту і повністю інтегрованіРедактор коду і Відладчик — інструменти швидкої розробки програмних додатків,що забезпечують повний контроль над кодом і ресурсами. Професійнізасоби мови C + + інтегровані в візуальне середовище розробки. C + + Builderнадає швидкодіючий компілятор з мови Borland C + +, ефективний інкрементальнийзавантажувач і гнучкі засоби налагодження як на рівні вихідних інструкцій, такі на рівні ассемблерних команд — у розрахунку задовольнити високі вимогипрограмістів-професіоналів. Конструювання за способом“drag-and-drop” дозволяє створювати додаток простим перетягуванням захопленихмишею візуальних компонент з Палітри на форму додатку. Інспектор об’єктів надаєможливість оперувати з властивостями і подіями компонент, автоматично створюючизаготовки функцій обробки подій, які наповнюються кодом і редагуються в процесірозробки. Механізми двонаправленої розробки(two-way-tools) усувають бар’єри між програмістом і його кодом. Технологіядвонаправленої розробки забезпечує контроль за вашим кодом за допомогоюгнучкого, інтегрованого та синхронізованого взаємодії між інструментамивізуального проектування і Редактором коду.
Темою даного курсового проекту є розробка прикладення«Вантажоперевезення».
Метоюкурсового проекту — вивчення мови програмування і середовища розробки C + +Builder для придбання практичних навичок програмування, а також автоматизаціяпроцесу вирішення конкретних завдань з різних областей застосування.

1. СПЕЦІФІКАЦІЯ ПРОЕКТУ
1.1Призначення розробки та основи для її виконання
Програма,яке розробляється у курсовому проекті, має назву «Вантажоперевезення».Вона призначена для автоматизованої роботи з даними по перевезенні вантажів – введення, редагування, видалення довідкових даних, данихпро вантаж, його типи, кількість вантажу, вартість за перевезення. Програма дозволяєу зручному вигляді переглядати та обробляти інформацію, а також забезпечуєшвидкий пошук, введених раніше даних, та, крім того, формування звітноїінформації у вигляді звіту за замовленням перевезення вантажів.
Документом,на підставі якого ведеться розробка програмного забезпечення, є завдання длякурсового проекту, видане керівником проекту та узгоджене головою цикловоїкомісії «Вантажоперевезення». Тематика курсового проектурозглянута і затверджена на засіданні циклової комісії.
1.2Постановка завдання
Розробитиавтоматизовану програму «Вантажоперевезення».
Програмнезабезпечення повинно забезпечувати роботу з базою даних вантажів, якіперевозяться на автомобілях, вартістю за їх перевезення, кількістю вантажу тазамовниками на перевезення. Також повинні бути передбачені пошук автомобіля запрізвищем власника та за держ номером, пошук за типом вантажу, сортування завартістю, формування за відфільтрованим записом звіту про замовленняперевезення вантажу.
Базаданих складається з чотирьох таблиць: «Вантаж», «Автомобіль», «Замовлення», «Графік».
Взаємозв’язокміж таблицями «Вантаж» та «Замовлення» «один до багатьох», тому що один вантажможе бути замовлений багато разів, а одне замовлення відноситься тільки доодного вантажу. Аналогічні взаємозв’язки між таблицями «Автомобіль» та «Графік»,«Замовлення» та «Графік»
Фізичнийопис бази даних представлено в таблицях 1-4.
Таблиця1 – Вантаж (gruz)Назва поля Атрибут Тип поля Обмеження Unikey_gruza Код вантажу Лічильник Tip_gruza Тип вантажу Текстовий Stoim_perevozki Вартість превезення Числовий >0 Strahovka Вартість страховки Числовий >0
Таблица2 – Автомобіль (avto)Назва поля Атрибут Тип поля Обмеження Unikey_avto Код автомобіля Лічильник Marka_avto Марка автомобіля Текстовий Model_avto Модель автомобіля Текстовий Fio_vladelca ПІБ власника Текстовий Data_texosmotra Дата тех огляду Дата Strahovka Вартість страховки авто Числовий >0 Gos_nomera Держ номер Текстовий
Таблица3 – Замовлення (zakaz)Назва поля Атрибут Тип поля Обмеження Unikey_zakaza Код замовлення Счетчик Unikey_gruza Код вантажу Числовий >0 Zakazchik Замовник Текстовий Adress_zakazchik Адреса замовника Текстовий Telefon_zakazchik Номер телефону Текстовий Data_zakaza Дата замовлення Дата Kol_vo_zakaza Кількість замовлення Числовой >0 Unikey_gruz_st Код вантажу Числовой >0 Unikey_gruz_tp Код вантажу Числовой >0

Таблица4 – Графік (grafik)Назва поля Атрибут Тип поля Обмеження Unikey_grafik Код тарифу Счетчик Unikey_zakaza Посада Числовий >0 Unikey_avto Тариф Числовий >0 Data_otpravleniya Дата відправлення Дата Vremya_otpravleniya Час відправлення Часовий Data_prib Дата прибуття Дата Vremya_prib Час прибуття Часовий Kol_vo_gruza Кількість вантажу Числовий >0 Unikey_avto_dat Код автомобіля Числовий >0 Unikey_zak_dat Код замовлення Числовий >0 Unikey_gruz_dat Код вантажу Числовий >0
1.3Вимоги до програми
Мовареалізації – C++ Builder.
Вимогидо графічного інтерфейсу користувача:
–         Назви елементів інтерфейсу повинні бутивиконані українською, або російською мовами;
–         Головне вікно програми – фрейм знаступними елементами:
а)панель меню з підтримкою «акселератів»;
б)користувальницька піктограма системного меню;
в)панель інструментів з підтримкою спливаючих «підказок»
г)рядок стану, в якому повинна відображатися інформація про основні режими роботипрограми;
–         дані бази повинні відображатися втабличному вигляді;
–         наявність модального діалогового вікна«Про програму» з інформацією про розробника програми, зокрема з її фотографією;
Вимогидо архітектури програми: використання механізму виключень для обробки помилоквведення-виведення даних.
Вимогидо функціональності програми:
–         створення файлу бази даних (ім’я файлубази та каталог файлової системи для його зберігання обираються користувачем свикористанням відповідного діалогового вікна);
–         додавання елемента даних до файлу бази;
–         оновлення будь-якого елементу даних уфайлі базі;
–         видалення будь-якого елементу даних уфайлі базі;
–         сортування інформації, яка відображаєтьсяв графічному інтерфейсі користувача, за різними реквізитами;
–         фільтрація інформації, якавідображається в графічному інтерфейсі користувача, за різними критеріями;
–         отримання та відображення підсумковоїінформації;
–         забезпечення перевірки допустимостіданих, які вводяться користувачем;
–         видача користувачу попереджувальних таінформаційних повідомлень;
–         розробка звіту.
Вимогидо вихідного коду програми:
–         вихідний код кожного з класів програмиповинен міститись в окремому файлі;
–         наявність коментарів (для класів –призначення класів; для методів – призначення методів, опис параметрів тапризначення, яке повертається);
–         виконання угод щодо запису текступрограм мовою програмування C++ Builder.
1.4Вимоги до програмної документації
Програмнадокументація складається з двох документів: «Керівництво програміста» та «Керівництвокористувача».
Програмнадокументація повинна бути складена відповідно до ДСТУ-3008-95 і стандартупідприємства – Маріупольського механіко-металургійного коледжу ПДТУ.
1.5Структура програми
Створеннябази даних. База даних буде створена в Paradox 7 і буде складатися з чотирьохтаблиць:
— gruz: Unikey_gruza, Tip_gruza, Stoim_perevozki;
— avto: Unikey_avto, Marka_avto, Model_avto, Fio_vladelca, Data_texosmotra,Strahovka, Gos_nomera;
— zakaz: Unikey_zakaza, Unikey_gruza, Zakazchik, Adress_zakazchik,Telefon_zakazchik, Data_zakaza, Kol_vo_zakaza, Unikey_gruz_st, Unikey_gruz_tp;
— grafik: Unikey_grafik, Unikey_zakaza, Unikey_avto, Data_otpravleniya, Data_prib,Vremya_prib, Kol_vo_gruza, Unikey_avto_dat, Unikey_zak_dat, Unikey_gruz_dat.
Таблицібудуть взаємопов’язані типом «один до багатьох» в C++ згідно постановкизавдання.
Використаннякласів
Впрограмі будуть використовуватись вісім класів.
Упершому класі використовується метод вибору пункту меню головної форми длявідкриття відповідної форми для роботи з даними. При цьому реалізованаможливість відкриття форм «Автомобіль», «Вантаж», «Замовлення-Графік», «Автомобіль-Графік»,«Вантаж-Замовлення», «Розробник» за допомогою натискання на кнопки з назвамиформ, які знаходяться на головній формі та за допомогою комбінацій клавіш F1, F2,F3, F4, F5 та F6 відповідно.
Вдругому класі буде вводитись, переглядатись, видалятись інформація про автомобілі.Використовується організація введення даних для приблизного пошуку за прізвищемвласника та за держ номером. Використовується кнопка «Пошук» для виконання приблизногопошуку за прізвищем та за держ номером.
Втретьому класі буде вводитись, переглядатись, видалятись інформація про вантаж.Використовується організація введення даних для пошуку за типом та длясортування за вартістю. Використовуються кнопки: «Пошук» для виконання пошукуза типом вантажу, «Сортувати» для виконання сортування за вартістю.
Вчетвертому класі буде вводитись, переглядатись, видалятись інформація про замовленнята графік, при цьому обирається інформація про тип вантажу та вартість зтаблиці Gruz, ПІБ власника з таблиці Avto. Використовується організаціявведення даних для фільтрування за датою. Використовуються кнопки:«Фільтрувати» для виконання фільтрації за датою, «Скасування» для відмінифільтрації та «Звіт» для формування текстового документу про замовленняперевезень вантажу.
Вп’ятому класі буде вводитись, переглядатись, видалятись інформація про автомобільта про графік, при цьому обирається інформація про замовника з таблиці Zakaz,та тип вантажу із таблиці Gruz. Використовується організація введення даних дляприблизного пошуку за держ номером. Використовуються кнопки: «Пошук» для виконанняприблизного пошуку за держ номером.
Всьомому класі буде вводитись, переглядатись, видалятись інформація про вантажта про замовлення.
Ввосьмому класі описаний метод формування звіту про замовлення перевезеньвантажу.
Вдев’ятому класі буде відображатись інформація про розробника програми.
Графічнийінтерфейс
Длянаписання програми планується використовувати головне вікно. Воно будескладатися з головного меню MainMenu та кнопок ButtonClick. З їх допомогоюможна перейти на форми для роботи з даними вантажу, автомобіля, замовлення,графіку, поглянути інформацію про розробника.
Надругій формі в DBGrid1 будуть відображатись дані для роботи з таблицею Avto, татакож для зручності роботи з даними буде використатись DBNavigator1. Також наформі будуть знаходитись RadioButton1 та RadioButton2 для вибору за яким полемвиконувати пошук, поле Edit1 для вводу прізвища або держ номеру та кнопка Button1для приблизного пошуку прізвища та держ номеру.
Натретій формі будуть знаходитись DBGrid1, в яких будуть відображатись дані дляроботи з таблицею Gruz, для зручності роботи з даними будуть використовуватись DBNavigator1.Також на формі будуть знаходитись: поле Edit1 для вводу типу, кнопка Button1 дляприблизного пошуку записів за типом, кнопка Button2 для сортування записів завартістю.
Начетвертій формі будуть знаходитись DBGrid1 та DBGrid2, в яких будутьвідображатись дані для роботи з таблицями Zakaz та Grafik, для зручності роботиз даними будуть використовуватись DBNavigator1 та DBNavigator2. Дані про тип тавартість вантажу будуть обиратися із списку шляхом підстановки в таблицю Zakazіз таблиці Gruz, данні про ПІБ власника автомобіля обиратимуться із спискушляхом підстановки в таблицю Grafik із таблиці Avto. Також на формі будутьзнаходитись поля Edit1 для вводу дати, та кнопка Button1 для фільтрації задатою, кнопка Button2 для скасування фільтрації та кнопка Button3 дляформування звіту про замовлення перевезень вантажів.
Нап’ятій формі будуть знаходитись DBGrid1 та DBGrid2, в яких будуть відображатисьдані для роботи з таблицями Avto та Grafik, для зручності роботи з даними будутьвикористовуватись DBNavigator1 та DBNavigator2. Дані про замовлення будутьобиратися із списку шляхом підстановки в таблицю Grafik із таблиці Zakaz, данніпро тип вантажу обиратимуться із списку шляхом підстановки в таблицю Grafik ізтаблиці Gruz. Також на формі будуть знаходитись поле Edit1 для вводу держномеру та кнопка Button1 для приблизного пошуку держ номеру.
Насьомій формі будуть знаходитись DBGrid1 та DBGrid2, в яких будуть відображатисьдані для роботи з таблицями Gruz та Zakaz, для зручності роботи з даними будутьвикористовуватись DBNavigator1 та DBNavigator2.
Навосьмій формі буде формуватись звіт – «Замовлення перевезення вантажу».
Надев’ятій формі буде знаходитись інформація про розробника данної програми.

2.ПРОГРАМНА ДОКУМЕНТАЦІЯ
2.1Керівництво системного програміста
2.1.1Архітектура програми
Буластворена база даних в Paradox 7, яка складається з чотирьох таблиць. Таблиці,властивості їх полів представлені на рисунках 1-4.
/>
Рисунок1 – Таблиця «Вантаж»
/>
Рисунок2 – Таблиця «Автомобіль»
/>
Рисунок3 – Таблиця «Замовлення»
/>
Рисунок4 – Таблиця «Графік»
Двітаблиці можуть бути пов’язані одна за одною по ключу. Одна з цих пов’язанихтаблиць є головною (master), а інша – допоміжною, деталізуючей (detail).
 Схемавзаємозв’язків між таблицями в С++ Builder у вигляді діаграми даних, створеної вПроектувальнику Модуля Даних, представлена на рисунку 5.
Прирозробці програми автоматизованої системи «Нарахування заробітної плати позасобах» був використаний язик модулювання UnifiedModeling Language (UML), заснований на технологіїоб’єктного моделювання (CASE-технології проектування програмних комплексів вобласті розробки програмного забезпечення). Мова UML дозволяє відобразити всівзаємозв’язки модельованого об’єкта, його інтерфейси, а також особливостіреалізації, які визначають внутрішню структуру і функції.
/>
Рисунок5 – Діаграма даних
Діаграмакласів (class diagram) використовується для моделювання статичної структурикласів системи. Діаграма реалізована в ПП Sparx Systems Enterprise Architect7.5. На діаграмі відображаються статичні аспекти структурної побудови системи(малюнок 6).
Дана діаграма є логічною моделлю,яка складається з восьми класів. Сім з них: ТForm1, ТForm2, ТForm3, ТForm4, ТForm5, ТForm7, ТForm8,ТForm9 мають графічний інтерфейс. Клас TDataModule6 не має графічногоінтерфейсу.
Клас ТForm1 є головним вікномпрограми автоматизованої системи, містить методи для вибору дії, пов’язаної зобробником подій вибору пункту меню для роботи з формами. Метод void __fastcallTForm1::N3Click для роботи з формою ТForm2, метод void __fastcallTForm1::N4Click — з формою ТForm3, метод void __fastcall TForm1::N5Click — зформою ТForm4, метод void __fastcall TForm1::N6Click — з формою ТForm5, методvoid __fastcall TForm1::N7Click — з формою ТForm7, метод void __fastcallTForm1::N8Click — з формою ТForm9, метод void __fastcall TForm1::N2Click –Вихід із програми. Також Клас ТForm1містить методи для вибору дії, пов’язаної зобробником подій натискання на кнопки для роботи з формами. Метод void__fastcall TForm1:: Button1Click для роботи з формою ТForm2, метод void __fastcall TForm1:: Button2Click — з формою ТForm3,метод void __fastcall TForm1:: Button3Click — з формою ТForm4, метод void __fastcallTForm1:: Button4Click- з формою ТForm5 та метод void __fastcall TForm1::Button5Click — з формою ТForm7.
/>
Рисунок6 – Діаграма класів

Клас ТForm2 містить елементуправління DBGrid1 з таблицею Avto, яка відображає дані про автомобілі. Має DBNavigator1,дозволяючий працювати з записами таблиці. Призначен для формування інформаціїпро автомобілі. На формі міститься поле для приблизного пошуку за прізвищем абодерж номером, яке використовує метод void __fastcall TForm2::Edit1Change тавибір поля за яким будемо викнувати пошук який використовує метод void__fastcall TForm2::RadioButton1Click та TForm2::RadioButton2Click. Форма має кнопкидля приблизного пошуку за прізвищем, яка використовує метод void __fastcall TForm2::Button1Click.
КласТForm3 містить елемент управління DBGrid1 з таблицею Gruz, яка відображає даніпро вантаж. Має DBNavigator1, дозволяючий працювати з записами таблиці. Також наформі знаходяться кнопки: пошук за типом вантажу, яка використовує метод void__fastcall TForm3::Button2Click, сортування записів за вартістю з методом void__fastcall TForm3::Button1Click.
Клас ТForm4 містить два елементиуправління DBGrid1 та DBGrid2 з таблицями Zakaz та Grafik, які відображаютьдані про замовлення та згідний з ним графік, при цьому обирається інформаціяпро тип та вартість вантажу із таблиці Gruz, ПІБ власника автомобіля із таблиціAvto. Має DBNavigator1 та DBNavigator2, які дозволяють працювати з записамитаблиці. На формі міститься поле Edit1 для фільтрації за датою, якевикористовує метод void __fastcall TForm4::Edit1Change. Форма має кнопки для фільтраціїза датою, яка використовує метод void __fastcall TForm4::Button1Click,скасування фільтрації з методом void __fastcall TForm4::Button2Click та кнопкудля формування звіту з методом void __fastcall TForm4::Button3Click.
Клас ТForm5 містить два елементиуправління DBGrid1 та DBGrid2 з таблицями Avto та Grafik, які відображають даніпро автомобіль та згідний з ним графік, при цьому обирається інформація про замовникаіз таблиці Zakaz та про тип вантажу із таблиці Gruz. Має DBNavigator1 таDBNavigator2, які дозволяють працювати з записами таблиці. На формі міститьсяполе Edit1 для виконання пошуку за держ номером, яке використовує метод void__fastcall TForm5::Edit1Change. Форма має кнопку для приблизного пошуку за держномером, яка використовує метод void __fastcall TForm5: Button1Click.
КласTDataModule6 зберігає властивості всіх таблиць бази даних, та опис полів. Класвикористовує метод void __fastcall TDataModule6::Table4CalcFields для того, щобу обчислювальному полі Оbsch_st з таблиці Zakaz поле Stoim_perevozki із таблиціGruz додавалось до поля Kol_vo_gruza із таблиці Grafik.
Клас ТForm7 містить два елементиуправління DBGrid1 та DBGrid2 з таблицями Gruz та Zakaz, які відображають даніпро вантаж та згідне з ним замовлення. Має DBNavigator1 та DBNavigator2, якідозволяють працювати з записами таблиці.
КласТForm8 призначений для складання звіту про замовлення вантажоперевезень. Вклассі використовуються методи void __fastcall TForm8::QRDBTextPrint длядодання записів із таблиць на форму звіту.
КласТForm9 призначений для подання інформації щодо розробника програми.
2.1.2Установка та перевірка програми
Длянормального функціонування програми необхідно виконання наступних вимог допараметрів ПК: процесор Intel Pentium, AMD Athlon, AMD Sempron, оперативнийзапам’ятовуючий пристрій — 256 Mб, 20 Мб вільного дискового простору,відеокарта з можливістю відображення 256 кольорів. Якщо ці вимоги не будутьвиконані, програма може функціонувати некоректно.
Вимогидо програмного забезпечення: на комп’ютері має бути встановлено таке програмнезабезпечення:
–         операційна система Microsoft Windows(98, ME, 2000, XP, Vista, Windows 7);
платформа Microsoft.NET (версія 2.0 абовище). S 7);
Перед початком роботи з програмоюнеобхідно встановити програму на комп’ютері користувача: в BDE administratorпрописати alias «ВВ» із зазначенням шляху до папки, де зберігаються таблицібази даних (рисунок 7).
Запуск програми в операційній системісімейства Windows відбувається одним із стандартних способів:
–           подвійним клацанням лівою кнопкою мишкипо ярлику програми;
–           викликом контекстного меню з виборомйого пункту «Відкрити»;
— натисканням кнопки «Пуск» панелізавдань з наступним вибором пункту «Усі програми» і подвійним клацанням лівоюкнопкою мишки по ярлику програми.
/>
Рисунок 7 – Створення псевдоніма базиданих
Робота з програмою починається звідкриття файлу програми Borland C Builder 6 (рисунок 8).

/>
Рисунок 8 – Відкриття програми
Перевіркупрограми здійснимо за допомогою тестових прикладів.
Текстовийприклад 1: перевірка того, що введені користувачем данні коректні та можутьбути використані для подальшої роботи, перевірка функцій зберігання даних втаблицю. Критерій проходження тесту: всі данні вводяться коректно, зберігаютьсяу таблицях, можуть бути використані при підстановці у відповідні поля іншихтаблиць Результат тестового прикладу 1 представлений в таблиці 5.
Таблиця 5- Текстовий приклад 1

п/п Крок сценарію Очікуваний результат Отриманий результат Відмітка про проходження кроку сценарію (Так / Ні) 1 Запустити програму Повинна запуститися програма Програма запустилася Так
Продовження таблиці 5

п/п Крок сценарію Очікуваний результат Отриманий результат Відмітка про проходження кроку сценарію (Так / Ні) 2 Відкрити форми з головного меню форми «Вантажо перевезення», або за допомогою кнопок, які містя-ться на цій формі, або за допомогою комбінацій клавіш: F1, F2, F3, F4 та F5 Повинні запуститися форми Відкрились форми Так 3 Додати/видалити запис на формах Після введення запису до строки і натиснення на навігаторі «Ö»/«-» запис вводиться/видаляється
Додається/
видаляється запис Так 4 Пересування по записах за допо-могою навігатора, або за допомогою повзунка вгору / вниз Після натискання на відповідні кнопки в навігаторі, або повзунка вгору / вниз пересуваємося по записах Пересуваємося по записах Так
Відмітка о проходженні тесту: Пройдено.
Текстовий приклад 2: перевірка того, щона формах «Замовлення-Графік» та «Автомобіль-Графік» дані про тип вантажу,вартість вантажу, ПІБ власника авто, замовника будуть обиратися із випадаючогосписку. Критерій проходження тесту: при натисненні на полі випадає список, щорозкривається с записами, запис можна обирати, обрана запис додається до базиданих. Результат представлений в таблиці 6.

Таблиця 6 – Текстовий приклад 2

п/п Крок сценарію Очікуваний результат Отриманий результат Відмітка про проходження кроку сценарію (Так / Ні) 1 Натиснути на поле «Тип вантажу» на формі «Замовлення-Графік» Повинен випасти список, що розкривається з відповідними записами з таблиці «Вантаж» Список, що розкривається випав с записами Так 2 Натиснути на поле «Вартість» на формі «Замовлення-Графік» Повинен випасти список, що розкривається з відповідними записами з таблиці «Вантаж» Список, що розкривається випав с записами Так 3 Натиснути на поле «ПІБ власника» на формі «Замовлення-Графік » Повинен випасти список, що розкривається з відповідними записами з таблиці «Автомобіль» Список, що розкривається випав с записами Так 4 Натиснути на поле «Замовник» на формі «Автомобіль-Графік» Повинен випасти список, що розкривається з відповідними записами з таблиці «Замовлення» Список, що розкривається випав с записами Так 5 Натиснути на поле «Тип вантажу» на формі «Автомобіль-Графік» Повинен випасти список, що розкривається з відповідними записами з таблиці «Вантаж» Список, що розкривається випав с записами Так
Текстовий приклад 3: перевірка того, щона формах «Автомобіль», «Вантаж», «Замовлення-Графік» та «Автомобіль-Графік» задопомогою відповідних кнопок відбувається пошук даних, фільтрація даних,сортування даних та по них формується звіт. Критерій проходження тесту: ввільне поле записуємо прізвище, фільтрація відбувається, формується звіт. Результаттекстового прикладу 3 представлений в таблиці 7.

Таблиця 7 – Текстовий приклад 3

п/п Крок сценарію Очікуваний результат Отриманий результат Відмітка про проходження кроку сценарія (Так/Ні) 1 На формі «Автомобіль» проводимо пошук прізвища держ номеру
При вводі тексту у поле для вводу, натисненні на один з
Переключателів, натисенні на кнопку «Пошук» курсор повинен перейти
шуканого власника або держ номеру залежно від положення переключателів.
При натисненні на кнопку курсор
переходить на шуканого власника або держ номеру. Так 2  На формі «Замовлення-Графік» натискаємо на кнопку «Звіт» При натисненні на кнопку «Звіт» повинен відкритись звіт «Замовлення перевезень вантажу» у режимі попереднього перегляду Звіт відкривається при натисненні на кнопку «Звіт» Так 3 На формі «Замовлення-Графік» відфільтруємо записи При натисненні на кнопку «Фільтрувати» повинні залишитися записи на формі, що відповідають зазначеній у фільтрі даті
При натисненні на кнопку курсор
переходить на шуканого працівника Так 4 На формі «Автомобіль-Графік» проводимо пошук держ номеру
При натисненні на кнопку «Пошук» курсор повинен перейти на
шуканий держ номер
При натисненні на кнопку курсор
переходить на шуканий держ номер Так 5 На формі «Вантаж» проводимо пошук типу вантажу
При натисненні на кнопку «Пошук» курсор повинен перейти на
шуканий тип
При натисненні на кнопку курсор
переходить на шуканий тип Так 6 На формі «Вантаж» проводимо сортування вартості При натисненні на кнопку «Сортувати » записи повинні відсортуватися по збільшуванню. При натисненні на кнопку записи сортуються по збільшуванню. Так /> /> /> /> /> />
Відмітка о проходженні тестовихприкладів 2 та 3: Пройдені.

2.2Посібник користувача
2.2.1Призначення програми
Дана програма призначена для введеннязаписів в:
–         вантаж: тип вантажу, вартістьперевезення, вартість страховки;
–         автомобіль: марка авто, модель авто, ПІБвласника, дата тех огляду, вартість страховки, держ номер;
–         замовлення: замовник, адреса, телефон,дата замовлення, кількість замовлення;
–         графік: дата відправлення, часвідправлення, дата прибуття, час прибуття, кількість вантажу.
Крім того дозволяє здійснювати пошукданих за прізвищем, держ номером номером, відфільтрувати записи за датою тазробити звіт про замовлення перевезення вантажів.
2.2.2Виконання програми
Для роботи з автоматизованою системо «вантажоперевезення»необхідно запустити відповідну програму. Після запуску програми на екранімонітора з’явиться головне вікно програми «Вантажоперевезення» (рисунок 9).
/>
Рисунок 9 – Головне вікно програми
Основні елементи графічного інтерфейсупрограми:
Графічнийінтерфейс складається з головного вікна та додаткових вікон. Головне вікнопрограми має панель меню, яке дозволяє переходити на форми для роботи з данимита має структуру: «Таблиці:», «Розробник», «Вихід». При цьому на формімістяться кнопки з назвами форм, за допомогою яких також можна переходити наформи програми. Також перехід на форми «Автомобіль», «Вантаж»,«Замовлення-Графік», «Автомобіль-Графік», «Вантаж-Замовлення», «Розробник»можна здійснити за допомогою комбінацій клавіш F1, F2, F3, F4, F5 та F6відповідно.
При виборі пункту меню «Таблиці: Автомобіль»або за допомогою комбінації клавіш F1, або при натисканні на кнопку «Автомобіль»відкривається відповідна форма (рисунок 10). На даній формі можемо вводити даніпро автомобіль, видаляти, пересуватися по записах за допомогою навігатора, здійснятипошук за прізвищем (рисунок 11) та за держ номером (рисунок 12).
/>
Рисунок 10 – Вигляд форми «Працівник»
/>
Рисунок 11 – Результат приблизногопошуку за прізвищем

/>
Рисунок 12 – Результат приблизногопошуку за держ номером
/>
Рисунок 13 – Вигляд форми «Вантаж»
При виборі пункту меню «Таблиці: Вантаж»або за допомогою комбінації клавіш F2, або при натисканні на кнопку «Вантаж»відкривається відповідна форма (рисунок 13). На даній формі можемо вводити даніпро тип вантажу, вартість перевезення, вартість страховки, пересуватися позаписах за допомогою навігатора. Також на формі маємо можливість здійснятипошук за типом вантажу(рисунок 14) та сортувати за вартістю (рисунок 15).
/>
Рисунок 14 – Результат пошуку записів затипом

/>
Рисунок 15 – Результат сортуваннязаписів за вартістю
При виборі пункту меню «Таблиці:Замовлення-Графік» або за допомогою комбінації клавіш F3, або при натисканні накнопку «Замовлення-Графік» відкривається відповідна форма (рисунок 16). Прицьому дані про тип вантажу, вартість ПІБ власника обираємо із випадаючогосписку. На даній формі можемо вводити дані про замовника, видаляти,пересуватися по записах за допомогою навігатора, здійсняти фільтрацію за датою(рисунок 17).
/>
Рисунок 16 – Вигляд форми«Замовлення-Графік»
/>
Рисунок 17 – Вигляд форми післяфільтрації «Замовлення-Графік»

При натисненні на кнопку «Звіт» формуєтьсядокумент «Замовлення перевезення вантажів» (рисунок 18). У цьому діалоговомувікні є можливість зберегти звіт у файл або відправити його на друк.
/>
Рисунок 18 – Вигляд звіту «Замовленняперевезення вантажів»
При виборі пункту меню «Таблиці: Автомобіль-Графік»або за допомогою комбінації клавіш F4, або при натисканні на кнопку «Автомобіль-Графік»відкривається відповідна форма (рисунок 19). При цьому дані про тип вантажу тазамовника обираємо із випадаючого списку. На даній формі можемо, пересуватисяпо записах за допомогою навігатора, здійсняти пошук за держ номером (рисунок20).
/>
Рисунок 19 – вигляд форми «Автомобіль-Графік»
/>
Рисунок 20 – результат приблизногопошуку за держ номером

При виборі пункту меню «Таблиці: Вантаж-Замовлення»або за допомогою комбінації клавіш F5, або при натисканні на кнопку «Вантаж-Замовлення»відкривається відповідна форма (рисунок 21). На даній формі можемо вводити даніпро замовника, видаляти, пересуватися по записах за допомогою навігатора.
/>
Рисунок 21 – Вигляд форми «Вантаж-Замовлення»
При виборі пункту меню «Розробник» абопри натисненні на кнопку «Розробник» відкривається форма, на якій відображенаінформація про розробника програми (Рисунок 22).
/>
Рисунок 22 – Вигляд форми «Розробник»
2.2.3Повідомлення оператору
Упрограмі передбачені повідомлення оператору, який працює з програмою.
Наголовній формі передбачені спливаючи підказки: підказка «Вибрати формуАвтомобіль» при наведенні курсору на кнопку з назвою «Автомобіль»; підказка «Вибратиформу Вантаж» при наведенні на кнопку «Вантаж»; підказка «Вибрати форму Замовлення-Графік»при наведенні на кнопку «Замовлення-Графік»; підказка «Вибрати формуАвтомобіль-Графік» при наведенні на кнопку «Автомобіль-Графік» та підказка «Вибратиформу Вантаж-Замовлення» при наведенні курсору на кнопку «Вантаж-Замовлення».
Надругій формі передбачені спливаючи підказки: підказка «Виберете що будемошукати» при наведенні на кнопку «Пошук».
Натретій формі передбачені підказки: підказка «Сортування за зростанням» принаведенні на кнопку «Сортувати».
Наінших формах немає спливаючих підказок, тому що в цьому немає необхідності.
вантажоперевезення програма інформаційний

ВИСНОВКИ
Підчас написання курсового проекту я детальніше вивчила і отримала навички роботив середовищі програмування Borland C+ + Builder.
Система може працювати достатньо стабільно, була правильно обрана СУБД,що гарантує функціональність та безпека даних. Розроблен зручний тафункціональний інтерфейс, використані різні довідкові матеріали, а також деякінестандартні компоненти, програма наповнена різними функціями. Крім того,проект може бути розширено та на підставі того можливо створення потужноїавтоматизованої системи для масового використання.
 Принаписані курсового проекту враховувались концептуальні вимоги до системи. Разрабленапрограма «Нарахування заробітної плати по засобах» дозволяє спростити роботукористувача при роботі з конкретними працівниками та нарахуванням їх заробітноїплати за певний місяць певного року. Програма може бути використана як простимкористувачем, так і впроваджена на підприємствах для нарахування заробітноїплати працівників.
Використанняграфічного інтерфейсу програми дозволяє користувачу швидко зрозуміти, якфункціонує програма, як її використовувати, тому що вона має наочний вигляд,проста в використанні, дані після завершення роботи користувача обновляються,інтерфейс супроводжується підказками. Перевагою такої програми є і те, що всяінформація зберігається в комп’ютері.
Підчас написання програми вона була протестована. Всі помилки були виявлені іусунені під час тестування, тобто програма готова до використання.
Програмабула виконана з частковим урахуванням всіх вимог і потреб користувача увідповідності з поставленою задачею. Не було реалізовано: немає коментарів увихідному коді програми.
Підчас розробка курсового проекту я досягла всіх поставлених цілей на початку:закріпила знання дисципліни «Об’єктно-орієнтоване програмування», склала доситьпросту у використанні й працездатну автоматизовану систему. Закріпила навичкироботи з текстовим редактором Word, навички оформлення звітів, навички розробкиавтоматизованих систем, а також роботи в середовищі об’єктно-орієнтованої мовипрограмування Borland C Builder.
Отже,підводячи підсумок курсового проекту можна сміливо сказати, що поставлені цілібули виконані.

ПЕРЕЛІКВИКОРИСТОВАНИХ ДЖЕРЕЛ
— АрхангельськийА.Я. Програмування у C++ Builder –М.: Бином, 2003.– 1152 с.
— ДСТУ3008-95. Документація. Звіти у сфері науки і техніки. Структура і правила оформлення.– К.: Держстандарт України, 1995. – 38 с.
— ЧарлиКалверт. Borland C++ Builder. Энциклопедия пользователя: Пер. с англ./ – К.:Издательство «ДиаСофт», 1997. – 848 с.
— ШамисВ.А. Borland C++ Builder. Программирование на С++ без проблем – М.: “Нолидж”,1997. – 266 с., с ил.

ДОДАТОКА
Вихіднийкод програми
//—————————————————————————
#include
#pragmahdrstop
//—————————————————————————
USEFORM(«Unit1.cpp»,Form1);
USEFORM(«Unit2.cpp»,Form2);
USEFORM(«Unit3.cpp»,Form3);
USEFORM(«Unit4.cpp»,Form4);
USEFORM(«Unit5.cpp»,Form5);
USEFORM(«Unit6.cpp»,DataModule6); /* TDataModule: File Type */
USEFORM(«Unit7.cpp»,Form7);
USEFORM(«Unit8.cpp»,Form8);
USEFORM(«Unit9.cpp»,Form9);
//—————————————————————————
WINAPIWinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
 try
 {
 Application->Initialize();
 Application->CreateForm(__classid(TForm1),&Form1);
 Application->CreateForm(__classid(TForm2),&Form2);
 Application->CreateForm(__classid(TForm3),&Form3);
 Application->CreateForm(__classid(TForm4),&Form4);
 Application->CreateForm(__classid(TForm5),&Form5);
 Application->CreateForm(__classid(TDataModule6),&DataModule6);
 Application->CreateForm(__classid(TForm7),&Form7);
 Application->CreateForm(__classid(TForm8),&Form8);
 Application->CreateForm(__classid(TForm9),&Form9);
 Application->Run();
 }
 catch(Exception &exception)
 {
 Application->ShowException(&exception);
 }
 catch(…)
 {
 try
 {
 throwException(“”);
 }
 catch(Exception &exception)
 {
 Application->ShowException(&exception);
 }
 }
 return0;
}
//—————————————————————————
//—————————————————————————
#include
#pragmahdrstop
#include«Unit1.h»
#include«Unit2.h»
#include«Unit3.h»
#include«Unit4.h»
#include«Unit5.h»
#include«Unit6.h»
#include«Unit7.h»
#include«Unit8.h»
#include«Unit9.h»
//—————————————————————————
#pragmapackage(smart_init)
#pragmaresource “*.dfm”
TForm1*Form1;
//—————————————————————————
__fastcallTForm1::TForm1(TComponent* Owner)
 :TForm(Owner)
{
}
//—————————————————————————
void__fastcall TForm1::N3Click(TObject *Sender)
{
Form2->Show();
}
//—————————————————————————
void__fastcall TForm1::N5Click(TObject *Sender)
{
Form4->Show();
}
//—————————————————————————
void__fastcall TForm1::N4Click(TObject *Sender)
{
Form3->Show();
}
//—————————————————————————
void__fastcall TForm1::N6Click(TObject *Sender)
{
Form5->Show();
}
//—————————————————————————
void__fastcall TForm1::N7Click(TObject *Sender)
{
 Form7->Show();
}
//—————————————————————————
void__fastcall TForm1::N2Click(TObject *Sender)
{
Form1->Close();
}
//—————————————————————————
void__fastcall TForm1::Button1Click(TObject *Sender)
{
Form2->Show();
}
//—————————————————————————
void__fastcall TForm1::Button2Click(TObject *Sender)
{
Form3->Show();
}
//—————————————————————————
void__fastcall TForm1::Button3Click(TObject *Sender)
{
Form4->Show();
}
//—————————————————————————
void__fastcall TForm1::Button4Click(TObject *Sender)
{
Form5->Show();
}
//—————————————————————————
void__fastcall TForm1::Button5Click(TObject *Sender)
{
Form7->Show();
}
//—————————————————————————
void__fastcall TForm1::N8Click(TObject *Sender)
{
 Form9->Show();
}
//—————————————————————————
//—————————————————————————
#include
#pragmahdrstop
#include«Unit2.h»
#include«Unit1.h»
#include«Unit3.h»
#include«Unit4.h»
#include«Unit5.h»
#include«Unit6.h»
//—————————————————————————
#pragmapackage(smart_init)
#pragmaresource “*.dfm”
TForm2*Form2;
//—————————————————————————
__fastcallTForm2::TForm2(TComponent* Owner)
 :TForm(Owner)
{
}
//—————————————————————————
void__fastcall TForm2::Button1Click(TObject *Sender)
{
 if(RadioButton1->Checked){
DataModule6->Table1->IndexFieldNames= «Fio_vladelca»;
DataModule6->Table1->FindNearest(ARRAYOFCONST((Edit1->Text)));
}
if(RadioButton2->Checked){
DataModule6->Table1->IndexFieldNames= «Gos_nomera»;
DataModule6->Table1->FindNearest(ARRAYOFCONST((Edit1->Text)));
 }
}
//—————————————————————————
//—————————————————————————
#include
#pragmahdrstop
#include«Unit3.h»
#include«Unit1.h»
#include«Unit2.h»
#include«Unit4.h»
#include«Unit5.h»
#include«Unit6.h»
//—————————————————————————
#pragmapackage(smart_init)
#pragmaresource “*.dfm”
TForm3*Form3;
//—————————————————————————
__fastcallTForm3::TForm3(TComponent* Owner)
 :TForm(Owner)
{
}
//—————————————————————————
//—————————————————————————
void__fastcall TForm3::Button2Click(TObject *Sender)
{
 DataModule6->Table3->IndexFieldNames= «Tip_gruza»;
DataModule6->Table3->FindNearest(ARRAYOFCONST((Edit2->Text)));
}
//—————————————————————————
void__fastcall TForm3::GroupBox1Click(TObject *Sender)
{
GroupBox1->ShowHint= true;
GroupBox1->Hint= «Пошук типу вантажу»;
}
//—————————————————————————
void__fastcall TForm3::Button1Click(TObject *Sender)
{
DataModule6->Table3->Active= false;
DataModule6->Table3->IndexName= «index_stoimost»;
DataModule6->Table3->Active= true;
}
//—————————————————————————
//—————————————————————————
#include
#pragmahdrstop
#include«Unit4.h»
#include«Unit1.h»
#include«Unit2.h»
#include«Unit3.h»
#include«Unit5.h»
#include«Unit6.h»
#include«Unit8.h»
//—————————————————————————
#pragmapackage(smart_init)
#pragmaresource “*.dfm”
TForm4*Form4;
//—————————————————————————
__fastcallTForm4::TForm4(TComponent* Owner)
 :TForm(Owner)
{
}
//—————————————————————————
void__fastcall TForm4::Button1Click(TObject *Sender)
{
DataModule6->Table4->Filter=«Data_zakaza=’»+Edit1->Text+”‘”;
DataModule6->Table4->Filtered=True;
}
//—————————————————————————
void__fastcall TForm4::Button2Click(TObject *Sender)
{
DataModule6->Table4->Filtered=False;
}
//—————————————————————————
void__fastcall TForm4::Button3Click(TObject *Sender)
{
Form8->QuickRep1->Preview();
}
//—————————————————————————
//—————————————————————————
#include
#pragmahdrstop
#include«Unit5.h»
#include«Unit1.h»
#include«Unit2.h»
#include«Unit3.h»
#include«Unit4.h»
#include«Unit6.h»
//—————————————————————————
#pragmapackage(smart_init)
#pragmaresource “*.dfm”
TForm5*Form5;
//—————————————————————————
__fastcallTForm5::TForm5(TComponent* Owner)
 :TForm(Owner)
{
}
//—————————————————————————
void__fastcall TForm5::Button1Click(TObject *Sender)
{
DataModule6->Table1->IndexFieldNames= «Gos_nomera»;
DataModule6->Table1->FindNearest(ARRAYOFCONST((Edit1->Text)));
}
//—————————————————————————
//—————————————————————————
#include
#pragmahdrstop
#include«Unit6.h»
//—————————————————————————
#pragmapackage(smart_init)
#pragmaresource “*.dfm”
TDataModule6*DataModule6;
//—————————————————————————
__fastcallTDataModule6::TDataModule6(TComponent* Owner)
 :TDataModule(Owner)
{
}
//—————————————————————————
void__fastcall TDataModule6::Table4CalcFields(TDataSet *DataSet)
{
 DataModule6->Table4obsch_st->Value=DataModule6->Table3Stoim_perevozki->Value+DataModule6->Table5Kol_vo_gruza->Value;
}
//—————————————————————————
//—————————————————————————