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

Методи місцевизначення рухомих об’єктів і їх застосування у навігаційних системах. Режим диференціальної корекції координат. Розробка структури AVL системи і алгоритмів функціонування її окремих модулів. Встановлення апаратного і програмного забезпечення.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 18.10.2015
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

3.4 Керівництво користувача по встановленню і роботі з програмним забезпеченням системи

3.4.1 Встановлення програмного забезпечення

Система поставляється у вигляді архіву, що саморазпаковується і складається з трьох файлів (лістинг головного файлу наведений у додатку Б):

· NavSysCS.exe - виконуваний файл додатку;

· ConStrBuilder.exe - інструмент для налаштування з'єднання додатку з БД;

· constr.ocs - файл з налаштуваннями.

Для роботи з системою необхідно розкрити архів у будь-яку вільну папку (Рис. 3.11).

Рис. 3.11. Інтерфейс саморозкриваючогося архіву

Для роботи системи необхідно встановити драйвер ODBC для MySQL версії не нижче 3.51 та створити системний псевдонім для бази даних. Для цього слід відкрити Панель керування->Адміністрування->Джерела даних ODBC (рис. 3.12).

Рис. 3.12. Створення нового джерела даних ODBC

Далі необхідно обрати закладку «Системний DSN» та натиснути кнопку «Додати». У вікні вибору драйвера (рис. 3.13) необхідно обрати «MySQL ODBC 3.51 Driver» та натиснути кнопку «Готово».

Рис. 3.13. Вибір драйвера ODBC

У вікні налаштувань драйверу треба задати ім'я джерела даних, адресу сервера (якщо БД знаходиться не на локальному комп'ютері), ім'я користувача, пароль та обрати базу даних (рис. 3.14).

Рис.3.14. Налаштування драйвера ODBC

Після заповнення вказаних полів треба натиснути «ОК».

Останнім підготовчим кроком є налаштування сервера на роботу зі створеним джерелом даних, що здійснюється за допомогою програми ConStrBuilder.exe (рис. 3.15). У полі «Provider» треба вказати «MSDASQL.1». Значення «PersistSecurityInfo» - «False». У полі «Data Source» вказується ім'я щойно створеного джерела даних. У полі «DATABASE» - назва бази даних, у якій треба буде зберігати навігаційні дані. Значення поля «Option» - 0. Поля «Port» та «Server» заповнюються згідно до розташування та налаштувань сервера БД. Якщо сервер встановлено на локальний комп'ютер, то «Server» - «localhost», «Port» - 0. У полі «UID» вказується ім'я користувача БД. Після заповнення полів для перевірки з'єднання з БД треба натиснути кнопку «Проверить».

Рис. 3.15. Інтерфейс програми ConStrBuilder.exe

Якщо поля заповнено вірно, то з'явиться повідомлення про успішне з'єднання (рис. 3.16).

Рис. 3.16. Повідомлення про успішне з'єднання з БД

Після появи повідомлення необхідно зберегти налаштування у файлі «constr.ocs». Це робиться за допомогою кнопки «Сохранить».

Після цього можна виконати запуск сервера.

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

3.4.2 Запуск програмного додатку

Програмний додаток запускається на виконання шляхом запуску файлу NavSysCS.exe. Під час першого запуску додатку користувачеві пропонується обрати режим роботи - клієнт або сервер. Після запуску додатку на екрані з'являється головне вікно програми з головним меню.

3.4.3 Робота системи у режимі АРМ диспетчера

Після завантаження на екрані з'являється головне вікно програми (рис. 3.17).

Рис. 3.17. Головне вікно програми

У верхній лівій частині форми знаходяться поля вводу параметрів області побудови карти. За допомогою цих полів можна ввести широту та довготу центра області побудови.

Під полями вводу параметрів області побудови карти знаходиться вікно з переліком ідентифікаційних номерів ТЗ у базі даних. Для відображення положення конкретного ТЗ на карті треба встановити навпроти його номера помітку.

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

У верхній правій частині головного вікна програми знаходиться панель навігації. кнопками «<»,«>»,«^» та «v» можна змінювати положення центру області побудови, а кнопками «+» та «-» - масштаб.

Якщо файли індексу не існують або пошкоджені, система видає відповідне діагностичне повідомлення (рис. 3.18).

Рис. 3.18. Діагностичне повідомлення про відсутність файлів індексу

Якщо натиснути «Нет», додаток буде закрито. Після натискання «Да» з'являється діалогове вікно індексування карти (рис. 3.19).

У цьому вікні треба натиснути кнопку «загрузить карту», у стандартному діалоговому вікні обрати файл з картою, після чого натиснути «Создать индекс». Процес індексування є довготривалим. Прогрес відображається індикатором прогресу у середній частині форми. Якщо встановити флаг «Отображать подробній ход индексирования», то у ході індексування у нижній частині форми буде надаватися текстове розшифрування поточної операції. Якщо встановити флаг «Автоматически сохранить индекс по завершении», то після завершення процесу побудови індексні файли буде автоматично збережено у каталозі програми. Якщо цей флаг не встановити, то потрібно буде натиснути кнопку «Сохранить индекс».

Рис. 3.19. Діалогове вікно індексування карти

3.4.4 Робота системи у режимі АРМ адміністратора

Після завантаження програмного комплексу користувач бачить головне вікно (рис. 3.20).

Рис. 3.20. Головне вікно програмного комплексу

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

У нижній лівій частині форми розташоване ще одне текстове вікно - лог запитів до БД. У ньому відображаються усі згенеровані SQL-запити до БД.

У верхній правій частині знаходиться поле переліку IMEI-номерІв пристроїв, пакети від яких надходили на сервер.

У нижній правій частині форми знаходиться кнопка виклику режиму редагування даних про трекери.

Після надходження інформаційного пакету результати розшифровки потрапляють у вікно лога роботи сервера, а у верхній правій частині форми з'являється графічне відображення даних пакету (рис. 3.21).

Рис. 3.21. Результат розшифрування пакету

У випадку, якщо цей пакет - перший у рамках поточної сесії роботи серверу, IMEI трекера буде додано до переліку. Якщо IMEI трекера зареєстровано у БД, у нижньому текстовому полі з'явиться текст SQL-запитів до БД.

Для того, щоб перейти до режиму реєстрації трекера у БД, треба натиснути кнопку «Добавить трекер». Після цього з'явиться вікно керування реєстраційними даними трекерів (рис. 3.22).

Реєстрація трекера починається натисканням кнопки «добавить» у лівій частині форми. Після цього треба ввести IMEI пристрою.

Рис. 3.22. Форма керування реєстраційними даними трекерів

Ідентифікаційний номер пристрою можна ввести вручну або згенерувати автоматично (у якості номера будуть узяті останні 5 знаків IMEI). Далі необхідно обрати тип трекера з випадаючого списку. Якщо необхідно, можна додати текстовий опис трекера у відповідному полі. Після заповнення полів треба натиснути кнопку «сохранить».

Наступним кроком реєстрації є реєстрація у навігаційній базі. Для цього на формі є група елементів «Регистрация в БД Гранит». Робота з цією групою починається з натискання кнопки «Добавить». Після цього з випадаючого списку треба обрати IMEI нового пристрою. Далі заповнюються поля, що описують транспортний засіб, на якому встановлено пристрій. Поле «Цвет» задає колір, яким буде відображатися шлях трекера на формах АРМ. Колір можна задати вручну або обрати за допомогою діалогу (рис. 3.23).

Сервер може працювати у фоновому режимі. Для цього достатньо закрити головне вікно програми. Індикатором працездатності сервера є піктограма у області повідомлень (Tray).

Рис. 3.23. Діалог вибору відображуваного кольору трекера

Для завершення роботи сервера треба натиснути на цю іконку правою кнопкою миші та у контекстному меню обрати «Закрыть» (рис. 3.24). Для повернення з фонового режиму у контекстному меню потрібно обрати «Развернуть».

Рис. 3.24. Контекстне меню керування сервером

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

Розроблена система може бути використана для інформаційного забезпечення диспетчерського пункту автотранспортного підприємства, таксомоторного парку або будь-якого транспортного підрозділу служб оперативного реагування (ДАІ, МНС, пожежна охорона, інкасаторські служби тощо).

Висновки по розділу

У третьому розділі дипломної роботи було наведено обгрунтування інформаційної структури і апаратного забезпечення AVL системи, розроблено структуру AVL системи і алгоритми функціонування її окремих модулів. Також було представлено структуру блоку взаємодії з базою даних системи, блоків роботи з електронними картами і блоків серверів ТСР та UDP.

Також було обрані засоби розробки програмного забезпечення системи, зокрема мова програмування Borland Delphi 7 і СУБД MySQL. У програмному середовищі Borland Delphi 7 сторено тестові версії програмних модулів системи, розроблено керівництво по встановленню і роботі з програмним забезпеченням, а також наведені результати перевірки його працездатності.

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

щитовидный железа репродуктивный гипотиреоз

4. Організаційно-економічний розділ

4.1 Загальні положення

Нова техніка, технологія, програмні продукти, що розробляються і впроваджуються у виробництво, повинні приносити певний корисний результат - ефект. В ринкових умовах найбільш вагомою складовою ефекту є економічний ефект, тобто економія витрат підприємства при виконанні виробничих, організаційних, управлінських та інших функцій, що призводить до збільшення прибутку підприємства.

Абсолютна величина економічного ефекту без співставлення з витратами на його отримання не дозволяє однозначно оцінити, наскільки вдалим виявився відповідний інноваційний проект. Таку оцінку дають показники економічної ефективності (прибутковості) проекту.

При реалізації інвестиційного проекту випуску нової (в тому числі програмної) продукції підприємство несе разові витрати, пов'язані з розробкою проекту, а також з придбанням і налагодженням необхідного обладнання, розхідних матеріалів і таке інше. Такі разові витрати називають капітальними витратами або інвестиціями.

В процесі реалізації нової продукції підприємство отримує від споживачів певні кошти - виторг від реалізації. При розрахунках ефективності необхідно врахувати поточні витрати підприємства, пов'язані з виробництвом та реалізацією нової продукції. Величина щорічного прибутку, одержуваного підприємством за рахунок впровадження інвестиційного проекту, повинна бути достатньо високою у порівнянні з капітальними витратами підприємства, щоб інвестиції окупились у прийнятний термін.

При використанні інновацій підприємство-споживач в свою чергу отримує певний економічний ефект, що зазвичай виражається економією витрат на виконання виробничих та управлінських функцій. За умов обґрунтування поліпшення співвідношення ціна-якість у нової продукції в порівнянням з базовим варіантом підприємство-виробник може встановити певну добавку до ціни інноваційної продукції.

Зміст техніко-економічного обґрунтування розробки програмного продукту полягає в наступному:

– розрахунок трудомісткості та тривалості розробки;

– визначення величини капітальних витрат розробника та максимальної ціни продажу програмного продукту;

– розрахунок поточних витрат реалізації та мінімальної ціни продажу;

– розрахунок річної економії споживача програмного продукту та остаточне встановлення ціни продажу програмного продукту;

– визначення показників економічної ефективності проекту.

В даному проекті розроблено програмний продукт, що має наступні переваги перед аналогами:

- зменшується час рішення одної задачі з 1 до 0,2 год/од;

- спрощується процедура моніторингу місцезнаходження транспортних засобів;

- спрощується процедура контролю за дотриманням маршрутів.

4.2 Вихідні дані для розрахунку

Вихідні дані для розрахунку економічної ефективності проекту наведено в таблиці 4.1.

Таблиця 4.1 Вихідні дані для розрахунку ефективності

Позначення

Найменування показника

Значення

Вм

Вартість ПЕОМ, грн

15000

Тсл

Плановий строк служби ПЕОМ, років

5

Nп

Кількість розроблюваних проектів, од./рік

6

Зо

Посадовий оклад інженера-програміста, грн/міс

4200

Кд

Коефіцієнт додаткової заробітної плати

0,3

Кс

Коефіцієнт відрахувань до страхових фондів

0,369

Кн

Коефіцієнт накладних витрат організації

0,4

Рн

Норматив рентабельності організації-розробника

0,35

Ппдв

Ставка податку на додану вартість, %

20

Пп

Потенційна ємність ринку для нової програми, од.

120

На

Норма амортизації, %

25

Вт

Витрати на тиражування програми, грн/од.

224

Ка

Коефіцієнт витрат на адаптацію програми

0,07

Тпр

Термін реалізації проекту, років

3

П1

Плановий обсяг продажу програми в 1-му році, од.

10

П2

Плановий обсяг продажу в 2-му році, од.

16

П3

Плановий обсяг продажу в 3-му році, од.

22

Пс

Середній плановий річний обсяг продажу, од.

20

Цб

Ціна продажу базової програми-аналога, грн.

20000

Кількість задач, що вирішуються протягом року, од.

120

tзб

Витрати машинного часу на вирішення задачі базовою програмою, годин/од.

1

tзн

Витрати машинного часу на вирішення задачі новою програмою, годин/од.

0,2

Ен

Нормативний коефіцієнт ефективності

0,2

Де

Доля ефекту споживача - добавка до ціни

0,25

4.3 Визначення трудомісткості та тривалості розробки програми

Серед чинників, що визначають величину витрат на розробку програмного додатку, одним з основних є тривалість розробки. Її можна визначити за формулою:

,

де Т - сумарні трудовитрати;

Nр - кількість виконавців.

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

Трудовитрати по окремих етапах всіх видів визначені за допомогою експертної оцінки. Розрахунок трудозатрат зведено до таблиці 4.2.

Таблиця 4.2 Розрахунок трудових затрат

Етапи робіт

Позначення

Трудовитрати (чол-дн)

Вивчення предметної області та формулювання постановки задачі

Тпз

2

Розробка алгоритму рішення задачі

Та

6

Складання схеми програми

Тс

7

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

Тп

15

Налагодження програми

Те

7

Оформлення документації

Тд

3

РАЗОМ

40

Розробку програми виконує один інженер-програміст. Отже, тривалість розробки складає 40 робочих днів. З урахуванням середньої кількості робочих днів у місяці ( 22 дні ) тривалість розробки складе:

Тр = 40 / 22 = 1,82 (міс)

4.4 Розрахунок витрат на розробку програми

Розрахунок витрат на розробку програмного продукту, тобто суми капітальних витрат, оформлюється документом - кошторис витрат по формі таблиці 4.3.

Таблиця 4.3 Кошторис витрат на проектування

Найменування статей витрат

Сума, грн.

Обгрунтування

1 Спеціальне обладнання.

5146,13

з розрахунку

2 Розхідні матеріали.

1543,84

30% ст.1

3 Зарплата проектувальників.

18205,20

з розрахунку

4 Відрахування до фондів соціального страхування.

6717,72

36,9% ст.3

5 Усього прямих витрат.

31612,89

ст.1..ст.4

6 Накладні витрати.

12645,17

40% ст.5

7 Усього, кошторисна вартість проекту.

44258,06

ст.5+ст.6

Витрати, пов'язані з придбанням ПЕОМ (спеціальне обладнання) можна розрахувати за формулою:

Sоб = Вм+Sтм+Sпз+Sд+Sпл,

де Вм - прейскурантна вартість ПЕОМ;

Sтм - витрати на транспортування, монтаж та налаштування ПЕОМ;

Sпз - вартість загальносистемного програмного забезпечення;

Sд - вартість допоміжного офісного обладнання;

Sпл - вартість додаткової виробничої площі для встановлення ПЕОМ.

З урахуванням вихідних даних та прийнятих розрахункових коефіцієнтах

Sтм = 0,02 · Вм ; Sтм = 0,02 · 15000 = 300 (грн);

Sпз = 0,2 · Вм ; Sпз = 0,2 · 15000 = 3000 (грн) ;

Sд = 0,15 · Вм ; Sд = 0,15 · 15000 = 2250 (грн) ;

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

Sоб = 15000 + 300 + 3000 + 2250 = 20550,00 (грн)

З урахуванням кількості розроблюваних проектів та прийнятого строку служби ПЕОМ (Тсл=6 років) вартість спеціального обладнання, що включається до кошторису витрат складе:

sоб = Sоб /( Nп * Тсл) ; sоб = 20550/(6*5) = 685,00 (грн)

Вартість розхідних матеріалів, необхідних на час розробки проекту:

Sрм = 0,3· sоб ; Sрм = 0,3 · 685,00 = 205,50 (грн) ;

Заробітна плата працівників визначається, виходячи з кількості виконавців, діючих посадових окладів та кількості місяців участі виконавців у розробці проекту, за формулою:

Sз = Зо · (1+Кд) · Тр ,

де Зо - місячний посадовий оклад виконавця;

Кд - коефіцієнт урахування додаткової заробітної плати (щорічна тарифна відпустка, доплати та премії);

Тр - тривалість розробки, міс.

Таким чином, витрати по заробітній платі інженера-програміста складуть:

Sз = 4200 · (1+ 0,3) ·1,82 = 9937,20 (грн)

Відрахування до фондів соціального страхування - це фактично податок на фонд заробітної плати, що сплачується до Пенсійного фонду, фонду зайнятості та фондів страхування від загальних та професійних захворювань та виробничого травматизму. Нормативи цих відрахувань встановлюються централізовано на державному рівні.

Отже, сума відрахувань до фондів соціального страхування складе:

Sc = Sз · Кс ; Sс = 9937,20 · 0,369 = 3666,83 (грн)

Загальна сума прямих витрат становить:

Sпр = Sоб + Sрм + Sз + Sс;

Sпр = 685 + 205,5 + 9937,20 + 3666,83 = 14494,53 (грн)

Накладні витрати враховують загальногосподарчі витрати по забезпеченню проведення роботи: витрати на опалення, електроенергію, амортизацію або оренду приміщень, зарплату адміністративного персоналу та інше. Вони визначаються в процентах від суми прямих витрат по даному проекту:

Sн = Кн · Sпр ; Sн = 0,4 · 14494,53 = 5797,81 (грн)

Загальна кошторисна вартість проекту - сума прямих і накладних витрат представляє собою суму капітальних вкладень (або інвестицій) в новий проект:

К = Sпр + Sн ; К = 14494,53 + 5797,81 = 20292,34 (грн)

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

Таким чином:

Пн = Рн · К ; Пн = 0,35 · 20292,34 = 7102,32 (грн)

Цв = К + Пн ; Цв = 20292,34 + 7102,32 = 27394,66 (грн),

де Пн - нормативний прибуток;

Рн - нормативна рентабельність продукції;

Цв - максимальна відпускна ціна програмного продукту.

Максимально можлива ціна продажу програмного продукту з урахуванням податку на додану вартість (ПДВ):

Цmax = (1+Ппдв/100) · Цв ; Цmax = 1,2 · 27394,66 = 32873,59 (грн)

4.5 Розрахунок поточних витрат реалізації та мінімальної ціни продажу програми

Специфікою вироблення та реалізації програмних продуктів є те, що зазвичай розроблена програма реалізується багатьом споживачам. Поточні витрати на тиражування програми набагато менші за первинні витрати на її розробку, тому і ціна продажу може бути встановлена набагато нижчою за максимальну ціну, розраховану вище.

При розрахунку ціни реалізації треба врахувати постійні витрати, що не залежать від обсягу продажу (амортизація капітальних вкладень та реклама продукції), та змінні витрати, пропорційні обсягу продажу, - витрати на тиражування й адаптацію програмного продукту до вимог конкретних споживачів, представницькі витрати. При розрахунку мінімального значення ціни продажу програмного продукту витрати на рекламу та представницькі розходи не враховуємо.

Річна сума амортизаційних відрахувань обчислюється за нормою амортизації від загальної суми капітальних вкладень:

Ав = На /100 · К ; Ав = 25/100 · 20292,34 = 5073,08 (грн)

Витрати на тиражування включають вартість машинних носіїв інформації та витрати на розмноження програмної документації і для одного акту продажу становлять Вт=224 грн/од.

Витрати на адаптацію програмного продукту до вимог споживачів - це витрати на вдосконалювання програмного продукту. За експертними оцінками вони можуть сягати до 40% від витрат на розробку програмного продукту. Залежно від особливостей програмного продукту ці витрати можуть бути відсутні.

При збільшенні обсягів продажу зменшується різноманітність додаткових вимог споживачів і величина витрат на адаптацію програми. Враховуючи ступінь уніфікації розробленої програми встановимо середній рівень адаптаційних витрат на рівні 15%.

Витрати на адаптацію програмного продукту можна визначити так:

Ва = Ка · (Sз + Sс) · (1 + Кн),

де Ка - коефіцієнт витрат з адаптації програми;

Sз - витрати по заробітній платі при розробці проекту;

Sс - відповідні відрахування до страхових фондів;

Кн - коефіцієнт накладних витрат організації-розробника.

Ва = 0,07 · (9937,20+3666,83) · (1+0,4) = 1333,19 (грн/од)

Загальна сума змінних витрат складе:

Вз = Вт + Ва ; Вз = 224,00 + 1333,19 = 1557,19 (грн/од)

Мінімальна відпускна ціна програмного продукту з урахуванням отримання нормативного прибутку розраховується за формулою:

Цвmin = (Ав/П + Вз) · (1 + Рн),

де Ав - річна сума постійних витрат (сума амортизації);

П - річний обсяг продажу;

Вз - сума змінних витрат;

Рн - нормативна рентабельність продукції.

При середньому річному обсязі продажу Пс=15од. мінімальна відпускна ціна складе:

Цвmin = (5073,08/15 + 1557,19) · 1,4 = 2653,55 (грн)

Мінімальна ціна продажу програмного продукту з урахуванням податку на додану вартість (ПДВ):

Цмін = (1+Ппдв/100) · Цвмін ; Цмін = 1,2 · 2653,55 = 3184,26 (грн.),

де Ппдв - ставка податку на додану вартість;

Ціна продажу програмного продукту перебуває в таких межах:

Цmin <= Цпп <= Цmax.

3184,26 грн <= Цпп <= 32873,59 грн

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

Рис. 4.1 Графік досягнення беззбитковості

За допомогою цього графіка можна знайти так звану точку беззбитковості. Точка беззбитковості показує кількість програмного продукту, який необхідно продати, щоб загальний виторг від реалізації (без ПДВ) рівнявся загальним витратам. Очевидно, що при цьому обсязі продажів буде, нарешті, досягнута беззбитковість виробництва й подальше збільшення обсягу реалізації приведе до появи прибутку.

Таким чином, навіть при мінімальній відпускній ціні програми річний продаж 4 одиниць програмного продукту вже приносить певний прибуток.

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

У нашому випадку кількість потенційних споживачів невелике й розміщувати рекламу в засобах масової інформації економічно недоцільно. Прийнято рішення про розміщення рекламної інформації на основних тематичних форумах і порталах в мережі Internet. При цьому річні витрати на розміщення реклами в глобальній мережі складуть:

Зри = Зпр + М · Зпм,

де Зпр - витрати на первинне розміщення реклами;

Зпм - плата за щомісячну підтримку рекламних повідмлень;

М - кількість місяців підтримки.

Зри = 1650 + 3 · 450 = 3000 (грн/рік)

Крім цього, планується організувати пряму адресну рекламу для потенційних споживачів програмного продукту. Ємність ринку збуту - 80 споживачів. Витрати на виготовлення індивідуальних рекламних матеріалів та їх доставку складуть 100 грн/од. Планується на протязі трьох років реалізації проекту охватити адресною рекламою по 25 споживачів на рік, що складе Зра=100·25=2500 грн/рік.

Таким чином загальні щорічні витрати на рекламу становлять:

Зр = Зри +Зра ; Зр = 3000 + 2500 = 5500 (грн/рік)

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

4.6 Економія у споживача програмного продукту

Користувач запропонованої програми отримує економічний ефект за рахунок скорочення часу вирішення задач в порівнянні з використанням базового варіанту програми. Проведемо розрахунки, вважаючи, що ціна нової програми співпадає з ціною базової Цн = Цб = 20000 грн.

Річний економічний ефект можна розрахувати як різницю приведених витрат при використанні базової та нової програми:

Ер = Впрб - Впрн

Приведені витрати визначаються за формулою:

Впр = Спр + Ен · Кпр,

де Спр - приведені річні експлуатаційні витрати, пов'язані з вирішенням задач;

Кпр - сума приведених капітальних вкладень;

Ен - нормативний коефіцієнт економічної ефективності.

Для базового варіанту загальну суму капітальних вкладень визначається витратами на придбання ПЕОМ. В такому разі у відповідності з розрахунками пункту 3.4 Кб = Sоб = 20550 грн.

Для нового варіанта загальна сума капіталовкладень додатково включає ціну придбання нової програми : Кн = Sоб + Цн = 20550+20000 = 40550 грн.

Величина приведених капіталовкладень в розрахунку приведених витрат визначається з урахуванням долі часу вирішення задач, що розглядаються, в річному корисному фонді часу роботи ПЕОМ:

Кпр = Тм / Ткор · К,

де Ткор - річний корисний фонд часу роботи ПЕОМ;

Тм - машинний час вирішення даних задач протягом року.

Річний корисний фонд часу роботи ПЕОМ розраховується за формулою:

Ткор = Тзаг · Тз · Nз · (1 - Пп/100),

де Тзаг - загальний річний фонд часу роботи ПЕОМ (робочих днів);

Тз - тривалість робочої зміни;

Nз - кількість робочих змін на день;

Пп - процент планових простоїв ПЕОМ.

При 5-денному робочому тижні та роботі в одну зміну отримаємо:

Ткор = 250 · 8 · 1 · (1 - 5/100) = 1900 годин/рік

Машинний час за рік для вирішення задач з використанням базової та нової програми:

Тм = Nз · tз,

де Nз - кількість задач, що вирішуються за рік;

tз - машинний час вирішення одної задачі.

Отже, для базового і нового варіантів маємо:

Тмб = 120 · 1 = 120 (год/рік) ; Тмн = 120 ·0,2 = 24 год/рік.

Відповідне значення приведених капітальних вкладень:

Кпрб = (120/1900) · 4384 = 276,88 (грн) ;

Кпрн = (24/1900) · 6384 = 80,64 (грн).

Аналогічним чином визначаються приведені річні експлуатаційні витрати при використанні ПЕОМ з урахуванням долі використання корисного машинного часу:

Спр = С · Тм/Ткор ,

де С - загальна річна сума експлуатаційних витрат.

С = Ав + Sз + Sм + Sр ,

де Ав - амортизаційні відрахування;

Sз - витрати по заробітній платі спеціаліста;

Sм - вартість спожитої електроенергії та розходних матеріалів;

Sр - річні витрати на ремонт ПЕОМ.

Сума амортизаційних відрахувань визначається за нормою амортизації:

Ав = К · На/100 ;

Авб = 20292,34 · 25/100 = 5073,08 (грн) ;

Авн = 8376 · 25/100 = 10137,5 (грн).

Річні витрати по заробітній платі користувача ПЕОМ розрахуємо в припущенні, що умови оплати праці у споживачів і розробників програмного продукту тотожні, за формулою:

Sз = 12 · Зо · (1+Кд) · (1+Кс) ,

де Зо - посадовий оклад спеціаліста;

Кд - коефіцієнт, що враховує додаткову заробітну плату;

Кс - коефіцієнт відрахувань до фондів соціального страхування.

Sз = 12 · 4200 · (1 + 0,3) · (1 + 0,369) = 89696,88 (грн).

Вартість спожитої електроенергії, розхідних матеріалів та річні витрати на ремонт ПЕОМ розрахуємо за укрупненими нормативами в відсотках від вартості ПЕОМ:

Sм = 0,03 · Вм ; Sм = 0,03 · 15000 = 450 (грн);

Sр = 0,08 · Вм ; Sр = 0,08 · 15000 = 1200 (грн).

Загальна сума річних витрат з експлуатації ПЕОМ:

Сб = 5073,08 + 46984,10 + 96 + 256 = 52409,18 (грн);

Сн = 10137,5 + 46984,10 + 96 + 256 = 57473,6 (грн).

Приведені експлуатаційні витрати:

Спрб = 52409,18 · 120/1900 = 3310,05 (грн);

Спрн = 57473,6 · 24/1900 = 725,98 (грн).

Сумарні приведені витрати:

Впрб = 3310,05 + 0,2 · 276,88 = 3365,42 (грн)

Впрн = 725,98 + 0,2 · 80,64 = 742,11 (грн).

Річний економічний ефект у споживача нової програми:

Ер = 3365,42 - 742,11 = 2623,31 (грн)

З урахуванням річної економії споживача ціну продажу нової програми встановимо за наступним співвідношенням:

Ц = Цб + 0,25 · Ер ; Ц = 20000 + 0,25 · 2623,31 = 20655,83 (грн)

Остаточне значення ціни продажу нової програми встановимо на рівні Ц=20655,83 грн.

4.7 Розрахунок економічної ефективності проекту

Економічна ефективність інвестиційних проектів характеризується системою показників, що відображають співвідношення фінансових витрат і результатів. В умовах високого рівня інфляції, характерного для України, різночасові фінансові показники доцільно приводити к одному моменту часу (першому року реалізації проекту) шляхом дисконтування. Норма дисконту розраховується за формулою:

r = a + b + c ,

де а - облікова ставка НБУ (30% початок дїї 04.03.2015 р.);

b - коефіцієнт врахування ризиків;

c - плановий рівень інфляції.

r = 0,30 + 0,04 + 0,25 = 0,59

Для розрахунку показників економічної ефективності потрібно скласти план грошових потоків (табл. 4.4).

Таблиця 4.4 План грошових потоків

Показник

Значення, грн

0-й рік

1-й рік

2-й рік

3-й рік

Плановий обсяг продажу, од.

10

16

22

Виторг від продажу

206558,3

330493,28

454428,26

ПДВ (20%)

41311,66

66098,66

90885,65

Виторг від продажу без ПДВ

165246,64

264394,62

363542,61

Витрати на тиражування

240

384

528

Витрати на адаптацію

6983,40

11173,40

15363,50

Витрати на рекламу

2150

2150

2150

Амортизаційні відрахування

2560,56

2560,56

2560,56

Прибуток від реалізації

9732,71

18398,70

27064,60

Податок на прибуток (25%)

2433,18

4599,67

6766,16

Чистий прибуток

7299,53

13799,00

20298,50

Сума капітальних вкладень

10242,3

Грошовий потік

-10242,3

9860,09

16359,60

22859,00

Коефіцієнт дисконтування

1

0,76923077

0,59171598

Поточна дисконтована вартість

-10242,3

9860,09

12584,30

13526,10

Чиста дисконтована вартість

-10242,3

-382,16

12202,10

25728,20

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

Сума грошового потоку або поточна вартість визначається як різниця між фінансовим результатом поточного року Рt (чистий прибуток+амортизаційні відрахування) та поточними витратами Bt .

Поточна дисконтована вартість (ПДВ) - це поточна вартість, приведена до начала першого року реалізації проекту за допомогою коефіцієнту дисконтування КДt , тобто річний економічний ефект з урахуванням інфляції:

ПДВt = (Рt - Bt) · КДt ;

КДt = 1/(1+r)t

Чиста дисконтована вартість - це сума показників ПДВ наростаючим підсумком з першого до поточного року реалізації проекту, тобто сума грошей (з урахуванням інфляції), отриманих по даний рік включно. Показник ЧДС за останній рік відображає всю суму грошей від реалізації проекту.

Індекс прибутковості - це відносний показник, що характеризує рівень доходів, отриманих на одну гривню інвестицій за весь строк реалізації проекту:

ІП = ? ПДВ / К; ІП = 35970,42/ 10242,30= 3,512

Середня рентабельність проекту - це аналогічний показник, що відображає середньорічний рівень ефективності проекту:

РП = ІП / Тпр , РП = 3,512 / 3 = 1,17

де Тпр - строк реалізації проекту.

Термін окупності інвестицій - це строк, за який капітальні вкладення погашаються кумулятивним доходом, тобто строк, за який отримані від проекту реальні (з урахуванням інфляції) гроші перекривають вкладену суму інвестицій:

Ток = t + (ЧДВt / ПДВt+1) ,

де t - останній рік, в якому чиста дисконтована вартість залишається від'ємною.

Якщо в останньому році реалізації проекту ЧДВТ < 0, то проект не окупається протягом своєї реалізації. Для даного проекту:

Ток =1 + 382,16/2584,28 = 1,03 (років)

Основні техніко-економічні показники проекту зведені в таблицю 4.5 .

Таблиця 4.5 Техніко-економічні показники проекту

Найменування показника

Значення

Разові витрати на обладнання, грн

4384,00

Доля вартості обладнання в кошторисі проекту, грн

5146,13

Загальна сума капітальних вкладень, грн

44258,06

Постійні витрати експлуатації, грн :

– амортизаційні відрахування;

2560,56

– витрати на рекламу

2150,00

Змінні витрати експлуатації, грн/од :

– тиражування програми;

224,00

– адаптація програми

698,34

Точка беззбитковості продажу, од/рік

5

Ціна базової програми-аналога, грн

20000,00

Річний економічний ефект у споживача, грн

12480,03

Встановлена ціна продажу програми, грн

20655,83

Термін реалізації проекту, років

3

Плановий обсяг продажу за 3 роки, од.

48

Чиста дисконтована вартість (при r = 30%), грн

35970,42

Індекс прибутковості

3,512

Середня рентабельність проекту

1,17

Термін окупності, років

1,03

Висновки по розділу

Показник чистої приведеної вартості ЧПВ >0 , індекс прибутковості проекту ІП > 1, це свідчить про те, що проект є економічно ефективним, його розробка і впровадження є економічно доцільними. Інвестиції, вкладені в проект окупаються за 1,03 року, а кожна вкладена гривня щорічно приносить 0,63 грн. доходу.

Загальні висновки

У процесі виконання дипломного проекту було проведено аналіз застосування навігаційних технології у сучасних AVL системах та розглянуті сучасні розробки таких систем з метою оцінки їх функціональних можливостей, переваг і недоліків.

Також був проведений аналіз існуючих технологій місцевизначення рухомих об'єктів, зокрема з використанням супутникових навігаційних систем (СНС), описані фактори, що впливають на точність місцевизначення об'єктів, і наведені рекомендації щодо реалізації в AVL системах відносно-диференційного методу для забезпечення достатньо високої точності визначення координат об'єктів у складних експлуатаційних умовах.

У третьому розділі було проведено проектування і розробку програмного забезпечення AVL систем, зокрема обґрунтовано структуру системи і вимоги до апаратного забезпечення, розроблені алгоритми функціонування окремих програмних модулів, обрано мову програмування і СУБД, з використанням яких створено тестовий варіант програмного забезпечення для АРМ диспетчера AVL системи.

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

На завершення у дипломному проекті проведений розрахунок економічної ефективності розробки і впровадження програмного забезпечення. Оцінено термін окупності, прибутковість, а також загальна інвестиційна привабливість проекту. Результати проведених розрахунків показують, що даний проект є економічно вигідним.

Перелік посилань

1. Пржибыл П., Свитек М. Телематика на транспорте. BEN, Прага-Москва, 2004. - 534 c.

2. Баранов Г.Л. Диспетчерські системи класу AVL по управлінню перевезеннями із застосуванням супутникових технологій // Системні методи керування, технологія та організація виробництва, ремонту і експлуатації автомобілів. Застосування супутникових технологій у транспортній галузі. - К.: НТУ, ТАУ. - 2002. - С.18 - 23.

3. Бєляєвський Л.С., Топольськов Є.О., Сердюк А.А. та інш. Глобальні супутникові системи навігації та зв'язку на транспорті. Навчальний посібник для ВУЗів транспортного профілю. - К.: В-во «ДажБог», 2009. - Іл., табл., бібліогр. - 216 с.

4. Беляевский Л.С., Новиков Б.С, Олянюк П.В. Основы радионавигации. -- М.: Транспорт; 1997. -- 316 с.

5. Навігація. Основи визначення місцеположення та скеровування / Б. Гофманн-Велленгоф, К. Легат, М.Візер; Пер. з англ.. за ред. Я.С. Яцківа. - Львів: Львівський національний університет імені Івана Франка, 2006. - 443с.

6. Баранов Г.Л., Кошовий А.А. и др. Радіонавігаційний план України: Київ, ЦНДІНУ, 2002., 78 с.

7. Системи супутникові радіонавігаційні мережні. Терміни та визначення. Державний стандарт України. ДСТУ 2599-94. -- Київ, 1994. -- 31с.

8. Соловьев Ю.А. Системы спутниковой навигации. -- М,: ЭКО-Трендз, 2000. -- 267 с.

9. Котяшкин С. И. Определение ионосферной задержки сигналов в одночастотной аппаратуре потребителей спутниковой системы навигации NAVSTAR // Зapyбeжнaя радиоэлектроника--1989.--№ 5.--С. 85--95.

10. Бєляєвський Л.С., Левковець П.Р., Топольськов Є.О. Аналіз точносних характеристик супутникових систем диспетчерського контролю і управління автотранспортом// Системні методи керування, технологія та організація виробництва, ремонту і експлуатації автомобілів. -К.: НТУ, ТАУ. - 2003, вип.17, - с.7-12.

11. Методичні вказівки до виконання лабораторних робіт з навчальної дисципліни "Глобальні супутникові системи навігації і зв'язку на транспорті" для студентів заочної та дистанційної форм навчання напрямів 070101 «Транспортні технології» і 050101 «Комп'ютерні науки» / Топольськов Є.О., Аль-Амморі А., Косенко В.Р., Пилипейко С.С. - К.: НТУ, 2014. - с. 62

12. Кутиков В.Ю., Сошин A. П. и др. Перспективная аппаратура дифференциальной геодезической подсистемы спутниковых РНС ГЛОНАСС и GPS// Радионавигация и время, РИРВ, 1992.

13. Топольськов Є.О. Аналіз методів достовірного відтворення траєкторій руху автотранспортних засобів у складних експлуатаційних умовах // Управління проектами, системний аналіз і логістика. -К.: НТУ, ТАУ. - 2006, вип. 3.- с.148-153.

14. Топольськов Є.О. Перспективи застосування методики відносної корекції координат для підвищення точності місцевизначення транспортних засобів // Управління проектами, системний аналіз і логістика. - К.: НТУ. - 2004. - Вип. 1.- с.53-56.

15. Топольськов Є.О. Удосконалена методика визначення азимутів і кутів місця навігаційних супутників з використанням базових лінії та різницевих вимірів // Автошляховик України: Вісник Північного наукового центру ТАУ. - 2007. - Вип. 10.

16. Держбюджетна НДР "Методи і алгоритми просторово-часової обробки навігаційної інформації у системах супутникового моніторингу і управління транспортними засобами" (шифр за номером державної реєстрації 0106U002143, 2005-2007 рр.)

17. Галисеев Г.В. Программирование в среде Delphi 7. Самоучитель. - М.: Диалектика, 2007. - 288 с.

18. Марселлус Д. Программирование экспертных систем. - М.: Финансы и статистика, 1994. - 256 с.: ил. I8ВN 5-279-00613-0.

19. Лапуста М.Е., Шаршукова Л.Г. Риски в предпринимательской деятельности. - М.: ИНФРА, 1998. - 223 с.

20. Бачкаи Т., Месена Д., Мико Д. и др. Хозяйственный риск и методы его измерения. -М.: Экономика, 1979. - 184 с.

21. Сытник В.Ф., Срока X., Еремина Н.В. и др. Компьютеризация информационных процессов на промышленных предприятиях. - К.: Техника; Катовице: Эконом, академия им. Карола Адамецкого, 1991.- 215с.

Додаток А

Рис.А.1. До диференційного методу корекції координат.

Рис.А.2. До диференційного методу корекції псевдодальностей.

Рис.А.3. Тестовий маршрут руху АТЗ: вул. Січневого повстання - Московська - Цитадельна.

Рис.А.4. Траєкторія АТЗ, одержана з використанням фільтра Калмана.

Рис.А.5 Траєкторія руху АТЗ, одержана з використанням методу відносно-диференційних визначень і фільтра Калмана.

Додаток Б

Лістинг програми

Фрагмент головного модулю системи

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, ExtCtrls, CheckLst, DB, Grids, DBGrids,

ADODB;

type geopoint=record

pid:integer;

lat,lon:double;

end;

type geolat=record

pid:integer;

lat:double;

end;

type geolon=record

pid:integer;

lat:double;

lon:double;

oid:integer;

end;

type geoobj=record

objtype:string;

objkind:integer;

objname:string;

end;

type

TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

Button2: TButton;

Button3: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

ProgressBar1: TProgressBar;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Image1: TImage;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

Button13: TButton;

ADOConnection1: TADOConnection;

ADOQuery1: TADOQuery;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

CheckListBox1: TCheckListBox;

Button14: TButton;

Button15: TButton;

ADOQuery2: TADOQuery;

DataSource2: TDataSource;

DBGrid2: TDBGrid;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button14Click(Sender: TObject);

procedure Button15Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

ptlat:array[0..40000000]of geolat;

ptlon:array[0..40000000]of geolon;

gomas:array[0..5000000]of geoobj;

wrkpt:array[0..200000]of integer;

npt,nob,nwrkpt:integer;

maxlat,maxlon,minlat,minlon:double;

implementation

{$R *.dfm}

procedure objcf(objkind:integer;objtype:string;c:tcanvas);

begin

//

//canvas.pen.style

c.Pen.Color:=clwhite;

c.Brush.Color:=clwhite;

c.Pen.Style:=pssolid;

c.Pen.Width:=1;

if objkind=1 then begin

if(objtype='0x28')or(objtype='0x3e')

or(objtype='0x46')or(objtype='0x44')

or(objtype='0x43')or(objtype='0x42')

or(objtype='0x40')or(objtype='0x3d')

or(objtype='0x3c')or(objtype='0x1f')

or(objtype='0x3b')or(objtype='0x3f')

or(objtype='0x47')

then begin c.Pen.Color:=clblue;c.Brush.Color:=clblue;end;

if(objtype='0x1')

then begin c.Pen.Color:=clbtnface;c.Brush.Color:=clbtnface;end;

if(objtype='0x2')

then begin c.Pen.Color:=clsilver;c.Brush.Color:=clsilver;end;

if(objtype='0x3')

then begin c.Pen.Color:=rgb(100,0,100);c.Brush.Color:=rgb(100,0,100);end;

if(objtype='0x17')

then begin c.Pen.Color:=cllime;c.Brush.Color:=cllime;end;

if(objtype='0x1a')

then begin c.Pen.Color:=clgreen;c.Brush.Color:=clgreen;end;

if(objtype='0x4f')

then begin c.Pen.Color:=rgb(128,255,128);c.Brush.Color:=rgb(128,255,128);end;

if(objtype='0x4e')

then begin c.Pen.Color:=rgb(100,255,100);c.Brush.Color:=rgb(128,255,128);end;

if(objtype='0x50')

then begin c.Pen.Color:=rgb(100,255,100);c.Brush.Color:=rgb(100,255,100);end;

if(objtype='0xc')

then begin c.Pen.Color:=rgb(100,100,100);c.Brush.Color:=rgb(100,100,100);end;

if(objtype='0x8')or(objtype='0x13')

or(objtype='0x17')or(objtype='0xa')

then begin c.Pen.Color:=rgb(150,150,100);c.Brush.Color:=rgb(150,150,100);end;

end;

if objkind=0 then begin

if(objtype='0x26')or(objtype='0x1f')

or(objtype='0x18')

then begin c.Pen.Color:=clblue;c.Brush.Color:=clwhite;end;

if(objtype='0x4')

then begin c.Pen.Width:=2; c.Pen.Color:=clblack;c.Brush.Color:=clwhite;end;

if(objtype='0x1')

then begin c.Pen.Style:=psinsideframe; c.Pen.Width:=3;c.Pen.Color:=tcolor($009090);c.Brush.Color:=clwhite;end;

if(objtype='0x2')

then begin c.Pen.Width:=2;c.Pen.Color:=tcolor($000000);c.Brush.Color:=clwhite;end;

if(objtype='0x3')

then begin c.Pen.Width:=2;c.Pen.Color:=tcolor($900000);c.Brush.Color:=clwhite;end;

if(objtype='0x15')

then begin c.Pen.Width:=2;c.Pen.Color:=tcolor($900000);c.Brush.Color:=clwhite;end;

if(objtype='0x6')

then begin c.Pen.Color:=tcolor($900000);c.Brush.Color:=clwhite;end;

if(objtype='0x7')

then begin c.Pen.Color:=tcolor($aa0000);c.Brush.Color:=clwhite;end;

if(objtype='0x9')

then begin c.Pen.Color:=tcolor($aaaaaa);c.Brush.Color:=clwhite;end;

if(objtype='0x27')

then begin c.Pen.Color:=tcolor($0000ff);c.Brush.Color:=clwhite;end;

if(objtype='0x10f13')

then begin c.Pen.Style:=psdash; c.Pen.Color:=tcolor($0000ff);c.Brush.Color:=clwhite;end;

end;

//form1.Memo1.Lines.Append(objkind+objtype);

end;

procedure quicksort(var a: array of integer; Lo,Hi: integer);

procedure sort(l,r: integer);

var

i,j,x,y: integer;

begin

i:=l; j:=r; x:=a[(l+r) DIV 2];

repeat

while a[i]<x do i:=i+1;

while x<a[j] do j:=j-1;

if i<=j then

begin

if a[i] <> a[j] then BEGIN y:=a[i]; a[i]:=a[j]; a[j]:=y; END;

i:=i+1; j:=j-1;

end;

until i>j;

if l<j then sort(l,j);

if i<r then sort(i,r);

end;

begin {quicksort};

sort(Lo,Hi);

end;

function latgt(lat:double):integer;

var i,j:integer;

begin

i:=0;

j:=npt;

repeat

if ptlat[i+((j-i)div 2)].lat<lat then i:=i+((j-i)div 2) else j:=j-((j-i)div 2);

until((ptlat[i].lat<=lat)and(ptlat[i+1].lat>lat))or((j-i)<2);

latgt:=i;

end;

function longt(lon:double):integer;

var i,j:integer;

begin

i:=0;

j:=npt;

repeat

if ptlon[i+((j-i)div 2)].lon<lon then i:=i+((j-i)div 2) else j:=j-((j-i)div 2);

until((ptlon[i].lon<=lon)and(ptlon[i+1].lon>lon))or(j-i<2);

longt:=i;

end;

procedure TForm1.Button1Click(Sender: TObject);

var f:textfile; s,s1,s2:string;i:integer;d,newobj:integer;gp:geopoint;

begin

assignfile(f,'d:\gps\Ukraine.mp');

reset(f);

npt:=0;

nob:=0;

newobj:=0;

repeat

readln(f,s);

if pos('[END]',s)>0 then begin

newobj:=1;

nob:=nob+1;

end;

if pos('Type',s)>0 then begin

delete(s,1,5);

gomas[nob].objtype:=s;

newobj:=1;

end;

if pos('Label',s)>0 then begin

delete(s,1,6);

gomas[nob].objname:=s;

//newobj:=1;

end;

{if pos('[POLYLINE]',s)>0 then begin

gomas[nob].objkind:=0;

end;}

if pos('[POLYLINE]',s)>0 then begin

gomas[nob].objkind:=0;

newobj:=1;

end;

if pos('[POLYGON]',s)>0 then begin

gomas[nob].objkind:=1;

newobj:=1;

end;

if pos('[POI]',s)>0 then begin

gomas[nob].objkind:=2;

newobj:=1;

end;

if(pos('Data',s)>0){and(newobj=1)} then

begin

if newobj=0 then begin

gomas[nob+1]:=gomas[nob];

nob:=nob+1;

end;

repeat

delete(s,1,pos('(',s));

s1:=s;

s2:=s;

delete(s1,pos(',',s1),length(s1)-pos(',',s1)+1);

delete(s2,1,pos(',',s2));

delete(s2,pos(')',s2),length(s2)-pos(')',s2)+1);

val(s1,ptlat[npt].lat,i);

val(s2,ptlon[npt].lon,i);

ptlon[npt].lat:=ptlat[npt].lat;

ptlat[npt].pid:=npt;

ptlon[npt].oid:=nob;

ptlon[npt].pid:=npt;

npt:=npt+1;

until pos('(',s)=0;

newobj:=0;

end;

until eof(f);

closefile(f);

memo1.Lines.Append(inttostr(npt));

button4.Click;

end;

procedure TForm1.Button2Click(Sender: TObject);

var i,j:integer;gp:geolat;gl:geolon;

begin

progressbar1.Max:=npt;

for i:=0 to npt-1 do

begin

for j:=i to npt do

begin

if ptlat[i].lat>ptlat[j].lat then begin

gp:=ptlat[i];

ptlat[i]:=ptlat[j];

ptlat[j]:=gp;

end;

{if ptlon[i].lon>ptlon[j].lon then begin

gl:=ptlon[i];

ptlon[i]:=ptlon[j];

ptlon[j]:=gl;

end;}

end;

progressbar1.Position:=i;

end;

memo1.Lines.Append('Indexing complete');

end;

procedure TForm1.Button3Click(Sender: TObject);

var

ptlatmin,ptlatmax,ptlonmin,ptlonmax,i,j,k:integer;dlat,dlon:double;

begin

minlat:=strtofloat(edit1.text);

minlon:=strtofloat(edit2.text);

maxlat:=strtofloat(edit3.text);

maxlon:=strtofloat(edit4.text);

dlat:=maxlat-minlat;

dlon:=maxlon-minlon;

minlat:=minlat-(dlat/2);

minlon:=minlon-(dlon/2);

maxlat:=maxlat+(dlat/2);

maxlon:=maxlon+(dlon/2);

ptlatmin:=latgt(minlat);

//ptlonmin:=longt(minlon);

ptlatmax:=latgt(maxlat);

//ptlonmax:=longt(maxlon);

memo1.Lines.Append(inttostr(ptlatmin));

memo1.Lines.Append(inttostr(ptlonmin));

memo1.Lines.Append(inttostr(ptlatmax));

memo1.Lines.Append(inttostr(ptlonmax));

k:=0;

nwrkpt:=0;

for i:=ptlatmin to ptlatmax do

if(ptlon[ptlat[i].pid].lon>=minlon)and(ptlon[ptlat[i].pid].lon<maxlon) then

begin

wrkpt[nwrkpt]:=ptlat[i].pid;

nwrkpt:=nwrkpt+1;

end;

quicksort(wrkpt,0,nwrkpt);

{for i:=0 to nwrkpt-1 do

for j:=i to nwrkpt do if wrkpt[i]>wrkpt[j] then begin

k:=wrkpt[i];wrkpt[i]:=wrkpt[j];wrkpt[j]:=k;

end;}

minlat:=minlat+(dlat/2);

minlon:=minlon+(dlon/2);

maxlat:=maxlat-(dlat/2);

maxlon:=maxlon-(dlon/2);

button7.Click;

memo1.Lines.Append(inttostr(nwrkpt));

//memo1.Lines.Append(inttostr(ptlon[j].pid)+':'+inttostr(ptlat[i].pid));

end;

procedure TForm1.Button5Click(Sender: TObject);

var flat:file of geolat;flon:file of geolon;i:integer;

begin

assignfile(flat,'c:\ptlat.ix');

assignfile(flon,'c:\ptlon.ix');

rewrite(flat);

rewrite(flon);

for i:=0 to npt-1 do begin

write(flat,ptlat[i]);

write(flon,ptlon[i]);

end;

closefile(flat);

closefile(flon);

end;

procedure TForm1.Button4Click(Sender: TObject);

var flat:file of geolat;flon:file of geolon;i:integer;

begin

assignfile(flat,'c:\ptlat.ix');

//assignfile(flon,'c:\ptlon.ix');

reset(flat);

//reset(flon);

npt:=0;

repeat

read(flat,ptlat[npt]);

//read(flon,ptlon[npt]);

npt:=npt+1;

until eof(flat);

closefile(flat);

//closefile(flon);

button14.Click;

button15.Click;

button3.Click;

end;

procedure TForm1.Button6Click(Sender: TObject);

var i:integer;

begin

for i:=0 to npt do memo1.Lines.Append(floattostr(ptlat[i].lat));

end;

procedure arrow(c:tcanvas;x,y:integer;course:double;color:integer);

begin

c.Pen.Color:=tcolor($0f0f0f);

c.Brush.Color:=color;

c.MoveTo(round(sin(course/180*pi)*5)+x,round(cos(course/180*pi)*5)+y);

c.lineTo(round(sin((course+160)/180*pi)*5)+x,round(cos((course+160)/180*pi)*5)+y);

c.lineTo(round(sin((course+180)/180*pi)*3)+x,round(cos((course+180)/180*pi)*3)+y);

c.lineTo(round(sin((course-160)/180*pi)*5)+x,round(cos((course-160)/180*pi)*5)+y);

c.LineTo(round(sin(course/180*pi)*5)+x,round(cos(course/180*pi)*5)+y);

c.FloodFill(x,y,c.Pen.Color,fsborder);

end;

procedure TForm1.Button7Click(Sender: TObject);

var i,np,cx,cy:integer;kx,ky,lat,lon,course:double;pc,bc:tcolor;

points:array[0..100000]of tpoint;

begin

image1.Canvas.Brush.Color:=rgb(250,245,220);

image1.Canvas.Rectangle(0,0,image1.Width,image1.Height);

kx:=image1.Width/(maxlat-minlat);

ky:=image1.Height/(maxlon-minlon);

for i:=1 to nwrkpt do begin

if(ptlon[wrkpt[i]].oid<>ptlon[wrkpt[i-1]].oid)then begin

if gomas[ptlon[wrkpt[i-1]].oid].objkind=1 then

image1.Canvas.Polygon(slice(points,np+1));

objcf(gomas[ptlon[wrkpt[i]].oid].objkind,gomas[ptlon[wrkpt[i]].oid].objtype,image1.Canvas);

{image1.canvas.pen.color:=pc;

image1.canvas.brush.color:=bc;}

np:=0;

points[np].X:=round(((ptlon[wrkpt[i]].lon)-minlon)*ky);

points[np].Y:=image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx);

end else

np:=np+1;

points[np].X:=round(((ptlon[wrkpt[i]].lon)-minlon)*ky);

points[np].Y:=image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx);

end;

image1.Canvas.Pen.Width:=2;

for i:=1 to nwrkpt do begin

if(ptlon[wrkpt[i]].oid<>ptlon[wrkpt[i-1]].oid)then begin

if gomas[ptlon[wrkpt[i-1]].oid].objkind=0 then

image1.Canvas.Polyline(slice(points,np+1));

{if gomas[ptlon[wrkpt[i-1]].oid].objkind=1 then

image1.Canvas.Polygon(slice(points,np+1));}

if gomas[ptlon[wrkpt[i-1]].oid].objkind=2 then

begin

image1.Canvas.Brush.Color:=clred;

image1.Canvas.Ellipse(round(((ptlon[wrkpt[i]].lon)-minlon)*ky)-5,

image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx)-5,

round(((ptlon[wrkpt[i]].lon)-minlon)*ky)+5,

image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx)+5);

//image1.Canvas.TextFlags:=

SetBkMode(image1.Canvas.Handle, TRANSPARENT);

image1.Canvas.TextOut(round(((ptlon[wrkpt[i]].lon)-minlon)*ky),image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx),gomas[ptlon[wrkpt[i]].oid].objname);

end;

objcf(gomas[ptlon[wrkpt[i]].oid].objkind,gomas[ptlon[wrkpt[i]].oid].objtype,image1.Canvas);

{image1.canvas.pen.color:=pc;

image1.canvas.brush.color:=bc;}

np:=0;

points[np].X:=round(((ptlon[wrkpt[i]].lon)-minlon)*ky);

points[np].Y:=image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx);

end else

np:=np+1;

points[np].X:=round(((ptlon[wrkpt[i]].lon)-minlon)*ky);

points[np].Y:=image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx);

end;

//

np:=dbgrid2.DataSource.DataSet.Recordcount;

for i:=1 to np do

begin

dbgrid2.DataSource.DataSet.Recno:=i;

lat:=dbgrid2.Fields[0].AsFloat;

lon:=dbgrid2.Fields[1].AsFloat;

cx:=round((lat-minlon)*ky);

cy:=image1.Height-round((lon-minlat)*kx);

course:=dbgrid2.Fields[2].AsFloat;

arrow(image1.Canvas,cx,cy,course,clgreen);

//image1.Canvas.Ellipse(cx-5,cy-5,cx+5,cy+5);

//image1.Canvas.MoveTo();

end;

end;

procedure TForm1.Button8Click(Sender: TObject);

begin

edit2.Text:=floattostr(minlon-((maxlon-minlon)/10));

edit4.Text:=floattostr(maxlon-((maxlon-minlon)/10));

button3.Click;

end;

procedure TForm1.Button11Click(Sender: TObject);

begin

edit2.Text:=floattostr(minlon+((maxlon-minlon)/10));


Подобные документы

  • Аналіз навігаційних технологій у сучасних AVL системах. Структура системи і вимоги до апаратного забезпечення, розробка алгоритмів функціонування окремих програмних модулів. Вибір мови програмування і СУБД. Тестовий варіант програмного забезпечення.

    дипломная работа [1,8 M], добавлен 17.12.2015

  • Аналіз системи збору первинної інформації та розробка структури керуючої ЕОМ АСУ ТП. Розробка апаратного забезпечення інформаційних каналів, структури програмного забезпечення. Алгоритми системного програмного забезпечення. Опис програмних модулів.

    дипломная работа [1,9 M], добавлен 19.08.2012

  • Етапи розробки проекту. Вимоги до апаратного і програмного забезпечення, до користувача. Специфікація та структура даних, які мають бути розміщеними в системі. Вигляд інтерфейсу системи програмного забезпечення. Розробка бази даних косметичного салону.

    дипломная работа [1,8 M], добавлен 21.02.2015

  • Розробка програмного забезпечення для управління транспортними платформами на базі програмованого логічного контролера S7-300 в Simatic STEP-7. Аналіз програмного забезпечення, розрахунок показників його надійності. Опис алгоритму функціонування системи.

    дипломная работа [2,1 M], добавлен 17.05.2012

  • Місце і роль організацій та рухів у сучасному розвитку українського суспільства. Аналіз інформаційного забезпечення предметної області. Проектування структури інформаційної системи. Розробка структури інформаційної системи Громадська рада Запоріжжя.

    дипломная работа [3,8 M], добавлен 08.12.2010

  • Аналіз інформаційних потоків підприємства торгівлі. Обґрунтування необхідності автоматизації складського обліку автозапчастин. Вимоги до архітектури і продуктивності клієнтської системи. Розробка модулів, алгоритмів, структури даних, інтерфейсу програми.

    дипломная работа [1,6 M], добавлен 12.04.2012

  • Розробка програми калькулятора, що може виконувати найголовніші арифметичні операції над двома числами. Вимоги до апаратного і програмного забезпечення. Опис форм та компонентів програми. Розробка алгоритмів програмного забезпечення. Опис коду програми.

    курсовая работа [57,1 K], добавлен 31.05.2013

  • Обстеження і аналіз репозиторія програмного забезпечення. Аналіз репозиторія ПЗ. Розробка функціональної моделі. Розробка проекту Бази Даних "Репозиторій ПЗ". Розробка алгоритмів і графічних інтерфейсів програмних модулів.

    курсовая работа [3,4 M], добавлен 05.09.2007

  • Вибір і обґрунтування інструментальних засобів. Проектування блок-схем алгоритмів та їх оптимізація. Розробка вихідних текстів програмного забезпечення. Інструкція до проектованої системи. Алгоритм базової стратегії пошуку вузлів та оцінки якості.

    дипломная работа [2,8 M], добавлен 05.12.2014

  • Побудова апаратної структури для серверу, встановлення операційної системи і програмного забезпечення, розробка веб-сайту. Розрахунок річної суми економічного ефекту від впровадження комп’ютерної мережі. Проектування освітлення, засобів пожежогасіння.

    дипломная работа [5,6 M], добавлен 02.07.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.