Программирование учета перевозок в карьере горно-обогатительного комбината

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1 Мб
  • Опубликовано:
    2016-12-23
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программирование учета перевозок в карьере горно-обогатительного комбината

Міністерство освіти і науки України

Державний ВНЗ «Національний гірничий університет»

Факультет інформаційних технологій

Кафедра програмного забезпечення комп’ютерних систем









ПОЯСНЮВАЛЬНА ЗАПИСКА

дипломного проекту бакалавра

галузь знань 0501 Інформатика та обчислювальна техніка

на тему: Програмування обліку перевезень у кар’єрі гірничо-збагачувального комбінату

Виконавець:

студент 4 курсу , групи КНітС-14-1

Кормич Р.І.

Керівники проекту проф. Слєсарєв В.В.

розділів: Спеціальний ас. Родна К.С.

Економічний доц. Касьяненко Л.В.

Рецензент Нормоконтроль доц. Коротенко Л.М.

Дніпро, 2016

Міністерство освіти і науки України

Державний ВНЗ «Національний гірничий університет»

ЗАТВЕРДЖЕНО:

т.в.о. завідувача кафедри

програмного забезпечення комп’ютерних систем








ЗАВДАННЯ

на дипломний проект бакалавра

студенту КНітС-14-1 Кормичу Руслану Ігоровичу

Тема дипломного проекту Програмування обліку перевезень у кар’єрі гірничо-збагачувального комбінату

затверджена наказом ректора ДВНЗ «НГУ» від 27.04.2016р. № 672-л

Розділ

Зміст виконання

Термін виконання

Спеціальний

На основі матеріалів виробничої практики та інших науково-технічних джерел провести аналіз стану рішення проблеми та постановку задачі. Обґрунтувати вибір та здійснити реалізацію методів вирішення проблеми

  28.05.2016 р.

Економічний

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

 03.06.2016 р.

Завдання видав Слєсарєв В.В.

Завдання прийняв до виконання Кормич Р.І.

Дата видачі завдання: 12.02.2016 р.

Термін подання дипломного проекту до ДЕК _21 червня 2016 р.__

РЕФЕРАТ

Пояснительная записка: 63с., 19 рис., 10 табл., 4 приложения, 15 источников.

Объект разработки: система учета перевозок в карьере горно-обогатительного комбината.

Цель бакалаврской работы: учет данных о составе выходящих на смену сотрудников, передвижении автотранспорта, количестве перевозимого груза, а также формирование текстовых и графических отчетов о работе автотранспорта и экскаваторов с целью своевременного анализа деятельности карьера.

Во введении рассмотрена необходимость создания и область применения системы учета перевозок в карьере горно-обогатительного комбината, проведен анализ аналогов и выбраны методы решения.

В техническом задании определены: основания для разработки системы учета перевозок в карьере горно-обогатительного комбината, назначение разработки, требования к программному изделию, требования к программной документации, технико-экономические показатели, стадии и этапы разработки.

В пояснительной записке выполнена постановка задачи на систему учета перевозок в карьере горно-обогатительного комбината, разработано информационное обеспечение системы, приведены ожидаемые технико-экономические показатели, определены источники, использованные при разработке.

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

В разделе «Экономика» рассчитаны затраты на разработку и внедрение данного программного продукта, а также экономическая эффективность данного программного продукта.

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

Список ключевых слов: ГОРНОДОБЫВАЮЩАЯ ПРОМЫШЛЕННОСТЬ, ТРАНСПОРТНЫЕ РАССТОЯНИЯ, УЧЕТ, ХРАНЕНИЕ, ИНФОРМАЦИОННАЯ СИСТЕМА, БАЗА ДАННЫХ, ИНТЕРАКТИВНЫЙ ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС, ЗАТРАТЫ, ЭКОНОМИЧЕСКИЙ ЭФФЕКТ.

РЕФЕРАТ

Пояснювальна записка: 63с., 19 мал., 10 табл., 4 додатка, 15 джерел.

Об'єкт розробки: система обліку перевезень у кар’єрі гірничо-збагачувального комбінату.

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

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

У технічному завданні визначені: підстави для розробки системи обліку перевезень у кар’єрі гірничо-збагачувального комбінату, призначення розробки, вимоги до програмного виробу, вимоги до програмної документації, техніко-економічні показники, стадії і етапи розробки.

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

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

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

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

Список ключових слів: ГІРНИЧОДОБУВНА ПРОМИСЛОВІСТЬ, ТРАНСПОРТНІ ВІДСТАНІ, ОБЛІК, ЗБЕРІГАННЯ, ІНФОРМАЦІЙНА СИСТЕМА, БАЗА ДАНИХ, ІНТЕРАКТИВНИЙ ІНТЕРФЕЙС КОРИСТУВАЧА, ВИТРАТИ, ЕКОНОМІЧНИЙ ЕФЕКТ.

THE ABSTRACT

slip: 63 pages, 19 pic., 10 tables., 4 applications, 15 sources.object of development: Programming transport accounting in the open pit of concentration plant.

The goal of the bachelor work: The account of the data about employees who come to work, transport movement, quantity of cargo which is transported, and also formation text and graphic reports about transport movement for the timely analysis of activity of an opencast mine.necessity of creation and application of this software product domain is considered in introduction, the analysis of analogues is conducted and the methods of decision are chosen.a requirement specification certain: foundation for development of the information system, setting of development, requirements to programmatic good, requirements to the programmatic document, technical and economic indexes, stages and design times.explanatory note gives setting and application of the information system, expected technical and economic indexes, sources, used for development.description of the program general information is resulted about application, functional setting, description of logical structure, in-use hardwares, call and load, input information, output information.«Economics» calculated the costs of development and implementation of the system, as well as the economic efficiency of this software.practical importance of creation of this software consists in the possibility to solve the problems of an operational administration open-cast mine work in due time and to minimize the expense of power resources and obtain the increase of the labour and improvement of quality of work productivity.of keywords: MINING INDUSTRY, TRANSPORT DISTANCES, ACCOUNTING, STORAGE, INFORMATIVE SYSTEM, DATABASE, INTERACTIVE USER INTERFACE EXPENSES, ECONOMIC EFFECT.

СОДЕРЖАНИЕ

РЕФЕРАТ

РЕФЕРАТABSTRACT

ВВЕДЕНИЕ

. АНАЛИЗ ПРОБЛЕМЫ

.1 Анализ предметной области. Назначение разработки

.2 Постановка задачи

.3 Описание и обоснование выбора организации входных и выходных данных

.4 Описание применяемых математических методов

.5 Описание технологий и языков программирования, используемых при разработке программы

. СПЕЦИАЛЬНЫЙ РАЗДЕЛ

.1 Описание состава технических и программных средств

.2 Описание логической структуры программы

.3 Входные и выходные данные

.4 Описание пользовательского интерфейса

. ЭКОНОМИКА

.1 Определение трудоемкости разработки программного обеспечения

.2 Затраты на создание программного обеспечения

ВЫВОДЫ

СПИСОК ЛИТЕРАТУРЫ

Приложение А Формы выходных документов

Приложение Б Текст программы

Приложение В Отзыв

Приложение Г Рецензия

ВВЕДЕНИЕ

В настоящее время на рынке Украины представлено довольно большое количество программных комплексов, обеспечивающих решение задач оперативного управления работой предприятий, в том числе и специализированные системы для горнодобывающей промышленности. Среди них система диспетчеризации ГТК компании «Солис», система диспетчеризации ГТК «Карьер» (разработчик «Вистгрупп»), диспетчерская система управления горным транспортом SkyLinks, разработанная болгарскими специалистами и др.

Приведенная в данной бакалаврской работе система учета перевозок руды и вскрышных пород является частью системы управления всего карьера ГОК.

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

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

Актуальность разработанной системы определяется насущной потребностью перехода украинских предприятий на максимальное использование местных полезных ископаемых, таких как уголь, руда и др. Это позволит предприятиям менее зависеть от внешних поставок.

.        АНАЛИЗ ПРОБЛЕМЫ

1.1 Анализ предметной области. Назначение разработки

Процесс добычи руды или любого другого вида сырья далеко не такой простой, как может показаться, и представляет собой многоступенчатый цикл. Каждый из этапов добычи имеет свойственные ему проблемы и трудности, но помимо этого к ним постоянно добавляются новые, продиктованные изменениями рынка моменты. К ним можно отнести изменения законодательных норм, направленные на усиление контроля над сохранностью окружающей среды, а также усиление мер безопасности сотрудников подобных компаний и много другое. Это все внутренние проблемы, но есть еще и мировые тенденции, влияющие в первую очередь на ценообразование отдельных сырьевых ресурсов. В совокупности все эти факторы отрицательно влияют на рентабельность производства и заставляют горнодобывающие организации задуматься об оптимизации производственного процесса.

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

Обычный набор функций интегрированной системы включает в себя:

-   Управление базами данных;

-   Интерактивная 3-х мерная графика и картирование;

-   Статистическая и геостатистическая обработка информации;

-   Трехмерное моделирование геологических объектов и поверхностей;

-   Проектирование открытых и подземных горных работ;

-   Планирование развития рудников и календарное планирование;

-   Маркшейдерские расчеты и т. д.

К таким системам относится, например, интегрированная система «Датамайн», разработанная компанией Mineral Industry Computing Ltd, позволяющая специалистам эффективно решать широкий спектр геологических, горных и маркшейдерских задач. Однако подобные системы являются достаточно дорогостоящими и зачастую украинские предприятия не готовы или не имеют возможности тратить такое количество денег на приобретение программного обеспечения. Помимо этого они далеко не всегда нуждаются в реализации всех тех возможностей, которые предлагают интегрированные системы. Для горно-обогатительных комбинатов актуальной задачей является получение аналитической и статистической информации о транспортных процессах и формирование отчетов в текстовом и графическом виде для своевременного решения задач оперативного управления, что позволит минимизировать расход энергоресурсов и добиться повышения производительности труда и улучшения качества работы.

1.2    Постановка задачи

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

1.       Обеспечение защиты информации процедурой логического входа (пользователь-пароль). Для зарегистрированных пользователей вход в систему осуществляется при наборе логина и пароля;

2.      Предоставление пользователю, вошедшему в систему, возможности изменить свой пароль.

.        Создание справочников «Водители», «Бригады», «Автотранспорт», «Пункты разгрузки».

.        Создание формы «Водители» для просмотра информации о водителях.

.        Создание формы «Бригады» для просмотра состава бригад (диспетчер и машины, закрепленные за водителями) и переназначения, в случае необходимости, диспетчера в другую бригаду на текущую смену.

.        Создание формы «Автотранспорт» для просмотра данных о работающем в карьере транспорте.

.        Создание формы «Пункты разгрузки» для внесения и редактирования обозначений мест разгрузки автотранспорта в карьере.

.        Создание формы «Назначение на смену» для утверждения состава бригады, работающей в текущую смену, а также замены машин и водителей на текущую смену. Данные сохраняются каждую смену.

.        Создание формы «Отчеты» для задания параметров (смена, машина, период) и вывода на просмотр и печать текстовых и графических справок.

.        Вывод данных и формирование отчетов в соответствии с заданными параметрами: по произвольным периодам времени, по объектам, по массам:

-   отчет о рейсах машины за смену;

-   отчет о работе машин;

-   отчет по экскаваторам (погрузочным пунктам);

-   отчет о транспортных расстояниях;

-   отчет по горным массам;

11.     Составление графических справок:

-   производительность машин (за выбранный период);

-   производительность экскаваторов (за выбранный период)

-   уровень топлива машины за смену.

Информация, представленная в текстовом, и графическом виде выводится как на экран, так и на печать.

1.3    Описание и обоснование выбора организации входных и выходных данных

Структура БД:

Таблица 1.1

Имена таблиц в базе данных

Наименование

Имя в БД

Водители

tDrivers

Типы машин

tCarType

Машины

tCars

Смены

tShift

Водители-машины

tDriverCar

Пункты разгрузки

tUnloading

Типы породы

tBurdenType

Рейсы

tTrip

Учет топлива

tCalcOil


Таблица 1.2

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

1

Код

CodeDriver

INTEGER


Р

2

Фамилия

DriverSurname

VARCHAR

50


3

Имя

DriverName

VARCHAR

50


4

Отчество

DriverPatronymic

VARCHAR

50


5

Дата рождения

DriverBirthday

DATE



6

Паспорт (серия, номер)

DriverPassport

VARCHAR

50


7

Адрес

DriverAdres

VARCHAR

300


8

Телефон

DriverPhone

VARCHAR

30


9

Мобильный телефон

DriverPhoneMob

VARCHAR

30


10

Примечание

DriverComment

VARCHAR

1000


11

Дата начала работы

DriverWorkBegin

DATE



12

Дата окончания работы

DriverWorkEnd

DATE




Спецификация таблицы tDrivers (Водители)

Таблица 1.3

Спецификация таблицы tCarType (Типы машин)

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

1

Код

CodeCarType

INTEGER


Р

2

Тип

CarTypeName

VARCHAR

50


3

Примечание

CarTypeComment

VARCHAR

1000



Таблица 1.4

Спецификация таблицы tCars (Машины)

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

1

Код

CodeCar

INTEGER


Р

2

Тип

CodeCarType

INTEGER



3

Номер (государственный)

CarNumber

VARCHAR

50


4

Номер (внутренний)

CarNumberIn

VARCHAR

50


5

Модель

CarModel

VARCHAR

50


6

Тип

CarPatronymic

VARCHAR

50


7

Год выпуска

CarYear

INTEGER



8

Дата начала работы в карьере

CarBegin

DATE



9

Дата окончания работы в карьере

CarEnd

DATE



10

Примечание

CarComment

VARCHAR

1000



Таблица 1.5

Спецификация таблицы tShift (Смены)

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

1

Код

CodeShift

INTEGER


Р

2

Дата

ShiftDate

VARCHAR

50


3

Смена

ShiftNum

INTEGER





Таблица 1.6

Спецификация таблицы tDriverCar (Водители-машины)

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

1

Код

CodeDriverCar

INTEGER


P

2

Смена

CodeShift

INTEGER



3

Машина

CodeCar

INTEGER



4

Водитель

CodeDriver

INTEGER




Таблица 1.7

Спецификация таблицы tUnloading (Пункты разгрузки)

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

Код

CodeUnload

INTEGER


Р

2

Наименование

UnloadName

VARCHAR

100


3

Примечание

UnloadComment

VARCHAR

1000



Таблица 1.8

Спецификация таблицы tBurdenType (Типы породы)

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

1

Код

CodeBurdenType

INTEGER


Р

2

Тип

BurdenTypeName

VARCHAR

50


3

Примечание

BurdenTypeComment

VARCHAR

1000



Таблица 1.9

Спецификация таблицы tTrip (Рейсы)

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

1

Код

CodeTrip

INTEGER


Р

2

Смена

CodeShift

INTEGER



3

Машина

CodeCar

INTEGER



4

Пункт погрузки

TripPPName

VARCHAR

50


5

Пункт разгрузки

CodeUnload

INTEGER



6

Начало движения

TripTimeBegin

TIME



7

Окончание движения

TripTimeEnd

TIME



8

Простой (мин.)

TripStanding

FLOAT



9

Тип породы

CodeBurdenType

INTEGER



10

Масса перевозимого груза

TripMass

FLOAT



11

Показания счетчика топлива

TripCounterOil

FLOAT




Таблица 1.10

Спецификация таблицы tCalcOil (Учет топлива)

№ п.п.

Заглавие

Имя поля

Тип

Длина

Ключ

1

Код

CodeCalcOil

INTEGER


Р

2

Машина

CodeCar

INTEGER



3

Смена

CodeShift

INTEGER



4

Время

CalcOilTime

TIME



5

Показания счетчика

CalcOilCount

FLOAT



6

Заправка (л.)

CalcOilFuel

FLOAT



7

Примечание

CalcOilComment

VARCHAR

500



Рис. 1.1. Схема базы данных

1.4   
Описание применяемых математических методов

Поскольку разрабатываемое ПО требует создания базы данных, предоставляющей возможности хранения и защиты информации, то целесообразно рассмотреть здесь понятие базы данных и принципы работы СУБД.

База данных - это совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ. База данных является информационной моделью предметной области. Обращение к базам данных осуществляется с помощью системы управления базами данных (СУБД).

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

База данных - это единое, большое хранилище данных, которое однократно определяется, а затем используется одновременно многими пользователями из разных подразделений. Вместо разрозненных файлов с избыточными данными, здесь все данные собраны вместе с минимальной долей избыточности. База данных уже не принадлежит какому-либо единственному отделу, а является общим корпоративным ресурсом. Причем база данных хранит не только рабочие данные этой организации, но и их описания. В совокупности, описание данных называется системным каталогом (system catalog), или словарем данных (data-dictionary), а сами элементы описания принято называть метаданными (meta-data), т.е. "данными о данных". Именно наличие самоописания данных в базе данных обеспечивает в ней независимость между программами и данными (program-data independents). И, наконец, следует объяснить последний термин из определения базы данных, а именно понятие "логически связанный". При анализе информационных потребностей организации следует выделить сущности, атрибуты и связи. Сущностью (entity) называется отдельный тип объекта организации (человек, место или вещь, понятие или событие), который нужно представить в базе данных. Атрибутом (attribute) называется свойство, которое описывает некоторую характеристику описываемого объекта; связь (relationship) - это то, что объединяет несколько сущностей. Подобная база данных представляет сущности, атрибуты и логические связи между объектами. Иначе говоря, база данных содержит логически связанные данные.

Архитектура клиент/сервер - это архитектура, которая предусматривает наличие конечного пользователя (клиента), который имеет доступ и возможность обрабатывать данные, сохраняемые на удаленном компьютере - сервере. Сервер предоставляет некоторый сервис, а клиент запрашивает его у сервера. К одному и тому же серверу может обращаться множество клиентов с требованием предоставить им какой-либо сервис, и именно сервер решает, как обработать подобные запросы

Физическое проектирование базы данных - это процесс создания описания реализации базы данных на вторичных запоминающих устройствах с указанием структур хранения и методов доступа, используемых для организации эффективной обработки данных.

Основной целью физического проектирования базы данных является описание способа физической реализации логического проекта базы данных. В случае реляционной модели данных под этим подразумевается следующее:

·      создание набора реляционных таблиц и ограничений для них на основе информации, представленной в глобальной логической модели данных;

·        определение конкретных структур хранения данных и методов доступа к ним, обеспечивающих оптимальную производительность системы с базой данных;

·        разработка средств защиты создаваемой системы.

Проектирование структуры БД предполагает соблюдение правил нормализации (правил Кодда). В случае применения к таблицам с данными каждое правило описывает следующий уровень соответствия требованиям теории реляционных баз данных и различные степени нормализации. Существует пять различных уровней нормализации, но ни одна из реляционных СУБД до сих пор не предоставляет поддержки для всех пяти нормальных форм. Это происходит из-за жестких требований в отношении производительности. Суть дела в том, что в полностью нормализованной базе данных для выполнения запроса вам потребуется соединить столь много таблиц, что производительность такой системы не сможет удовлетворить практических запросов.

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

Помимо нормализации к БД применимы такие основные понятия как связи и ключи.

Связь устанавливается между двумя общими полями (столбцами) двух таблиц. Существуют связи с отношением «один-к-одному», «один-ко-многим» и «многие-ко-многим».

Отношения, которые могут существовать между записями двух таблиц:

·      один - к - одному, каждой записи из одной таблицы соответствует одна запись в другой таблице;

·        один - ко - многим, каждой записи из одной таблицы соответствует несколько записей другой таблице;

·        многие - к - одному, множеству записей из одной таблице соответствует одна запись в другой таблице;

·        многие - ко - многим, множеству записей из одной таблицы соответствует несколько записей в другой таблице.

Тип отношения в создаваемой связи зависит от способа определения связываемых полей:

·     Отношение «один-ко-многим» создается в том случае, когда только одно из полей является полем первичного ключа или уникального индекса.

·        Отношение «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.

·        Отношение «многие-ко-многим» фактически является двумя отношениями «один-ко-многим» с третьей таблицей, первичный ключ которой состоит из полей внешнего ключа двух других таблиц

Ключ - это столбец (может быть несколько столбцов), добавляемый к таблице и позволяющий установить связь с записями в другой таблице. Существуют ключи двух типов: первичные и вторичные или внешние.

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

Внешний (вторичный) ключ - это одно или несколько полей (столбцов) в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице. Внешний ключ определяет способ объединения таблиц.

Из двух логически связанных таблиц одну называют таблицей первичного ключа или главной таблицей, а другую таблицей вторичного (внешнего) ключа или подчиненной таблицей. СУБД позволяют сопоставить родственные записи из обеих таблиц и совместно вывести их в форме, отчете или запросе.

Существует три типа первичных ключей: ключевые поля счетчика (счетчик), простой ключ и составной ключ.

Поле счетчика (Тип данных «Счетчик»). Тип данных поля в базе данных, в котором для каждой добавляемой в таблицу записи в поле автоматически заносится уникальное числовое значение.

Простой ключ. Если поле содержит уникальные значения, такие как коды или инвентарные номера, то это поле можно определить как первичный ключ. В качестве ключа можно определить любое поле, содержащее данные, если это поле не содержит повторяющиеся значения или значения Null.

Составной ключ. В случаях, когда невозможно гарантировать уникальность значений каждого поля, существует возможность создать ключ, состоящий из нескольких полей. Чаще всего такая ситуация возникает для таблицы, используемой для связывания двух таблиц многие - ко - многим.

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

Если возникают затруднения с выбором подходящего типа первичного ключа, то в качестве ключа целесообразно выбрать поле счетчика.

Программы, которые предназначены для структурирования информации, размещения ее в таблицах и манипулирования данными называются системами управления базами данных (СУБД). Другими словами СУБД предназначены как для создания и ведения базы данных, так и для доступа к данным.

программа язык логический диспетчерский

1.5    Описание технологий и языков программирования, используемых при разработке программы

Разработка информационной системы состоит из двух основных этапов:

·        создание базы данных;

·        создание приложения.

При реализации поставленной задачи были использованы следующие программные продукты и технологии: клиент-серверная архитектура, Delphi 2010, СУБД Firebird.

Delphi - это RAD, или Rapid Application Development - среда быстрой разработки приложений, в которой используется строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal. Delphi включает в себя не только все средства для работы с языком Object Pascal (тем более, что начиная с версии, 2005 в Delphi имеется поддержка других языков программирования, в частности, C#), но и ряд дополнительных средств, призванных максимально ускорить и упростить создание программ. К таким средствам относятся, прежде всего, визуальный редактор форм, при помощи которого за считанные минуты и без лишних усилий можно создать полноценно выглядящую программу, а так же прочие составные части визуальной составляющей разработки программ.

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

Вместе с развитыми средствами для написания и отладки кода - специализированным текстовым редактором, оптимизирующим компилятором и отладчиком, Delphi являет собой средство быстрой разработки приложений. При этом основой Delphi для конечного пользователя является IDE - Integrated Development Environment (интегрированная среда разработки), которая объединяет в себе редактор кода и средства визуальной разработки, а также связывает это с компилятором, средствами разработки баз данных и прочими составными частями Delphi.позволяет создавать самые различные программы: от простейших одно оконных приложений до программ управления распределенными базами.

При создании системы учета перевозок в карьере горно-обогатительного комбината используется среда разработки Embarcadero Delphi 2010, отличающаяся быстродействием, компактностью, полнофункциональным пользовательским интерфейсом а также способностью интегрироваться едва ли не к любой базе данных, не требуя дополнительной доработки.

Новая разновидность Delphi включает в себя развитый, язык программирования, интегрированный, быстрый компилятор, а также отладчик Windows, визуальную среду для разработки интерактивных приложений вместе с пользовательским интерфейсом, платформу визуальных составляющих (VCL), содержащую свыше 250 стандартных классов и включающий обширные возможности по подключению к базам данных (и службам). Сообщество партнеров а также разработчиков Delphi предлагает тысячи дополнительных составляющих Delphi с целью каждого конкретного приложения, процесса создания, функции или задачи.

Новые возможности Delphi 2010:

• поддержка Windows 7 API, Direct2D и мультисенсорного ввода;

• поддержка касаний и жестов для Windows 2000, Windows XP, Windows Vista и Windows 7;

• IDE Insight в Delphi 2010 - мгновенный доступ к любой функции или параметру;

• свыше 120 усовершенствований для повышения производительности;

• визуализаторы отладчика;

• поддержка Firebird с помощью dbExpress;

• классический интерфейс Delphi 7 и панель инструментов со вкладками как опция.2010 может работать на следующих операционных системах: Microsoft Windows 7, Microsoft Windows XP Home or Professional (SP3), Microsoft Windows VistaTM (SP1), Microsoft Windows Server 2003 (SP1) или 2008.

СУБД Firebird (Firebird SQL, Firebird For, Firebird VS) - компактная, кроссплатформенная, свободная система управления базами данных (СУБД <#"896757.files/image002.jpg">

Рис. 2.1. Окно входа в систему.

В случае, если пароль введен неверно пользователь увидит соответствующее сообщение (рис. 2.2.)

Рис. 2.2. Сообщение о вводе неправильного пароля.

После входа пользователя под своим логином и паролем, его фамилия подставляется по умолчанию в отчетах, которые он формирует. Далее открывается главное окно программы (рис. 2.3.)

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

Главное окно программы содержит кнопки для открытия форм «Водители», «Бригады», «Пункты разгрузки», «Назначение на смену», «Автотранспорт» и «Отчеты». Также для открытия этих форм предназначены пункты главного меню приложения.

Присутствующий на формах-справочниках компонент для добавления, удаления, обновления записей и перемещения по ним выглядит следующим образом:

, где

- добавление записи;  - удаление записи.

После входа в систему пользователь может изменить свой пароль. Для этого необходимо открыть форму «Изменение данных диспетчера» (пункт главного меню АдминистрированиеàРедактировать данные).

Рис. 2.4. Форма «Изменение данных диспетчера»

Для внесения нового пароля нужно заполнить поля Старый пароль и Новый пароль и нажать кнопку Внести изменения. Если данные, внесенные в поле Старый пароль не совпадают с существующим паролем, то изменения внесены не будут и пользователю будет выдано сообщение об ошибке (рис. 2.5).

Рис. 2.5. Сообщение об ошибке при попытке изменить пароль

Если данные внесены правильно, то пароль будет изменен и появится сообщение об успешном завершении операции (рис. 2.6).

Рис. 2.6. Сообщение об успешном изменении пароля.

Пароль может быть изменен только для того пользователя, под логином/паролем которого был осуществлен вход в систему.

Пункт главного меню Администрирование предназначен для просмотра, внесения и редактирования данных в справочниках и включает в себя следующие пункты:

Водители - открытие справочника «Водители» для просмотра данных.

Рис. 2.7. Форма «Водители»

Бригады - открытие формы «Бригады» для просмотра состава бригад и переназначения бригады, если диспетчер работает не в свою смену (рис. 2.10).

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

Для этого в разделе Назначить диспетчера в другую бригаду необходимо указать номер бригады, которая работает в текущую смену в поле Бригада и нажать кнопку «Назначить» В поле Диспетчер по умолчанию вносится ФИО диспетчера, зашедшего под своим логином/паролем в систему. Если в поле Бригада нет значения, появится сообщение об ошибке.

Рис. 2.8. Сообщение об ошибке при назначении бригады

Если замена данных прошла успешно пользователь увидит сообщение следующего содержания:

Рис. 2.9. Сообщение об успешном изменении данных

Рис. 2.10. Форма «Бригады»

Все поля формы кроме поля Бригада являются нередактируемыми и предназначены только для просмотра.

Пункты разгрузки - открытие формы «Пункты разгрузки» для просмотра, внесения и редактирования данных.

Рис. 2.11. Форма «Пункты разгрузки»

Пункт главного меню Транспорт:

Автотранспорт - открытие формы «Пункты разгрузки» для просмотра, внесения и редактирования данных.

Рис. 2.12. Форма «Автотранспорт»

Назначение на смену - открытие формы «Назначение водителей» для просмотра, изменения и подтверждения данных для внесения в базу за текущую смену.

Рис. 2.13. Форма «Назначение водителей»

После входа в систему для того чтобы начать работать с программой диспетчер должен подтвердить состав бригады и добавить данные в базу. Если никаких изменений в составе нет, то нужно нажать кнопку «Подтвердить». Появится запрос системы о подтверждении выполнения данного действия (рис. 2.14.)

Рис. 2.14. Запрос системы на подтверждение внесения данных

После нажатия кнопки «Да» данные за текущую смену будут добавлены в базу.

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

Пункт главного меню Отчеты.

Итоговые отчеты - открывает форму «Отчеты» для формирования и печати отчетов и графиков.

Рис. 2.15. Форма «Отчеты»

Отчеты формируются по данным рейсов машин за каждую смену. Для просмотра отчета выберите нужную смену из списка Смены, для отчета о рейсах по каждой машине и графика расхода топлива- машину из списка Машина.

Кнопка  - предназначена для просмотра отчета, кнопка  - для печати.

График расхода топлива отображает показания датчика топлива выбранной машины в течении указанной смены (рис 2.16).

Рис. 2.16. График уровня топлива машины

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

В разделе Графические справки за период формируются графики производительности машин (рис. 2.17.) и экскаваторов (рис. 2.18.) за выбранный период. Даты указываются в полях «С», «По».

Рис. 2.17. График производительности по машинам

Рис. 2.18. График производительности по экскаваторам.

.        ЭКОНОМИКА

Эффективность каждого программного продукта определяется его качеством и эффективностью процесса отладки и сопровождения. Качество программного продукта определяется следующими составляющими: с точки зрения пользователя данного ПО; с позиции использования ресурсов и их оценки, а так же выполнение условий на программный продукт.

Оценка качества программного продукта с точки зрения пользователя определяется необходимым на стадии функционирования количеством оперативной памяти ЭВМ, затратами машинного времени, пропускной способностью каналов передачи данных. Оценка использования ресурсов на стадии создания программного продукта включает определение трудоемкости, времени отладки и стоимости его создания.

В связи с этим технико-экономические расчеты должны включать определение трудоемкости разработки ПО и расчет затрат на создание программного продукта.

3.1    Определение трудоемкости разработки программного обеспечения

Нормирование труда в процессе создания ПО существенно затруднено в силу творческого характера труда программиста, поэтому трудоемкость разработки ПО может быть рассчитана на основе системы моделей с различной точностью оценки.

Исходные данные для расчета:

предполагаемое число операторов (q) - 800;

коэффициент сложности программы (C) - 1,4;

коэффициент коррекции программы (p) - 0,1;

коэффициент увеличения затрат труда вследствие недостаточного описания задачи (B) - 1,3;

коэффициент квалификации программиста (K) - 0,8

заработная плата программиста - 20 грн/час;

стоимость машинного времени, необходимого для отладки программы на ЭВМ - 9 грн./час.

Трудоемкость можно рассчитать по формуле:

 человеко-часов, (3.1)

где to - затраты труда на подготовку и описание поставленной задачи (принимается = 50);- затраты труда на исследование алгоритма решения задачи;- затраты труда на разработку блок-схемы алгоритма;п - затраты труда на программирование по готовой блок-схеме;отл - затраты труда на отладку программы на ЭВМ;д - затраты труда на подготовку документации.

Составляющие затраты труда определяются исходя из условного числа операторов в разрабатываемом ПО.

Условное число операторов:

, (3.2)

- предполагаемое число операторов (q = 800).- коэффициент сложности программы. Коэффициент сложности задачи С характеризует относительную сложность программы по отношению к так называемой типовой задаче, реализующей стандартные методы решения, сложность которой принята равной единице (величина С лежит в пределах от 1,25 до 2). Для данного программного продукта, с учетом большого количества и разнообразия обрабатываемой информации и сложности составления отчетов, коэффициент сложности задачи возьмем 1,4.

р - коэффициент коррекции программы в ходе ее разработки. Коэффициент коррекции программы p - увеличение объема работ за счет внесения изменений в алгоритм или программу по результатам уточнения постановок. В данном случае программа не требовала многочисленных доработок. С учетом этого возьмем коэффициент равный 0,1.=800 *1,4*(1+0,1)=1232

Затраты труда на изучение описания задачи определяется с учетом уточнения описания и квалификации программиста.

, (3.3)

- коэффициент увеличения затрат труда вследствие недостаточного описания задачи. Коэффициент увеличения затрат труда в зависимости от сложности задачи принимается от 1,2 до 1,5, вследствие недостаточного описания решения задачи примем B = 1,3.

K - коэффициент квалификации программиста, определяемый от стажа работы по данной специальности. Коэффициент составляет: для работающих до двух лет - 0,8; от двух до трех лет - 1,0; от трех до пяти лет - 1,1 - 1,2; от пяти до семи - 1,3 - 1,4; свыше семи лет - 1,5 - 1,6. Поэтому примем К = 0,8.

t u =(1232*1,3)/(80*0,8)=25 чел.-часов.

Затраты труда на разработку алгоритма решения задачи:

 , (3.4)

a=1232/(22,5*0,8)=68,4 чел.-часов.

Затраты на составление программы по готовой блок-схеме:

, (3.5)

n=1232/(22,5*0,8)=68,4 чел.-часов.

Затраты труда на отладку программы при условии автономной отладки одного задания:

, (3.6)

отл =1232/(4,5*0,8)=342,2 чел.-часов.

Затраты труда на отладку программы при условии комплексной отладки задания:

к отл =1,5*t отл , (3.7)

к отл=1,5*342,2=513,3 чел.-часов.

Затраты на подготовку документации:

, (3.8)

где tдр - трудоемкость подготовки материалов и рукописи;до - трудоемкость редактирования, печати и оформления документации.

Трудоемкость подготовки материалов и рукописи определяется по формуле:

 , (3.9)

др=1232/(17,5*0,8)=88 чел.-часов.

Трудоемкость редактирования, печати и оформления документации:

, (3.10)

до=0,75*88=66 чел.-часов.

Затраты на подготовку документации составят:д = 88 + 66 = 154 чел.-часов.

Получаем трудоемкость разработки ПО:= 50+25+68,4+68,4+513,3+154 = 879,2 чел.-часов

Таким образом, трудоемкость разработки программного обеспечения составляет 879,2 чел.-часов.

3.2    Затраты на создание программного обеспечения

Затраты на создание ПО (Кпо) включают затраты на заработную плату разработчиков программы (Зз/п), определяемую умножением суммарной трудоемкости разработки ПО (t) на среднюю заработную плату программиста с начислениями и стоимости машинного времени на отладку.

(3.11)

Заработная плата разработчиков определяется по формуле:

, (3.12)

где t - общая трудоемкость, чел.-часов.пр - средняя часовая заработная плата программиста, грн/час.пр = 20 грн./час.

З зп=879,2 *20=17584 грн.

Стоимость машинного времени, необходимого для отладки программы на ЭВМ:

, (3.13)

где tотл - трудоемкость отладки программы на ЭВМ, ч.

Смч - стоимость машинного времени ЭВМ грн/ч.

З мв= 513,3*9=4620 грн.

Затраты на создание программного обеспечения составят:

Кпо= 17584 + 4620 = 22204 грн.

Определенные таким образом затраты на создание программного обеспечения являются одноразовыми капитальными затратами на создание АС.

Ожидаемый период создания ПО:

 мес., (3.14)

где Bk - число разработчиков;- месячный фонд рабочего времени (при 40 часовой рабочей неделе Fp=176 часов).

Т=879,2/(1*176)=5 мес.

Таким образом, ожидаемая длительность разработки составит 5 месяцев, а затраты на создание программного обеспечения - 22204 грн.

Выводы

В данном дипломном проекте разрабатывается программное обеспечение для учета перевозок в карьере горно-обогатительного комбината. Затраты на создание программного обеспечения составили 22204 грн, длительность разработки - 5 месяцев.

Выводы

В данной бакалаврской работе была разработана система учета перевозок руды и вскрышных пород являющаяся частью системы управления всего карьера ГОК.

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

Актуальность разработанной системы определяется насущной потребностью перехода украинских предприятий на максимальное использование местных полезных ископаемых, таких как уголь, руда и др. Это позволит предприятиям менее зависеть от внешних поставок.

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

Разработанное программное обеспечение имеет дружественный пользователю интерфейс и невысокую стоимость.

Программное обеспечение было разработано в среде Embarcadero Delphi 2010 с использованием СУБД Firebird 2.5 и является полностью готовым к использованию программным продуктом.

В экономическом разделе дипломного проекта определена трудоемкость, длительность разработки и выполнена оценка затрат на создание программного продукта

Список литературы

1.   Р. Сигнор, О. Стегман. Использование ODBC для доступа к базам данных. - М.: БИНОМ, Научная книга, 1998. - 384 с.

2.      Проектирование, разработка и анализ программного обеспечения систем реального времени. Сергей Зыль., БХВ-Петербург, 2010 г., 336 стр.

.        Базы данных (7-е изд.). Фуфаев Э.В., Фуфаев Д.Э., Академия, 2012.- 320 стр.

.        Объектно-ориентированное программирование. Концепции разработки. Б.Майер, Русская Редакция, 2004 г., 600 стр.

.        Технологии объектно-ориентированного программирования (2-е издание). Павел Хорев, Академия, 2008 г., 448 стр.

.        Delphi. Профессиональное программирование. Дмитрий Осипов, Символ-Плюс, 2006г., 1056 стр.

7.      Firebird руководство разработчика баз данных <#"896757.files/image038.jpg">

Отчет о работе машин


Отчет по экскаваторам


Отчет о транспортных расстояниях


Отчет по горным массам


Приложение Б

unit gok_pass, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DBCtrls, Unit1, Grids, DBGrids, Mask, DBCtrlsEh;= class(TForm): TEdit;: TDBLookupComboBox;: TButton;: TLabel;: TLabel;ButtonVhodClick(Sender: TObject);FormActivate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TFrPass;

{$R *.dfm}gok_move;

procedure TFrPass.ButtonVhodClick(Sender: TObject);

beginEdPass.text<>dm.DSetDisp.Fields[2].Value then begin.MessageBox('Пароль введен неверно','Вход в систему',MB_ICONERROR);.Text:='';.Visible:=true;.Visible:=false;.Disp.Text:=dm.DSetDisp.Fields[0].Value;.DispPass.Text:=dm.DSetDisp.Fields[2].Value;;

procedure TFrPass.FormActivate(Sender: TObject);

begin.DSetDisp.Refresh;;

end.gok_chpass

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Unit1, StdCtrls, Mask, DBCtrls, Grids, DBGrids, Buttons;= class(TForm): TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TEdit;: TLabel;: TBitBtn;: TLabel;: TEdit;: TLabel;BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TFrChPass;

implementation

{$R *.dfm}TFrChPass.BitBtn1Click(Sender: TObject);

begindbeditpass.Text<>editpassold.Text then begin.MessageBox('Пароли не совпадают','Изменение данных',MB_ICONERROR);;;.DSetForDispPass.Edit;.DSetForDispPass.Fields[4].Value:=EditPass.Text;.DSetForDispPass.Post;.MessageBox('Пароль изменен','Изменение данных',MB_ICONINFORMATION);;

end.gok_drivers

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, DBGrids, Unit1, ExtCtrls, DBCtrls;= class(TForm): TDBGrid;

{ Private declarations }

{ Public declarations };: TFrDrivers;

implementation

{$R *.dfm}.gok_brig

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Unit1, StdCtrls, Mask, DBCtrls, Grids, DBGrids, Buttons;= class(TForm): TDBEdit;: TDBEdit;: TLabel;: TLabel;: TDBGrid;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TDBGrid;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TDBGrid;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TDBGrid;: TBitBtn;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TLabel;: TDBLookupComboBox;: TLabel;: TLabel;: TEdit;: TDBEdit;BitBtn2Click(Sender: TObject);BitBtn1Click(Sender: TObject);FormActivate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TFrBrig;

{$R *.dfm}gok_move;

procedure TFrBrig.BitBtn2Click(Sender: TObject);

begin.DSetBrig1.Edit;.DSetBrig1.Fields[4].Value:=dm.DSetDisp.Fields[0].Value;.DSetBrig1.Fields[7].Value:=dm.DSetDisp.Fields[1].Value;.DSetBrig1.Post;.DSetBrig1.Close;.DSetBrig1.Open;.Disp.Text:=dm.DSetDisp.Fields[0].Value;('Замена диспетчера' + dm.DSetBrig1.Fields[7].Value + 'диспетчером' + dm.DSetDisp.Fields[1].Value);;

procedure TFrBrig.BitBtn1Click(Sender: TObject);

beginEditNumBrig.Text<>''then begin.Disp.Text:=dm.DSetDisp.Fields[0].Value;.brig.Text:=editnumbrig.Text;

{showmessage(dm.DSetBrig1.Fields[4].Value);(dm.DSetBrig1.Fields[7].Value);(dm.DSetDisp.Fields[1].Value);}('Выполнена замена бригады на текущую смену. Диспетчер: ' + editdisp.text + ' бригада № ' + EditNumBrig.Text);.MessageBox('Не выбрана бригада','Назначение диспетчера',MB_ICONERROR)

end;TFrBrig.FormActivate(Sender: TObject);

begin.DSetDisp2.Close;.DSetDisp2.Parameters[0].Value:=StrToInt(FrMap.Disp.Text);.DSetDisp2.Open;;

end.gok_dcar

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Unit1, StdCtrls, Buttons, Grids, DBGrids, DBCtrls;= class(TForm): TDBGrid;: TBitBtn;: TBitBtn;: TDBLookupComboBox;: TDBLookupComboBox;: TLabel;: TLabel;: TButton;BitBtnDCarYesClick(Sender: TObject);BitBtn1Click(Sender: TObject);Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TFrDCar;

implementation

{$R *.dfm}gok_move;TFrDCar.BitBtnDCarYesClick(Sender: TObject);

beginApplication.MessageBox('Подтвердить данное назначение на текущую смену?','Назначение водителей',MB_YESNO+MB_ICONQUESTION)=IDNO then exit;;

procedure TFrDCar.BitBtn1Click(Sender: TObject);

begin.DSetDCar.Edit;.DSetDCar.Fields[2].Value:=dm.DSetDrForSp.Fields[0].Value;.DSetDCar.Post;.DSetDCar.Close;.DSetDCar.Open;;

procedure TFrDCar.Button1Click(Sender: TObject);

begin.DSetDCar.Edit;.DSetDCar.Fields[1].Value:=dm.DSetCar.Fields[0].Value;.DSetDCar.Post;.DSetDCar.Close;.DSetDCar.Open;;.Reports, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Mask, DBCtrlsEh, Unit1, DBCtrls, ExtCtrls, Buttons;= class(TForm): TDBLookupComboBox;: TDBLookupComboBox;: TLabel;: TLabel;: TLabel;: TBitBtn;: TBitBtn;: TLabel;: TPanel;: TPanel;: TLabel;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TBitBtn;: TPanel;: TLabel;: TPanel;: TLabel;: TButton;: TButton;: TLabel;: TMaskEdit;: TLabel;: TLabel;: TMaskEdit;: TBitBtn;: TButton;: TButton;: TPanel;: TLabel;: TBitBtn;Button1Click(Sender: TObject);BitBtn1Click(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn3Click(Sender: TObject);BitBtn4Click(Sender: TObject);BitBtn6Click(Sender: TObject);BitBtn8Click(Sender: TObject);Button2Click(Sender: TObject);BitBtn11Click(Sender: TObject);Button3Click(Sender: TObject);Button4Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TFrReports;

implementationRep1, Rep2,Rep4, Rep5, Rep6, graf1, graf2, unit2, graffuel;

{$R *.dfm}TFrReports.Button1Click(Sender: TObject);

begin.DSRep1.Close;.DSRep1.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.DSRep1.Parameters[1].Value:=dm.DSetCar.Fields[0].Value;.DSRep1.Open;.Show;.frxReport1.ShowReport;

//showmessage(dm.DSetCar.Fields[0].Value);

//FrRep1.frxReport1.Print;;

procedure TFrReports.BitBtn1Click(Sender: TObject);

begin.DSRep1.Close;.DSRep1.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.DSRep1.Parameters[1].Value:=dm.DSetCar.Fields[0].Value;.DSRep1.Open;.Show;.frxReport1.ShowReport;;

procedure TFrReports.BitBtn2Click(Sender: TObject);

begin.DSRep1.Close;.DSRep1.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.DSRep1.Parameters[1].Value:=dm.DSetCar.Fields[0].Value;.DSRep1.Open;.Show;.frxReport1.Print;;

procedure TFrReports.BitBtn3Click(Sender: TObject);

begin.DSetRep2.Close;.DSetRep2.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.DSetRep2.Open;.Show;.frxReport2.ShowReport;;

procedure TFrReports.BitBtn4Click(Sender: TObject);

begin.DSetRep2.Close;.DSetRep2.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.DSetRep2.Open;.Show;.frxReport2.Print;;

procedure TFrReports.BitBtn6Click(Sender: TObject);

begin.DSetRep4.Close;.DSetRep4.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.DSetRep4.Open;.Show;.frxReport4.ShowReport;;

procedure TFrReports.BitBtn8Click(Sender: TObject);

begin.DelQueryRep5.ExecSQL;.AddQueryRep5.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.AddQueryRep5.ExecSQL;.DSetRep5.Close;

//dm.DSetRep5.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.DSetRep5.Open;.Show;.frxReport5.ShowReport;;TFrReports.Button2Click(Sender: TObject);(MaskEdit1.text <>'01.09.11') then.MessageBox('Неправильно указан период','Итоговые отчеты',MB_ICONERROR).Show;;

procedure TFrReports.BitBtn11Click(Sender: TObject);

begin.DelQueryRep5.ExecSQL;.AddQueryRep5.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.AddQueryRep5.ExecSQL;.DSetRep6.Close;

//dm.DSetRep5.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.DSetRep6.Open;.Show;.frxReport5.ShowReport;;

procedure TFrReports.Button3Click(Sender: TObject);

begin(MaskEdit1.text <>'01.09.11')then.MessageBox('Неправильно указан период','Итоговые отчеты',MB_ICONERROR).Show;;

procedure TFrReports.Button4Click(Sender: TObject);

begin.DSetGrafFuel.Close;.DSetGrafFuel.Parameters[0].Value:=dm.DSetShift.Fields[0].Value;.DSetGrafFuel.Parameters[1].Value:=dm.DSetCar.Fields[0].Value;.DSetGrafFuel.Open;.Show;;.

Тексты SQL-запросов

Формирование данных для полей со списком «Пользователь» и «Диспетчер»tWorkers.CodeWorker, [WorkerSurname] & " " & Left([WorkerName],1) & "." & " " & Left([WorkerPatronymic],1) & "." AS FIO, tWorkers.WorkerPasstWorkers(((tWorkers.WorkerDisp)=True));

Формирование данных для поля со списком «Водители»tWorkers.CodeWorker, [WorkerSurname] & " " & Left([WorkerName],1) & "." & " " & Left([WorkerPatronymic],1) & "." AS FIO, tWorkers.WorkerPasstWorkers(((tWorkers.WorkerDisp)=False));

Формирование данных для поля со списком «Машины»tCars.CodeCar, tCars!CarModel & " " & tCars!CarNumberIn AS PPtCars INNER JOIN tCarType ON tCars.CodeCarType = tCarType.CodeCarType(((tCarType.CarTypeFlgEks)=False))

Формирование данных для формы «Экскаваторы»

SELECT tCars.CodeCar, tCars!CarModel & "-" & tCars!CarNumberIn AS PP, tCars.CarFileSP, tCars.CarFilePR, tCars.CarFileRP

FROM tCars INNER JOIN tCarType ON tCars.CodeCarType = tCarType.CodeCarType(((tCarType.CodeCarType)=2));

Формирование данных для формы «Назначение на смену»

SELECT tDCar.*, tCars!CarModel & " " & tCars!CarNumberIn AS CarM, [WorkerSurname] & " " & tWorkers!WorkerName & " " & tWorkers!WorkerPatronymic AS FIO, tWorkers.WorkerTabNum

FROM (tDCar INNER JOIN tWorkers ON tDCar.CodeWorker = tWorkers.CodeWorker) INNER JOIN tCars ON tDCar.CodeCar = tCars.CodeCar(((tCars.CodeCarType)<>2) AND ((tWorkers.WorkerDisp)=False));

Добавление данных о сотрудниках и машинах, работающих в данную смену

INSERT INTO tDriverCar ( CodeShift, CodeCar, CodeWorker, CodeWorker2 )

SELECT Forms!FrDo!spshift AS Shift, tDcar2.CodeCar, tDcar2.CodeWorker, tDcar2.CodeWorker2tDcar2(((tDcar2.DCar2Brig)=:b));

Добавление данных о рейсах машинINTO tTrip ( CodeShift, CodeCar, CodeCarPP, CodeUnload, TripTimeBegin, TripTimeEnd, TripMass, TripDistance, TripCounterFuel, TripFuel, TripPathTime )

SELECT Forms!FrDo!spshift AS smena, Forms!FrDo!spcar AS car, Forms!FrDo!speks AS pp, Forms!FrDo!sppr AS pr, IIf((Round(Forms!FrDo!fplusbegin,0)+Minute([TripTimeEnd]))>=60,Hour([TripTimeEnd])+1 & ":" & Minute([TripTimeEnd])+Round(Forms!FrDo!fplusbegin,0)-60,Hour([TripTimeEnd]) & ":" & Minute([TripTimeEnd])+Round(Forms!FrDo!fplusbegin,0)) AS timebegin, IIf((Round(Forms!FrDo!fpathtime,1)+Forms!FrDo!fplusbegin+Minute([TripTimeEnd]))>=60,Hour([TripTimeEnd])+1 & ":" & Minute([TripTimeEnd])+Round(Forms!FrDo!fpathtime,1)+Forms!FrDo!fplusbegin-60,Hour([TripTimeEnd]) & ":" & Minute([TripTimeEnd])+Round(Forms!FrDo!fpathtime,1)+Forms!FrDo!fplusbegin) AS timeend, tCars!CarGP AS gp, Forms!FrDo!fdist AS dist, Round(tTrip!TripCounterFuel-(tCars!CarFuel/100*Forms!FrDo!fdist),1) AS fuel, Round(tCars!CarFuel/100*Forms!FrDo!fdist,2) AS rashod, Round(Forms!FrDo!fpathtime,1) AS pathtimetCarType INNER JOIN (tTrip INNER JOIN tCars ON tTrip.CodeCar = tCars.CodeCar) ON tCarType.CodeCarType = tCars.CodeCarType(((tTrip.CodeTrip)=GetLastTrip()));

Обновление данных в таблице Ttrip (Рейсы машин)

UPDATE tTrip INNER JOIN tCars ON tTrip.CodeCarPP = tCars.CodeCar SET tTrip.CodeBurdenType = IIf(tCars!CarDob,1,2);

Формирование данных для отчета о рейсах машин

SELECT tTrip.CodeTrip, tTrip.TripTimeBegin, tTrip.TripTimeEnd, tCars.CarModel, tCars.CarNumberIn, tCars_1!CarModel & " " & tCars_1!CarNumberIn AS PP, tShift.ShiftDate, tShift.ShiftNum, tBurdenType.BurdenTypeName, tWorkers_1!WorkerName & " " & tWorkers_1!WorkerSurname AS Disp, tWorkers!WorkerSurname & " " & tWorkers!WorkerName & " " & tWorkers!WorkerPatronymic AS Driver, tWorkers.WorkerTabNum, tUnloading.UnloadName, tTrip.TripPathTime, tTrip.TripDistance, tTrip.TripCounterFuel

FROM ((((((tTrip INNER JOIN tBurdenType ON tTrip.CodeBurdenType=tBurdenType.CodeBurdenType) INNER JOIN tCars ON tTrip.CodeCar=tCars.CodeCar) INNER JOIN tCars AS tCars_1 ON tTrip.CodeCarPP=tCars_1.CodeCar) INNER JOIN (tDriverCar INNER JOIN tShift ON tDriverCar.CodeShift=tShift.CodeShift) ON (tTrip.CodeShift=tDriverCar.CodeShift) AND (tCars.CodeCar=tDriverCar.CodeCar)) INNER JOIN tWorkers AS tWorkers_1 ON tDriverCar.CodeWorker2=tWorkers_1.CodeWorker) INNER JOIN tWorkers ON tDriverCar.CodeWorker=tWorkers.CodeWorker) INNER JOIN tUnloading ON tTrip.CodeUnload=tUnloading.CodeUnloadBY tTrip.CodeTrip, tTrip.TripTimeBegin, tTrip.TripTimeEnd, tCars.CarModel, tCars.CarNumberIn, tCars_1!CarModel & " " & tCars_1!CarNumberIn, tShift.ShiftDate, tShift.ShiftNum, tBurdenType.BurdenTypeName, tWorkers_1!WorkerName & " " & tWorkers_1!WorkerSurname, tWorkers!WorkerSurname & " " & tWorkers!WorkerName & " " & tWorkers!WorkerPatronymic, tWorkers.WorkerTabNum, tUnloading.UnloadName, tTrip.TripPathTime, tTrip.TripDistance, tTrip.TripCounterFuel, tTrip.CodeShift, tTrip.CodeCar(((tTrip.CodeShift)=:s) And ((tTrip.CodeCar)=:c))BY tTrip.CodeTrip;

Формирование данных для отчета о работе машин

SELECT tCars.CarModel, tCars.CarNumberIn, tShift.ShiftDate, tShift.ShiftNum, tWorkers_1!WorkerName & " " & tWorkers_1!WorkerSurname AS Disp, tWorkers!WorkerSurname & " " & tWorkers!WorkerName & " " & tWorkers!WorkerPatronymic AS Driver, Sum(tTrip.TripPathTime) AS [Sum-TripPathTime], Sum(tTrip.TripDistance) AS [Sum-TripDistance], Sum(tTrip.TripFuel) AS [Sum-TripFuel], tCars.CarGP, Count(tTrip.CodeTrip) AS [Count-CodeTrip], First(tTrip.TripTimeBegin) AS [First-TripTimeBegin], Last(tTrip.TripTimeEnd) AS [Last-TripTimeEnd], tBurdenType.BurdenTypeName, tWorkers.WorkerTabNum, Sum(tTrip.TripMass) AS [Sum-TripMass]

FROM (((((tTrip INNER JOIN tBurdenType ON tTrip.CodeBurdenType = tBurdenType.CodeBurdenType) INNER JOIN tCars ON tTrip.CodeCar = tCars.CodeCar) INNER JOIN tCars AS tCars_1 ON tTrip.CodeCarPP = tCars_1.CodeCar) INNER JOIN (tDriverCar INNER JOIN tShift ON tDriverCar.CodeShift = tShift.CodeShift) ON (tCars.CodeCar = tDriverCar.CodeCar) AND (tTrip.CodeShift = tDriverCar.CodeShift)) INNER JOIN tWorkers AS tWorkers_1 ON tDriverCar.CodeWorker2 = tWorkers_1.CodeWorker) INNER JOIN tWorkers ON tDriverCar.CodeWorker = tWorkers.CodeWorkerBY tCars.CarModel, tCars.CarNumberIn, tShift.ShiftDate, tShift.ShiftNum, tWorkers_1!WorkerName & " " & tWorkers_1!WorkerSurname, tWorkers!WorkerSurname & " " & tWorkers!WorkerName & " " & tWorkers!WorkerPatronymic, tCars.CarGP, tBurdenType.BurdenTypeName, tWorkers.WorkerTabNum, tTrip.CodeShift(((tTrip.CodeShift)=:s));

Формирование данных для отчета о транспортных расстоянияхtUnloading.UnloadName, tCars!CarModel & " " & tCars!CarNumberIn AS PP, Sum(tTrip.TripDistance) AS [Sum-TripDistance], Count(tTrip.CodeTrip) AS [Count-CodeTrip], Min(tTrip.TripDistance) AS [Min-TripDistance], Max(tTrip.TripDistance) AS [Max-TripDistance], Avg(tTrip.TripDistance) AS [Avg-TripDistance], tWorkers!WorkerName & " " & tWorkers!WorkerSurname AS Disp, tShift.ShiftDate, tShift.ShiftNum((((tTrip INNER JOIN tUnloading ON tTrip.CodeUnload = tUnloading.CodeUnload) INNER JOIN tCars ON tTrip.CodeCarPP = tCars.CodeCar) INNER JOIN tDriverCar ON (tTrip.CodeShift = tDriverCar.CodeShift) AND (tTrip.CodeCar = tDriverCar.CodeCar)) INNER JOIN tWorkers ON tDriverCar.CodeWorker2 = tWorkers.CodeWorker) INNER JOIN tShift ON tTrip.CodeShift = tShift.CodeShiftBY tUnloading.UnloadName, tCars!CarModel & " " & tCars!CarNumberIn, tWorkers!WorkerName & " " & tWorkers!WorkerSurname, tShift.ShiftDate, tShift.ShiftNum, tTrip.CodeShift(((tTrip.CodeShift)=:s));

Формирование данных для отчета по экскаваторамINTO tDSetRep5 ( PP, CountTrip, Disp, ShiftDate, ShiftNum, BurdenTypeName, CarGP )tCars!CarModel & " " & tCars!CarNumberIn AS PP, Count(tTrip.CodeTrip) AS [Count-CodeTrip], tWorkers!WorkerName & " " & tWorkers!WorkerSurname AS Disp, tShift.ShiftDate, tShift.ShiftNum, tBurdenType.BurdenTypeName, Sum(tTrip.TripMass) AS [Sum-TripMass]((((((tTrip INNER JOIN tUnloading ON tTrip.CodeUnload = tUnloading.CodeUnload) INNER JOIN tCars ON tTrip.CodeCarPP = tCars.CodeCar) INNER JOIN tDriverCar ON (tTrip.CodeShift = tDriverCar.CodeShift) AND (tTrip.CodeCar = tDriverCar.CodeCar)) INNER JOIN tWorkers ON tDriverCar.CodeWorker2 = tWorkers.CodeWorker) INNER JOIN tShift ON tTrip.CodeShift = tShift.CodeShift) INNER JOIN tBurdenType ON tTrip.CodeBurdenType = tBurdenType.CodeBurdenType) INNER JOIN tCars AS tCars_1 ON tTrip.CodeCar = tCars_1.CodeCarBY tCars!CarModel & " " & tCars!CarNumberIn, tWorkers!WorkerName & " " & tWorkers!WorkerSurname, tShift.ShiftDate, tShift.ShiftNum, tBurdenType.BurdenTypeName, tTrip.CodeShift(((tTrip.CodeShift)=:s);

SELECT tDSetRep5.Disp, tDSetRep5.PP, Round(tDSetRep5!CarGP,2) AS massa, Sum(tDSetRep5.CountTrip) AS [Sum-CountTrip], tDSetRep5.ShiftDate, tDSetRep5.ShiftNum, tDSetRep5.BurdenTypeName

FROM tDSetRep5BY tDSetRep5.Disp, tDSetRep5.PP, Round(tDSetRep5!CarGP,2), tDSetRep5.ShiftDate, tDSetRep5.ShiftNum, tDSetRep5.BurdenTypeName;

Формирование данных для отчета по горным массам

SELECT tDSetRep5.Disp, Sum(Round(tDSetRep5!CarGP,2)) AS massa, Sum(tDSetRep5.CountTrip) AS [Sum-CountTrip], tDSetRep5.ShiftDate, tDSetRep5.ShiftNum, tDSetRep5.BurdenTypeName

FROM tDSetRep5BY tDSetRep5.Disp, tDSetRep5.ShiftDate, tDSetRep5.ShiftNum, tDSetRep5.BurdenTypeName;

Полный текст программы можно просмотреть на прилагаемом к дипломному проекту лазерном диске.

Приложение В

ОТЗЫВ

на бакалаврскую работу

“Програмування обліку перевезень у кар’єрі гірничо-збагачувального комбінату”

студента группы КНітC-14-1 Кормича Руслана Игоревича

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

Актуальность разработанной системы определяется насущной потребностью перехода украинских предприятий на максимальное использование местных полезных ископаемых, таких как уголь, руда и др. Это позволит предприятиям менее зависеть от внешних поставок.

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

Тема бакалаврской работы непосредственно связана с объектом деятельности бакалавра направления 6.050101 Компъютерные науки - проектированием и разработкой информационных систем.

Приложение разработано на языке Object Pascal в среде Delphi 2010 с использованием языка структурированных запросов SQL и СУБД Firebird 2.5

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

Работоспособность представленной программы подтверждена отладочными испытаниями и тестированием программы.

Оформление пояснительной записки к дипломному проекту выполнено в целом соответственно стандартам на программную документацию.

Дипломный проект выполнен достаточно самостоятельно и заслуживает оценки «хорошо».

Руководитель дипломного проекта

профессор _____ _________ Слесарев В.В.

Приложение Г

РЕЦЕНЗИЯ

на бакалаврскую работу

“Програмування обліку перевезень у кар’єрі гірничо-збагачувального комбінату”

студента группы КНітC-14-1 Кормича Руслана Игоревича

Горнодобывающая промышленность является одной из самых энергозатратных отраслей народного хозяйства. В настоящее время одной из наиболее острых проблем является экономия энергетических ресурсов в различных отраслях промышленности. Представленная в данном дипломном проекте система учета перевозок руды и вскрышных пород, являющаяся частью системы управления всего карьера ГОК, будет способствовать оптимизации энергозатрат, повышению производительности труда и улучшения качества работы.

Разработанное ПО системы учета перевозок предназначено для учета данных о составе выходящих на смену сотрудников, передвижении автотранспорта, количестве перевозимого груза, а также формирования текстовых и графических отчетов о работе автотранспорта и экскаваторов с целью своевременного анализа деятельности карьера.

Приложение разработано на языке Object Pascal в среде Delphi 2010 с использованием языка структурированных запросов SQL и СУБД Firebird 2.5

Считаю задание и содержание дипломного проекта в основном соответствующим для проверки степени подготовленности Кормича Р.И. по направлению 6.050101 Компъютерные науки.

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

Качество оформления дипломного проекта можно признать хорошим, так как он сопровождается достаточным количеством рисунков (19) с содержательными подписями к ним, и 10 таблицами. В работе присутствуют заключительные выводы. Оформление программной документации в целом соответствует ЕСПД.

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

Исходя из вышесказанного, дипломный проект Кормича Р.И. заслуживает оценки «хорошо» и присуждения автору квалификации инженера-программиста.

Рецензент: ____________________

_______________________________ __________________

Список прилагаемых к квалификационной работе файлов

на носителе информации (CD-R)

1.      Prog_GOK.rar - архив с исходными кодами приложения и базой данных.

2.      Presentation.pptx - презентация.

.        Diplom.docx - текст пояснительной записки.

Похожие работы на - Программирование учета перевозок в карьере горно-обогатительного комбината

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!