95727

Разработка автоматизированной системы учета передвижения продукции на ОАО «Беларуськалий»

Дипломная

Информатика, кибернетика и программирование

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

Русский

2015-09-29

7.26 MB

9 чел.

СОДЕРЖАНИЕ 

ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ 7

ВВЕДЕНИЕ 8

1 АНАЛИТИЧЕСКИЙ РАЗДЕЛ 10

1.1 Исследование предметной области 10

1.2 Обзор состояния вопроса на предприятии 13

1.2.1 Общая характеристика использования информационных технологий на предприятии 13

1.2.2 Характеристика программного обеспечения 14

1.2.3 Характеристика используемого оборудования 16

1.3 Предложения по повышению эффективности использования информационных технологий в подразделении 17

1.3.1 Предложения по улучшению оборудования 17

1.3.2 Предложения по улучшению ПО 18

1.4 Постановка задачи на дипломное проектирование 18

1.5 Обоснование выбора программных средств разработки приложения 19

2 ПРАКТИЧЕСКИЙ РАЗДЕЛ 23

2.1  Логическое и физическое моделирование базы данных 23

2.2 Построение диаграммы вариантов использования (UseCase) 27

2.3 Построение диаграммы классов автоматизированной системы 29

2.4 Разработка автоматизированной системы учета передвижения продукции на ОАО «Беларуськалий» 32

2.5 Тестирование программного продукта 32

3 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 35

4 ЭКОНОМИЧЕСКИЙ РАЗДЕЛ 53

4.1 Определение трудоемкости разработки программного продукта 53

4.2 Определение себестоимости создания ПП 55

4.2.1 Определение затрат на оплату труда разработчика 55

4.2.2 Определение стоимости машино-часа работы ЭВМ (для разработанного ПП) 56

4.2.3 Определение затрат на отладку ПП 59

4.3 Определение отпускной цены ПП 60

4.4 Определение ожидаемого прироста прибыли в результате внедрения ПП 61

4.4.1 Определение годовых эксплуатационных расходов при  ручном решении задачи 61

4.4.2 Определение годовых текущих затрат, связанных с эксплуатацией программного продукта 62

4.4.3 Определение ожидаемого прироста прибыли в результате внедрения программного продукта 64

4.5 Расчет показателей эффективности использования ПП 65

5 ОХРАНА ТРУДА 68

5.1 Необходимость охраны труда 68

5.2  Анализ состояния охраны труда 68

5.2.1 Организация работы по охране труда 68

5.2.2 Техника безопасности 73

5.2.3 Производственная санитария 74

5.2.4 Пожарная безопасность 76

5.3 Мероприятия по улучшению условий и безопасности труда 78

5.4 Выбор типа пожарных извещателей, их количества и места расположения в помещении с ПЭВМ 80

ЗАКЛЮЧЕНИЕ 84

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 86

ПРИЛОЖЕНИЕ А 88

ПРИЛОЖЕНИЕ Б 102


ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ

SQL — Structured Query Language (язык структурированных запросов).

АСУ — Автоматизированная система управления предприятием.

АСУТП — Автоматизированная система управления технологическим процессом.

БД – база данных.

ВДТ  —  Видеодисплейные терминалы.

ГОСТ – государственный стандарт.

ЛБ — Лампы белого света.

ЛТБ — Лампы темно-белого света.

ОАО — Открытое акционерное общество.

ОС — Операционная система.

ПК — Персональный компьютер.

ПО — Программное обеспечение.

ПП — Программный продукт.

ППБ РБ — правила пожарной безопасности Республики Беларусь.

ПЭВМ — Персональная электронно-вычислительная машина.

САПР — Система автоматизированного проектирования.

СНИП — строительные нормы и правила.

СОФ 1РУ — Солигорская обогатительная фабрика 1-го рудника.

СУБД — система управления базами данных.

ЭВМ — электронно-вычислительная машина.


ВВЕДЕНИЕ

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

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

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

Автоматизация на производстве позволяет значительно сократить время на выполнение производственных задач, а также увеличить качество работы [23].

Сегодня предприятие ОАО «Беларуськалий» является одним из крупнейших производителей и экспортеров калийных удобрений в мире. По данным Международной ассоциации удобрений, на его долю приходится седьмая часть мирового объема производства калийных удобрений.

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

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

Объектом исследования дипломного проекта  является предприятие ОАО «Беларуськалий». Предметом исследования — документация предприятия по учету передвижения продукции.

Целью данного дипломного проекта является разработка автоматизированной системы учета передвижения продукции на ОАО «Беларуськалий».

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

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

— обосновать выбор средств разработки;

— разработать логическую и физическую модели  базы данных системы;

— создать  автоматизированную систему учета передвижения продукции и провести ее тестирование;

— разработать руководство пользователя системы;

— экономически обосновать эффективность внедрения программного продукта;

— дать характеристику мероприятиям по охране труда.

Автоматизирования система учета передвижения продукции планируется к испытаниям и внедрению на ОАО «Беларуськалий».


1 АНАЛИТИЧЕСКИЙ РАЗДЕЛ

1.1 Исследование предметной области

Портфель выпускаемой ОАО «Беларуськалий» продукции составляет более 20 сертифицированных видов.

Каталог калийных минеральных удобрений, производимых ОАО «Беларуськалий»:

  1.  Калий хлористый марки «М» СТО СПЭКС 001-98.
  2.  Калий хлористый марки «Н» СТО СПЭКС 001-98.
  3.  Калий хлористый марки «О» СТО СПЭКС 001-98.
  4.  Калий хлористый марки «Г» СТО СПЭКС 001-98.
  5.  Калий хлористый мелкий ГОСТ 4568-95.
  6.  Калий хлористый гранулированный ГОСТ 4568-95.
  7.  Калий хлористый мелкий ТУ РБ 600122610.011-2002.
  8.  Калий хлористый гранулированный ТУ РБ 600122610.010-2002.
  9.  Калий хлористый гранулированный ТУ РБ 600122610.010-2002 мелкогранулированный.
  10.  Калий хлористый технический мелкий  TY BY 600122610.021-2011.
  11.  Калий хлористый технический обеспыленный TY BY 600122610.021-2011.
  12.  Калий хлористый технический гранулированный TY BY 600122610.021-2011 Марка «А».
  13.  Калий хлористый технический гранулированный TY BY 600122610.021-2011 Марка «Б».
  14.  Калий хлористый гранулированный ТУ РБ 600122610.010-2002 мелкогранулированный.
  15.  Калий хлористый гранулированный ТУ РБ 600122610.010-2002.

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

1) Натрий хлористый технический  TУ РБ 600122610.017- 2003 Марка «В». 

2) Концентраты минеральные-галит TУ РБ 600122610.016-2002 Марка «В».

3) Натрий хлористый технический  TУ РБ 600122610.017- 2003 Марка «А».

4) Концентраты минеральные-галит TУ РБ 600122610.016-2002 Марка «А».

5) Рапа хлорида натрия и калия ТУ BY 600122610.013-2010.

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

1) Соль каменная поваренная пищевая СТБ  1828-2008 Сорт 1.

2) Соль поваренная кормовая ТУ ВY600122610.007-2012.

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

1) Концентрат минеральный «Сильвин» ТУ ВY 600122610.004-2013 Мелкий (флотационный).

2) Концентрат минеральный «Сильвин» ТУ ВY 600122610.004-2013 Гранулированный (флотационный). 

3) Концентрат минеральный «Сильвин» ТУ ВY 600122610.004-2013 Мелкий (галургический). 

4) Концентрат минеральный «Сильвин» ТУ ВY 600122610.004-2013 Гранулированный (галургический).

Для сельского хозяйства (удобрения для сахарной свеклы), металлургической, нефтеперерабатывающей и химической промышленности предлагается Сильвинит молотый ТУ РБ 600122610.019-2004, который представляет собой дробленую руду, состоящую из минералов сильвина (КСl) и галита (NaCl) с небольшими примесями солей магния, кальция и нерастворимых в воде веществ.

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

1) Тукосмеси азотно-фосфорно-калийные  ТУ ВY 600122610.014-2012  Марка 22-05-27. 

2) Удобрения азотно-фосфорно-калийные комплексные  ТУ РБ 400069905,022-2003 Марка 7-20-30.

Помимо реализации производимой продукции на территории Республики Беларусь, калийные удобрения  производства ОАО «Беларуськалий» поставляются в Азию, Европу, страны Средиземноморья, Африку, Латинскую Америку — всего в более чем 80 стран, что составляет  около 16 % мирового рынка производства калийных удобрений.

Доставка продукции потребителям осуществляется морским транспортом через порты, расположенные на Балтийском и Чёрном морях, а также железнодорожным и автомобильным транспортом. В соответствии со сложившейся практикой основной объем поставок осуществляется навалом. По заявке потребителя продукция может быть упакована в контейнеры [18].

1.2 Обзор состояния вопроса на предприятии

1.2.1 Общая характеристика использования информационных технологий на предприятии

В отделе автоматизации систем управления технологическим процессом ( АСУТП)  Солигорской обогатительной фабрики 1-го рудника (СОФ 1РУ) используется около 80 единиц различной компьютерной техники, установленной в девяти кабинетах для обеспечения производственного процесса.

На предприятии функционирует локальная вычислительная сеть, объединяющая всю фабрику первого рудоуправления. Большинство машин работает под управлением операционной системы Windows XP либо Windows 7. На предприятии имеются 5 серверов, которые используются для обслуживания баз данных и хранения различного рода информации, выполнения роли маршрутизации. Для серверов используется операционная система Windows Server 2008 которая включают в себя все функции, необходимые для повышения производительности при меньших усилиях, такие как безопасность, надежность, доступность и масштабируемость.

Для подключения рабочих мест в отделе АСУТП СОФ 1РУ используется оптоволоконная сеть: которая подразделяется на  одномодову и многомодовую.

Одномодовое оптическое волокно передаёт сигнал (данные) на расстояние до 50 км со скоростью до 2,5 Гбит/с и выше без регенерации, а многомодовое оптическое волокно  передаёт данные со скоростью до 100 Мбайт/c на длину волны 0,85 мкм и 1,35 мкм.

Используемое сетевое оборудование локальной сети:

1. Активное сетевое оборудование – коммутаторы компании D-Link, которое предназначено для сетей с производительностью 10, 100 и 1000 Мбайт/сек., а также имеет достаточно высокие показатели надежности и производительности;

2. Пассивное сетевое оборудование – кабель, розетка , кабель-канал.

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

1.2.2 Характеристика программного обеспечения

Программное обеспечение — это совокупность программ, позволяющая организовывать решение задач на ЭВМ.

В отделе АСУТП СОФ 1РУ установлен стандартный пакет Microsoft Office 2007/2010 (Ms Word, Ms Excel, Ms Access, Microsoft Power Point, Microsoft Office Outlook и т.д.), антивирусная программа ESET NOD 32 Antivirus, архиватор WinRAR, Google Chrome, Opera, Internet Explorer 10  и многие другие программы, а также   СУБД ORACLE и внутри фабрики СОФ 1РУ отдела АСУТП   MySQL.

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

С помощью программы Excel пакета Microsoft Office, предназначенной для работы с таблицами, можно производить математические расчеты и анализировать полученные данные. Допускается создание диаграмм для наглядного показа результатов обработки информации. Программа производит стандартные математические функции: сложение, вычитание, умножение и деление, а также допускается использование разнообразных функций: среднее арифметическое, максимум, минимум и т.п. В Excel допускается даже выполнение статических расчетов и предусмотрены простые способы работы с БД. Можно вводить туда данные разного типа (текст или число), а затем сортировать, проводить их поиск и извлекать из базы. Для графического представления информации на экране лучше создавать диаграмму.

Программа Power Point предназначена для создания и графического отображения презентаций в составе пакета Microsoft Office. При помощи Power Point можно строить диаграммы и графики, готовить слайды, проспекты, служебные сообщения и практически любые материалы для презентации, а также организовывать пакеты слайдов. WinRAR — это 32-разрядная версия архиватора RAR для Windows мощного средства создания и управления архивами. В управлении образования и молодежи применяется в основном для обмена большими объемами данных, которые упаковываются в архивы.

Microsoft Office Outlook — персональный информационный менеджер с функциями почтового клиента. Помимо функций почтового клиента для работы с электронной почтой, Microsoft Outlook является полноценным органайзером, предоставляющим функции календаря, планировщика задач, записной книжки и менеджера контактов [17].

Google Chrome — браузер, обеспечивает быструю работу в Интернете. Он мгновенно загружает страницы и без промедления запускает сложные веб-приложения. Браузер Chrome имеет простой и рациональный интерфейс.

Opera — веб-браузер и пакет прикладных программ для работы в Интернете, выпускаемый компанией Opera Software.

Internet Explorer 10 — браузер, разрабатываемая корпорацией Microsoft с 1995 года. Входит в комплект операционных систем семейства Windows.

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

Антивирус ESET NOD 32 Antivirus - это программа для проверки компьютера на присутствие вирусов в фоновом режиме и по запросу пользователя, и удаления вирусов в случае их обнаружения. Применяется в основном для проверки съемных носителей информации [15].

СУБД ORACLEэто мощный программный комплекс, позволяющий создавать приложения любой степени сложности. Ядром этого комплекса является база данных, хранящая информацию, количество которой за счет предоставляемых средств масштабирования практически безгранично. C высокой эффективностью работать с этой информацией одновременно может практически любое количество пользователей .

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Denwer, XAMPP, VertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц [1].

1.2.3 Характеристика используемого оборудования

В  отделе АСУТП СОФ 1РУ компьютеры оснащены следующими ЖК-мониторами:

  1.  243V5LSB/00 оснащен 23.6" матрицей с белой светодиодной подсветкой, разрешением 1920x1080, временем отклика 5 мс и уровнем динамической контрастности 10 000 000:1 (статическая — 1 000:1)  [13].
  2.  S24D300H оснащен 24" матрицей со светодиодной подсветкой, разрешением 1920x1080, временем отклика GtG 2 мс и уровнем статической контрастности 1 000:1  [14].

Системные блоки имеют следующую конфигурацию:

  1.  Intel Core i5-4430  3 ГГц, 4 ГБ ОЗУ, жёсткий диск 500 ГБ, видеопамять 1024 МБ, DVD.
  2.  Intel Core i5-4430  3 ГГц, 4 ГБ ОЗУ, жёсткий диск 1000 ГБ, видеопамять 1024 МБ, DVD.
  3.  Intel Core i7-4771  3,5 ГГц, 4 ГБ ОЗУ, жёсткий диск 500 ГБ, видеопамять 512 МБ, DVD.
  4.  Intel Core i7-4771  3,5 ГГц, 4 ГБ ОЗУ, жёсткий диск 1000 ГБ, видеопамять 1024 МБ, DVD.

В отделе также имеются следующие принтеры.

Лазерный  МФУ HP LaserJet Pro M125,  обладающий следующими характеристиками:

  1. скорость печати 20 стр/мин;
  2. максимальное разрешение (dpi) 1200x1200 [12].

Лазерный  МФУ Xerox WorkCentre 3210N, обладающий следующими характеристиками:

  1. скорость печати 24 стр/мин;
  2. максимальное разрешение (dpi) 1200x1200;
  3. максимальное разрешение сканера (dpi) 4800x4800.

1.3 Предложения по повышению эффективности использования информационных технологий в подразделении

1.3.1 Предложения по улучшению оборудования

Установленные в компьютерном отделе АСУТП СОФ 1РУ  ОАО «Беларуськалий » компьютеры имеют частично устаревшие системные блоки, что отрицательно сказывается на рабочем процессе. Для эффективной и комфортной работы всего отдела имеет место заменить устаревшее оборудование на более новое. В часности  заменить жёсткие диски  объёмом  от 1ТБ до 1.5ТБ и видеопамяти до 2048 МБ на всех компьютерах.

Принтеры и оставшиеся устройства являются современными и не требуют замены.

1.3.2 Предложения по улучшению ПО

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

Защиту от вирусов осуществляет антивирусная система ESET NOD 32. Данный антивирус прекрасно справляется со своей задачей, но он не является бесплатным программным обеспечением. Данный антивирус можно заменить на бесплатно распространяемый  антивирус AVAST Free. AVAST Free не уступает антивирусу ESET NOD 32 по поиску и устранению угроз. Использование данного антивирусного пакета улучшит работу предприятия.

Наконец самым главным предложением является разработать и внедрить приложение, которое будет вести учёт передвижения  продукции на ОАО «Беларуськалий». Ранее данная задача выполнялась вручную сотрудниками склада. Для этих целей используются журналы прихода и ухода продукции. Журнальная форма регистрации документов является наиболее ранней регистрационной формой. Пользовалась популярностью в эпоху отсутствия информационных систем и технологий. При использовании данной регистрационной формы необходимо заводить отдельные, с собственным графлением, журналы для учёта прихода продукции на склад и ухода продукции со склада.

1.4 Постановка задачи на дипломное проектирование

Задачей дипломного проекта является разработка автоматизированной системы учета передвижения продукции на ОАО «Беларуськалий».

Приложение должно иметь следующий функционал:

  1.  Наличие понятного и удобного интерфейса;
  2.  Добавление, удаление и редактирование данных.
  3.  Возможность ведения широкого набора данных о продукции.
  4.  Возможность ведения графика передвижения готовой продукции;
  5.  Возможность создания отчётов о количестве продукции.
  6.  Ведение справочников.
  7.  Приложение должно быть защищено паролем от несанкционированного доступа. Должна быть возможность редактирования паролей.

1.5 Обоснование выбора программных средств разработки приложения

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

Поэтому для разработки автоматизированной системы учета передвижения продукции были выбраны:

1. СУБД MySql — предоставляет мощные средства для доступа, настройки, администрирования, разработки всех компонентов базы данных и управления ими. MySql   это реляционная система управления базами данных. То есть данные в ее базах хранятся в виде логически связанных между собой таблиц, доступ к которым осуществляется с помощью языка запросов SQL. MySql — свободно распространяемая система. Кроме того, это достаточно быстрая, надежная и, главное, простая в использовании СУБД.

Работать с  MySql можно не только в текстовом режиме, но и в графическом. Существует очень популярный визуальный интерфейс для работы с этой СУБД —  PhpMyAdmin. Этот интерфейс позволяет значительно упростить работу с базами данных в MySql.

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

2. Среда Microsoft Visual Studio 2012 и язык  программирования C#.

Microsoft Visual Studio — линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом.

Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. VisualStudio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (например, Subversion и VisualSourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода).

Главным преимуществом Visual Studio 2012 является производительность. Обеспечивает возможность создания разнообразных приложений на основе одного набора навыков [22].

C# — объектно-ориентированный язык программирования.

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Основные достоинства С#:

  1.  C# создавался параллельно с каркасом Framework .Net и в полной мере учитывает все его возможности — как FCL, так и CLR;
  2.  C# является полностью объектно-ориентированным языком, где даже типы, встроенные в язык, представлены классами;
  3.  C# является мощным объектным языком с возможностями наследования и универсализации;
  4.  C# является наследником языков C/C++, сохраняя лучшие черты этих популярных языков программирования. Общий с этими языками синтаксис, знакомые операторы языка облегчают переход программистов от С++ к C#;
  5.  сохранив основные черты своего великого родителя, язык стал проще и надежнее. Простота и надежность, главным образом, связаны с тем, что на C# хотя и допускаются, но не поощряются такие опасные свойства С++ как указатели, адресация, разыменование, адресная арифметика;
  6.  благодаря каркасу Framework .Net, ставшему надстройкой над операционной системой, программисты C# получают те же преимущества работы с виртуальной машиной, что и программисты Java. Эффективность кода даже повышается, поскольку исполнительная среда CLR представляет собой компилятор промежуточного языка, в то время как виртуальная Java-машина является интерпретатором байт-кода;
  7.  мощная библиотека каркаса поддерживает удобство построения различных типов приложений на C#, позволяя легко строить Web-службы, другие виды компонентов, достаточно просто сохранять и получать информацию из базы данных и других хранилищ данных;
  8.  реализация, сочетающая построение надежного и эффективного кода, является немаловажным фактором, способствующим успеху C# [19].

2 ПРАКТИЧЕСКИЙ РАЗДЕЛ

2.1  Логическое и физическое моделирование базы данных

Логическая организация БД — это представление пользователя о той предметной области, информация о которой должна храниться в БД.

Результатом логического проектирования является концептуальная схема БД. Эта модель отражает три вида информации:

— сведения об объектах предметной области;

— сведения о свойствах объектов;

— сведения об отношениях между объектами.

Такая модель не зависит от: физической среды, типа ЭВМ, операционной системы, СУБД.

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

  1.  Postavka — справочник поставок / отгрузок продукции (таблица 2.1).

Таблица 2.1 — Справочник Postavka

Наименование поля БД

Смысловая нагрузка

Id_post

Номер отгрузки

Id_prod

Номер продукции

Kol_post

Количество товара

Ed_izm

Единица измерения

Id_sotr

Номер ответственного сотрудника

Id_zak

Номер заказчика

Data_post

Дата отгрузки

Id_skl

Номер склада

2. Product — справочник продукции (таблица 2.2).

Таблица 2.2 — Справочник Product

Наименование поля БД

Смысловая нагрузка

Id_prod

Номер продукции

Id_kat

Номер категории

Name_prod

Наименование продукции

3. Kategoriya — справочник категорий продукции (таблица 2.3).

Таблица 2.3 — Справочник Kategoriya

Наименование поля БД

Смысловая нагрузка

Id_kat

Номер категории

Name_kat

Наименование категории

4. Strana — справочник стран заказчиков (таблица 2.4).

Таблица 2.4 — Справочник Strana

Наименование поля БД

Смысловая нагрузка

Id_str

Код страны

Name_str

Наименование страны

5. Zakazchik — справочник заказчиков (таблица 2.5).

Таблица 2.5 — Справочник Zakazchik

Наименование поля БД

Смысловая нагрузка

Id_zak

Номер заказчика

Id_str

Код страны

Name_zak

Наименование заказчика

Adres_zak

Адрес

Tel_zak

Телефон

kontact

Контактное лицо (ФИО)

6. Sotrudniki — справочник сотрудников (таблица 2.6), работающих на складах.

Таблица 2.6 — Справочник Sotrudniki

Наименование поля БД

Смысловая нагрузка

Id_sotr

Номер сотрудника

Fam

Фамилия

Imya

Имя

Otch

Отчество

Dolzn

Должность

Razr

Разряд

Passw

Пароль

Id_skl

Номер склада

7. Sklad — справочник складов предприятия (таблица 2.7).

Таблица 2.7 — Справочник Sklad

Наименование поля БД

Смысловая нагрузка

Id_skl

Номер склада

Adres_skl

Адрес

Tel_skl

Телефон

8. Sklad_tov — справочник размещения продукции по складам (таблица 2.8).

Таблица 2.8 — Справочник Sklad_tov

Наименование поля БД

Смысловая нагрузка

Id_st

Номер п/п

Id_skl

Номер склада

Id_prod

Номер продукции

Id_sotr

Номер сотрудника, принявшего продукцию

Kol_skl

Количество

Data_skl

Дата поступления

Ed_izm

Единица измерения

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

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

Рисунок 2.1 – Логическая модель базы данных

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

Рисунок 2.2  Физическая модель базы данных

Моделирование физической и логической моделей базы данных проводилось с помощью ERwin 4.0.

2.2 Построение диаграммы вариантов использования (UseCase)

Разработка диаграммы вариантов использования преследует цели:

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

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

Диаграмма UseCase, изображённая на рисунке 2.3, позволяет отобразить список операций, которые сможет выполнить сотрудник склада с помощью разрабатываемого программного продукта, а на рисунке 2.4 представлены возможности администратора приложения.

Рисунок 2.3 — Диаграмма UseCase для сотрудника склада

Рисунок 2.4 — Диаграмма UseCase для администратора

Диаграмма Use Case позволяет создать список операций, которые выполняет система.  На основе набора таких диаграмм создается список требований к системе и определяется множество выполняемых ею функций [3,9].

2.3 Построение диаграммы классов автоматизированной системы

Класс — это описание группы объектов, обладающих общими свойствами, поведением, отношениями с другими объектами и семантикой. Для каждого класса указаны атрибуты и операции.

Атрибуты класса определяют состав и структуру данных, хранимых в объектах этого класса. Каждый атрибут имеет имя и тип, определяющий, какие данные он представляет.

Операции представляют собой действия, реализуемые классом. Каждая операция имеет сигнатуру, содержащую имя операции и список параметров [23].  

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

Диаграмма классов представлена на рисунке 2.5.

Программа состоит из 12 классов. Исходный текст некоторых классов представлен в Приложении А.

Для обеспечения работоспособности всего функционала основной формы приложения служат классы Main, MainAdd, Form1. Для обеспечения добавления информации, редактирования информации и удаления в базе данных служат классы Post, PostAdd, Sotr, Zak, ZakAdd, Strana, Prod, KatProd, Sklad.

С помощью класса Main на главной форме приложения отображается информация о поставках продукции на склад. Для добавления и редактирования поставок продукции используется класс MainAdd.

Класс Form1 служит для авторизации пользователя.

Классы Post, PostAdd предназначены для работы с таблицей «Поставки»: Post — для просмотра содержимого таблицы и составления отчетов, PostAdd — для добавления и редактирования данных в таблице.

Классы Zak, ZakAdd позволяют работать с таблицей базы данных «Заказчики»:  Zak — для просмотра содержимого таблицы и удаления данных, ZakAdd — для добавления и редактирования данных в таблице.

Рисунок 2.5 – Диаграмма классов

Классы Sotr, Strana, Prod, KatProd, Sklad предназначены для работы с таблицами «Сотрудники», «Страна заказчика», «Продукция», «Категория продукции» и «Склад» соответственно. С помощью этих классов информацию в указанные таблицы можно добавлять, редактировать и удалять.

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

2.4 Разработка автоматизированной системы учета передвижения продукции на ОАО «Беларуськалий»

Для создания приложения «Система учета передвижения продукции на ОАО «Баларуськалий»» использовалась среда разработки Microsoft Visual Studio 2012 и интегрированный язык С#.

При разработке применялись следующие компоненты:

  1.  компонент Button служить для обработки события;
  2.  компонент TextBox представляет собой  стандартный текстовый редактор, в котором  отображаются и изменяются данные;
  3.  компонент ComboBox служит для отображения выпадающего списка;
  4.  компонент MenuStrip предоставляет систему меню для формы;
  5.  компонент PictureBox предоставляет элемент управления графическим окном Windows для отображения рисунка;
  6.  компонент ContextMenuStrip позволяет создавать контексное меню приложения.
  7.  компонент DataGridView используется для отображения табличных данных [23].

2.5 Тестирование программного продукта

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

Тестирование ПО включает в себя различные подходы и практики, которые выбираются исходя из конкретных задач и существующих ограничений (сроков, технологий) в проекте по разработке программного обеспечения.

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

Тестирование позволяет на ранних этапах разработки обнаружить и исправить ошибки и уязвимости программного обеспечения.

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

Результаты тестирования разработанной автоматизированной системы представлены в таблице 2.9.

Таблица 2.9 — Результаты тестирования программы

Название процедуры

Описание тестового случая

Ожидаемые результаты

Тестовый случай пройден?

Комментарий

отчетыToolStripMenuItem_Click (класс Main)

Выбор на главной форме меню «Очеты -> Отчет «Товары на складе»»

Открытие документа MS Excel и экспорт данных полученных в результате выполнения соотвествующего запроса

Да

Система работает корректно

Окончание таблицы 2.9

Название процедуры

Описание тестового случая

Ожидаемые результаты

Тестовый случай пройден?

Комментарий

button1_Click ( класс Form1)

Не правильно введен пароль для выбранного пользователя

Появление сообщения «Не верно введены данные!»

Да

Система работает корректно

button1_Click ( класс MainAdd)

Введены не все данные

Появление сообщения «Необходимо заполнить все данные»

Да

Система работает корректно

button1_Click ( класс MainAdd)

Введены данные заведомо неправильного типа

Появление сообщения о том, что входная строка имела неверный формат

Да

Система работает корректно

справочникПоставкиToolStripMenuItem_Click ( класс Main)

Выбор на главной форме меню «Справочники -> Справочник «Поставки»»

Открытие формы «Справочник «Поставки»»

Да

Система работает корректно

button1_Click ( класс PostAdd)

Введены не все данные

Появление сообщения «Необходимо заполнить все данные»

Да

Система работает корректно

button1_Click ( класс PostAdd)

Введены данные заведомо неправильного типа

Появление сообщения о том, что входная строка имела неверный формат

Да

Система работает корректно

отчетToolStripMenuItem_Click ( класс Post)

Выбор на главной форме меню «Очеты -> Отчет «Поставки за месяц»»

Открытие документа MS Excel и экспорт данных полученных в результате выполнения соотвествующего запроса

Да

Система работает корректно

Автоматизированная система учета передвижения продукции на ОАО «Беларуськалий» прошла тестирование на платформе Windows 7 и продемонстрировала корректную работу функций и отлаженное взаимодействие функций друг с другом.


3 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Данный программный продукт разработан для учёта передвижения продукции на ОАО «Беларуськалий».

Перед началом работы необходимо запустить файл sklad.exe, в результате чего появляется форма авторизации пользователя  (рисунок 3.1).

Рисунок 3.1 — Форма авторизации пользователя

Как видно из рисунка 3.1 в приложение можно войти под администратором и под работником склада. Если войти под администратором, то нужно ввести только пароль (рисунок 3.2), а если под работником склада — выбрать адрес склада и ФИО работника (рисунок 3.3).

Рисунок 3.2 — Форма авторизации пользователя

Рисунок 3.3 — Форма авторизации пользователя

Пароль администратора храниться в файле в папке приложения, пароли работников в таблице «Сотрудники». Для подключения к базе данных используется технология ADO.NET. При успешном вводе данных открывается главная форма приложения, представленная на рисунке 3.4.

Рисунок 3.4 — Главная форма приложения

На главной форме можно выбрать период, за который необходимо просмотреть поставки товара на склад, а также отфильтровать данные по названию продукции (рисунок 3.5).

Рисунок 3.5 — Главная форма приложения

Меню главной формы «Файл» и «Справочники» отличается для администратора и для работника склада. Для администратора доступны все функции приложения (рисунки 3.6 – 3.7), для работника не доступны функции редактирования и удаления данных, а также работа со справочником «Сотрудники» (рисунки 3.8 – 3.9).

Рисунок 3.6 — Меню «Файл» для администратора

Рисунок 3.7 — Меню «Справочники» для администратора

Рисунок 3.8 — Меню «Файл» для сотрудника

Рисунок 3.9 — Меню «Справочники» для сотрудника

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

Рисунок 3.10 — Форма «Добавление / Редактирование» для администратора

Рисунок 3.11 — Форма «Добавление / Редактирование» для сотрудника

Отобразим работу приложения при добавлении, редактировании и удалении данных на главной форме в режиме администратора. Заполненная форма для добавления представлена на рисунке 3.10. Результат добавления представлен на рисунке 3.12. Форма для редактирования данных представлена на рисунке 3.13, результат выполнения операции на рисунках 3.14 – 3.15.

Рисунок 3.12 — Результат добавления данных

Рисунок 3.13 — Форма редактирования данных

Рисунок 3.14 — Результат редактирования данных

Рисунок 3.15 — Результат редактирования данных

Результат удаления данных представлен на рисунке 3.16.

Рисунок 3.16 — Результат удаления данных

Вид меню «Отчеты» на главной форме для администратора и для сотрудника одинаков и представлен на рисунке 3.17.

Рисунок 3.17 — Меню «Отчеты»

На рисунках 3.18 – 3.21 представлены отчеты, которые можно получить при работе с главной формой.

Рисунок 3.18 — Отчет «Товары на складе»

Рисунок 3.19 — Отчет «Список производимой продукции»

Рисунок 3.20 — Отчет «Список заказчиков»

Рисунок 3.21 — Отчет «Список сотрудников»

Форма для работы со справочником «Заказчики» представлена на рисунке 3.22. Из данной формы можно вызвать форму «Справочник «Страны»» (рисунок 3.23).

Рисунок 3.22 — Форма «Справочник «Заказчики»»

Рисунок 3.23 — Форма «Справочник «Страны»»

Формы для работы со справочниками «Сотрудники» и «Склады» представлены на рисунках 3.24 — 3. 25.

Рисунок 3.24 — Форма «Справочник «Сотрудники»»

Рисунок 3.25 — Форма «Справочник «Склады»»

При работе с формой «Справочник «Продукция»» (рисунок 3.26) можно вызвать форму «Справочник «Категории продукции»» (3.27).

Рисунок 3.26 — Форма «Справочник «Продукция»»

Рисунок 3.27 — Форма «Справочник «Категории продукции»»

Для работы с таблицей «Поставки» используется форма, представленная на рисунке 3.28.

Рисунок 3.28Форма «Справочник «Поставки»»

Меню «Файл» формы «Справочник «Поставки»» отличается для администратора и для работника склада. Для администратора доступны все функции формы (рисунок 3.29), для работника не доступны функции редактирования и удаления данных (рисунок 3.30).

Рисунок 3.29 — Меню «Файл» для администратора

Рисунок 3.30 — Меню «Файл» для сотрудника

Форма добавления данных для отгрузки продукции для администратора и для сотрудника склада также отличаются. Для администратора на форме добавления нужно выбрать сотрудника, отпускающего продукцию, и номер склада, с которого идет отгрузка (рисунок 3.31), а для сотрудника эти поля уже будут заполнены данными о сотруднике, под которым был осуществлен вход в приложение (рисунок 3.32).

Форма для редактирования информации о поставке представлена на рисунке 3.33. При добавлении и изменении данных о поставке автоматически формируется накладная по отгрузке продукции в MS Word. Пример формирования накладной по форме, представленной на рисунке 3.32, представлен на рисунке 3.34.

Рисунок 3.31 — Форма «Поставки: Добавление / Изменение» для администратора

Рисунок 3.32 — Форма «Поставки: Добавление / Изменение» для сотрудника

Рисунок 3.33 — Форма «Поставки: Добавление / Изменение» при изменении данных

Рисунок 3.34 — Накладная по отгрузке продукции

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

Так же при работе со справочником «Поставки» можно сформировать три вида отчета (рисунок 3.35), которые представлены на рисунках 3.36 – 3.38.

Рисунок 3.35 — Меню «Отчеты»

Рисунок 3.36 — Отчет «Товары на складе»

Рисунок 3.37 — Отчет «Список производимой продукции»

Рисунок 3.38 — Отчет «Список заказчиков»

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


4 ЭКОНОМИЧЕСКИЙ РАЗДЕЛ

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

Трудоемкость разработки программного продукта (ПП) может быть определена укрупненным методом (чел./ч.). При этом необходимо воспользоваться формулой:

,                       (4.1)

где ТОА — трудоемкость подготовки описания задачи и исследования алгоритма решения;

ТБС — трудоемкость разработки блок-схемы алгоритма;

ТП — трудоемкость программирования по готовой блок-схеме;

ТОТЛ — трудоемкость отладки программы на ЭВМ;

ТДР — трудоемкость подготовки документации по задаче в рукописи;

ТДО — трудоемкость редактирования, печати и оформления документации по задаче.

Составляющие приведенной формулы определяются, в свою очередь, через  условное число операторов Q в разрабатываемом ПП по формуле:

                                              (4.2)

где q — число операторов в программе;

С — коэффициент сложности программы;

p — коэффициент коррекции программы в ходе ее разработки.

Тогда составляющие трудоемкости разработки  программы  определятся по формулам:

          (4.3)

                                                   (4.4)

                                                         (4.5)

                                                    (4.6)

                                                  (4.7)

                                                       (4.8)

где W — коэффициент увеличения затрат труда вследствие недостаточного описания задачи;

К — коэффициент квалификации разработчика  алгоритмов  и  программ.

4.2 Определение себестоимости создания ПП

4.2.1 Определение затрат на оплату труда разработчика

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

                             (4.9)

где  ТР — трудоемкость  разработки  программного продукта, чел/ч;

tЧР — среднечасовая ставка работника, осуществлявшего разработку программного продукта, руб;

q — коэффициент, учитывающий процент премий и доплат  к тарифной  ставке в организации разработки;

а — коэффициент, учитывающий дополнительную заработную плату;

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

руб.

Среднечасовая ставка работника определяется исходя из Единой тарифной сетки в Республике Беларусь по следующей формуле:

,                                              (4.10)

где  31 — среднемесячная ставка работника 1 разряда (1085000), руб;

kТ — тарифный коэффициент работника 10-го разряда (kТ = 2,48);

170 — нормативное количество рабочих часов в месяце.

руб.

4.2.2 Определение стоимости машино-часа работы ЭВМ (для разработанного ПП)

Стоимость машино-часа работы ЭВМ определяется по формуле:

,                 (4.11)

где  СЭ — расходы на электроэнергию за час работы ЭВМ, руб;

АЭВМ — годовые амортизационные отчисления на реновацию ЭВМ;

РЭВМ — годовые затраты на ремонт и техническое обслуживание  ЭВМ, руб;

АПЛ — годовая величина амортизационных отчислений на реновацию производственных площадей, занимаемых ЭВМ, руб;

РПЛ — годовые затраты на ремонт и содержание производственных площадей, руб;

НН — годовая величина налога на недвижимость, руб;

ФЭВМ — годовой фонд времени работы ЭВМ, час.

  руб./час

Расходы на электроэнергию за час работы ЭВМ определяются по  формуле:

,                                     (4.12)

где NЭ — расход энергии на час работы ЭВМ, кВт (принимается по паспортным данным);

kИС — коэффициент использования энергоустановок по мощности;

ЦЭ — стоимость 1 кВт-часа электроэнергии, руб.

руб.

Годовая величина амортизационных отчислений на реновацию ЭВМ определяется по формуле:

,                                  (4.13)

где   ЦЭВМ — цена ЭВМ на момент ее выпуска, руб;

kУ — коэффициент удорожания ЭВМ (зависит от года выпуска);

kМ — коэффициент, учитывающий затраты на монтаж и транспортировку ЭВМ;

НАЭВМ — годовая норма амортизационных отчислений на ЭВМ, % (по данным предприятия).

руб.

Годовые затраты на ремонт и техническое обслуживание  ЭВМ  укрупнено определяются по формуле:

,                                   (4.14)

где  kРО — коэффициент, учитывающий затраты на ремонт и техническое обслуживание ЭВМ, в том числе затраты на   запчасти, зарплату ремонтного персонала.

 руб.

Годовая величина амортизационных отчислений на реновацию производственных площадей, занятых ЭВМ определяется по формуле:

                  (4.15)

где ЦБПЛ — балансовая стоимость площадей, руб;

НАПЛ — годовая норма амортизационных отчислений на производственные площади, % (по данным предприятия);

SЭВМ — площадь, занимаемая ЭВМ, кв.м.;

kД — коэффициент, учитывающий дополнительную площадь;

ЦПЛ — цена 1 кв.м. производственной площади, руб.

руб.

Годовые затраты на ремонт и содержание производственных площадей могут быть определены по формуле:

,                   (4.16)

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

руб.

Величина налога на недвижимость определяется по формуле:

,                              (4.17)

где СНН — годовая ставка налога на недвижимость (если есть на момент расчета), %;

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

руб.

Годовой фонд времени работы ЭВМ определяется исходя из режима ее работы и рассчитывается по формуле:

,                                        (4.18)

где tСС — среднесуточная фактическая загрузка ЭВМ, час;

ТСГ — среднее количество дней работы ЭВМ в год, дней.

ч.

4.2.3 Определение затрат на отладку ПП

Затраты на отладку программы определяются по формуле:

,                                     (4.19)

где ТОТЛ — трудоемкость отладки программы, час;

SМЧ — стоимость машино-часа работы ЭВМ, руб./час.

руб.

Себестоимость разработки ПП определяется по формуле:

,                                  (4.20)

где F — коэффициент накладных расходов проектной организации без учета  эксплуатации ЭВМ.

руб.

4.3 Определение отпускной цены ПП

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

,                                         (4.21)

где ПР — плановая прибыль на программу, руб.

руб.

Плановая прибыль на программу определяется по формуле:

,                                          (4.22)

где СПР — себестоимость программы;

НП — норма прибыли проектной организации.

руб.

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

а) определяется величина налога на добавленную стоимость по формуле:

,                                                     (4.23)

 НДС — ставка налога на добавленную стоимость, %.

руб.

б) определяется отпускная цена программы по формуле:

                                                       (4.24)

руб.

4.4 Определение ожидаемого прироста прибыли в результате внедрения ПП

4.4.1 Определение годовых эксплуатационных расходов при  ручном решении задачи

Годовые эксплуатационные расходы при ручной обработке информации (ручном решении задачи) определяются по формуле:

  (4.25)

где Труч — трудоемкость разового решения задачи вручную, ч;

к — периодичность решения задачи в течение года, раз/год;

tчр — среднечасовая тарифная ставка работника, осуществляющего ручной расчет задачи, руб;

q — коэффициент, учитывающий процент премий;

а — коэффициент, учитывающий дополнительную заработную плату;

b — коэффициент, учитывающий начисления на заработную плату.

руб.

4.4.2 Определение годовых текущих затрат, связанных с эксплуатацией программного продукта

Время решения задачи на ЭВМ определяется по формуле:

,                              (4.26)

где ТВВ — время ввода в ЭВМ исходных данных, необходимых для решения задачи, мин;

ТВЫЧ — время вычислений, мин;

ТВЫВ — время вывода результатов решения задачи (включая время распечатки на принтере), мин;

dПЗ — коэффициент, учитывающий подготовительно-заключительное время.

ч.

Время ввода в ЭВМ исходных данных может быть определено по  формуле:

,                                              (4.27)

где КZ — среднее количество знаков, набираемых с клавиатуры при вводе исходных данных;

      HZ — норматив времени набора 100 знаков, мин.

мин.

Затраты на  заработную плату пользователя ПП определяются по формуле:

                        (4.28)

где ТЗ — время решения задачи на ЭВМ, час;

tЧП — среднечасовая тарифная ставка пользователя программы, руб. (определяется аналогично ставке работника, осуществляющего ручной расчет);

к — периодичность решения задачи в течение года, раз/год;

q — коэффициент, учитывающий процент премий;

а — коэффициент, учитывающий дополнительную заработную плату;

b — коэффициент, учитывающий начисления на заработную плату.

руб.

Затраты на  оплату  аренды ЭВМ для решения задачи определяются по следующей формуле:

,                                                    (4.29)

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

руб.

Годовые текущие затраты,  связанные с эксплуатацией задачи, определяются по формуле:

,                                   (4.30)

где ЗП — затраты на заработную плату пользователя программы;

ЗА — затраты на оплату аренды ЭВМ при решении задачи;

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

руб.

4.4.3 Определение ожидаемого прироста прибыли в результате внедрения программного продукта

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

,                               (4.31)

где СНП — ставка налога на прибыль, %.

руб.

4.5 Расчет показателей эффективности использования ПП

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

,                                          (4.32)

где КЗ — капитальные и приравненные к ним затраты;

СПР — себестоимость программы.

руб.

Капитальные и приравненные к ним затраты в случае,  если ЭВМ,  на которой предполагается решать рассматриваемую задачу, отслужила к моменту расчета 0,5 года, определяются по формуле:

,                                (4.33)

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

 руб.

Годовой экономический эффект от внедрения разработанного ПП определяется по формуле:

,                                      (4.34)

где Е — коэффициент эффективности, равный ставке за кредиты на рынке долгосрочных кредитов.

руб.

Срок возврата инвестиций определяется по формуле:

                                          (4.35)

г.

В таблице 4.1 сведены данные об экономической эффективности внедрения программного продукта.

Таблица 4.1 – Результаты экономического расчета по базовому и проектному варианту

Наименование показателя

Варианты

ручной

проектный

Периодичность решения задачи, раз в год

151,3

151,3

Годовые текущие затраты,  руб.

1144088,9

Отпускная цена программы,  руб.

Прирост условной прибыли, руб./ год

Годовой экономический эффект пользователя (рентабельность),  руб.

Срок возврата инвестиций (окупаемость),  лет

Анализируя данные из таблицы 4.1 можно сделать вывод, что данный проект целесообразно реализовать, так как разработанный программный продукт позволяет получить экономию материальных и финансовых ресурсов. Экономия финансовых ресурсов выражается в снижении годовых затрат с 6026018,25 до 1144088,9 руб.

Срок окупаемости программного продукта составит около 3-х лет.


5 ОХРАНА ТРУДА

5.1 Необходимость охраны труда

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

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

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

5.2  Анализ состояния охраны труда

5.2.1 Организация работы по охране труда

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

1. Физические:

  1.  уровни электромагнитного, рентгеновского, УФ и ИК излучения, статического электричества, запыленности воздуха рабочей зоны;
  2.  содержание положительных и отрицательных аэроионов в воздухе рабочей зоны;
  3.  температура, влажность и подвижность воздуха рабочей зоны;
  4.  уровень шума от технологического оборудования;
  5.  неравномерность распределения яркости в поле зрения;
  6.  яркость светового потока;
  7.  уровень пульсаций светового потока.

2. Химические:

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

3. Психофизиологические:

  1.  напряжение зрения, памяти, внимания;
  2.  длительное статическое напряжение;
  3.  большой объем информации, обрабатываемый в единицу времени;
  4.  монотонность труда;
  5.  нерациональная организация рабочего места;
  6.  эмоциональные перегрузки.

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

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

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

— площадь на одно рабочее место с ЭВМ и ПЭВМ для взрослых пользователей — не менее 6,0 , а объем не менее 20,0 ;

— высота зала под техническим полом до подвесного потолка 3-3,5 метра;

— расстояние между подвесным и основным потолком при этом 0,5-0,8 м;

— габариты дверей машинного зала принимаются не менее 1,8x1,1 метра.

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

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

Помещения с ЭВМ и ПЭВМ имеют естественное и искусственное освещение. В дневное время в ОАО «Беларуськалий» используется естественное боковое одностороннее освещение, в вечернее время или при недостаточных нормах освещения — искусственное общее равномерное.

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

Нормированный уровень освещенности для работы с ЭВМ — 400лк, КЕО — 4%.

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

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

В случае, если ВДТ обращен к оконному проему, предусматриваются специальные экранирующие устройства. Окна рекомендуется снабжать светорассеивающими шторами (р = 0,5-0,7), регулируемыми жалюзи или солнцезащитной пленкой с металлическим покрытием.

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

Для искусственного освещения помещений используются главным образом, люминесцентные лампы белого света (ЛБ), темно-белого света (ЛТБ) мощностью 65 или 80 Вт.

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

Средства, выделяемые на мероприятия по охране труда на предприятии ОАО «Беларуськалий», приведены в таблице 6.1.

Таблица 5.1 — Выделение и использование средств на мероприятия
по охране труда

Показатели

2011

2012

2013

План

Факт

План

Факт

План

Факт

Всего затрат, тыс. руб.

В т. ч.:

11119,35

8875,05

10742,2

9085,85

10887,25

8957,1

на номенклатурные мероприятия, предусмотренные коллективным договором (соглашением по социальным вопросам и охране труда)

256,0

152,0

235,6

186,35

250,0

200,0

на средства индивидуальной защиты

730,5

720,8

720,3

720,3

631,1

631,1

на лечебно-профилактическое питание и молоко;

551,95

551,95

535,6

535,6

575,2

575,2

Окончание таблицы 5.1

1

2

3

4

5

6

7

Ассигновано на одного работающего, тыс. руб.

9580,9

7450,3

9250,7

7643,6

9430,95

7550,8

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

5.2.2 Техника безопасности

Обеспечение здоровых и безопасных условий труда возлагается на администрацию предприятия. Администрация обязана внедрять современные средства техники безопасности, предупреждающие производственный травматизм, и обеспечивать санитарно-гигиенические условия, предотвращающие возникновение профессиональных заболеваний работников [2].

Показатели производственного травматизма на предприятии ОАО «Беларуськалий» приведены в таблице 6.2.

Таблица 5.2 – Показатели производственного травматизма

Показатели

Формулы и обозначения

Годы

2011

2012

2013

Среднесписочное число работающих 

р

1556

1550

1552

Число несчастных случаев в отчетный период 

Т

4

2

1

Окончание таблицы 5.2

1

2

3

4

5

Число дней нетрудоспособности 

Д

52

44

59

Показатель частоты травматизма 

2,57

1,29

0,64

Показатель тяжести травматизма

13

22

59

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

85,8

36,6

24,3

Проанализировав данные в таблице 6.2, можно сделать вывод о том, что на предприятии ОАО «Беларуськалий» имели место несчастные случаи, связанные с профессиональной деятельностью.

5.2.3 Производственная санитария

Одним из мероприятий по оздоровлению воздушной среды является устройство вентиляции и отопления. Задачей вентиляции является обеспечение чистоты воздуха и заданных метеорологических условий на рабочих местах. Чистота воздушной среды достигается удалением загрязненного или нагретого воздуха из помещения и подачей в него свежего воздуха. Работа ВДТ сопровождается выделением тепла. Для поддержания нормального микроклимата необходим достаточный объем вентиляции, для чего в вычислительном центре предусматривается кондиционирование воздуха, осуществляющее поддержание постоянных параметров микроклимата в помещении независимо от наружных условий. В вычислительном центре установлены кондиционеры неполного кондиционирования марки БК-2500.

Параметры микроклимата поддерживаются в указанных пределах в холодное время за счет системы водяного отопления с нагревом воды 100°С, в теплый — за счет кондиционирования, с параметрами отвечающими требованиям.

Основными нормативными документами по защите от поражения электротоком являются «Правила устройства электроустановок, ПУЭ», «Правила технической эксплуатации электроустановок потребителей» и «Правила техники безопасности при эксплуатации электроустановок потребителей». Помещения по степени опасности поражения электрическим током относится к помещениям без повышенной опасности.

Основные меры защиты от поражения током:

  1.  защитное заземление (Rз = 4 Ом);
  2.  изоляция токоведущих частей и устройств контроля;
  3.  ограждение и недоступность токоведущих частей;
  4.  применение палого напряжения;
  5.  использование двойной изоляции.

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

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

Уровни напряженности электрического поля тока промышленной частоты 50 Гц, создаваемые монитором, системным блоком, клавиатурой, изделием в целом не превышают допустимого 0,5 кВ/м согласно.

Напряженность электростатического поля на рабочем месте оператора не превышает допустимого значения 15 кВ/м согласно.

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

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

  1.  защитное заземление — преднамеренное электрическое соединение с землей или ее эквивалентом металлических нетоковедущих частей, которые могут оказаться под напряжением;
  2.  зануление — преднамеренное электрическое соединение с нулевым защитным проводником металлических нетоковедущих частей, которые могут оказаться под напряжением;
  3.  защитное отключение — быстродействующая защита, обеспечивающая автоматическое отключение электроустановки при возникновении в ней опасности поражения электрическим током [10].

5.2.4 Пожарная безопасность

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

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

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

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

Здание построено из естественных и искусственных каменных материалов и имеет защищенные стальные конструкции. По СНИП 2.01.02-85 степень огнестойкости такого здания — 2-ая (огнестойкость несущих стен не менее 2 ч, перегородок не менее 15 мин).

Мероприятия по пожарной профилактике делятся на организационные, технические, режимные и эксплуатационные. К организационным относятся:

– организация правильной эксплуатации оборудования;

– содержание здания в необходимых условиях;

– плановое проведение противопожарного инструктажа;

– организация пожарных дружин и пожарно-технических комиссий.

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

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

К эксплуатационным мероприятиям относятся профилактические осмотры, ремонты и испытания ЭВМ.

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

В качестве первичных средств пожаротушения используются огнетушители ОХП-10. Кроме того, на  некоторых участках предусмотрено место для противопожарного инвентаря, где находится ящик с песком, ведра, топор, лопаты и огнетушители.

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

5.3 Мероприятия по улучшению условий и безопасности труда

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

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

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

Обучение, повышение уровня и проверка знаний по вопросам охраны труда работников проводятся в соответствии с Законом Республики Беларусь «Об образовании», ГОСТ 12.0.004 «ССБТ».

На постоянных рабочих местах в помещениях необходимо принимать расчетную температуру воздуха 22 и относительную влажность не более 60% в течение всего года.

Отопление, вентиляция и кондиционирование воздуха производственных и вспомогательных помещений регламентируются одноименным CТБ 4.02.01- 03, ГОСТ 12.4.021, ГОСТ 12.2.137.    

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

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

Благоустройства и озеленение территории. Рекомендуется по возможности промышленные предприятия располагать продольной осью параллельно или под углом 45 к направлению господствующих ветров.

Территория предприятия должна отвечать требованиям СанПиН 10-5-2002 «Санитарно-защитные зоны и санитарная классификация предприятий, сооружений и иных объектов», СанПиН 9-94-98 «Санитарные правила и нормы содержания и эксплуатации производственных предприятий», Межотраслевым общим правилам по охране труда.

В соответствии с этими документами территорию предприятий следует максимально озеленить и содержать в чистоте. Проезды и проходы должны быть свободными для движения, выровнены и освещены. Хранение сыпучих и порошковых материалов необходимо осуществлять в закрытых складах. При отсутствии такой возможности санитарные разрывы от открытых складов пылящих материалов до производственных зданий необходимо принимать не менее 20 м, до зданий бытовых помещений – 25 м, до прочих вспомогательных зданий – 50 м. Эти разрывы нужно озеленить и регулярно очищать.

Улучшению санитарно-бытовых условий труда работающих (оборудование душевых, комнат отдыха и приема пищи, гардеробных, комнат личной гигиены женщин, обеспечение спецодеждой и средствами индивидуальной защиты). В соответствии с действующим законодательством и CНБ 3.02.03-03 «Административные и бытовые здания», на каждом предприятии должен быть комплекс общих бытовых помещений.

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

Между отдельно стоящими бытовыми зданиями с помещениями для обслуживания работающих и отапливаемыми производственными зданиями следует предусматривать отапливаемые переходы.

5.4 Выбор типа пожарных извещателей, их количества и места расположения в помещении с ПЭВМ

Помещения,  в  которых  установлены  персональные  ЭВМ,  по   пожарной опасности относятся к категории Д, и  должны  удовлетворять  требованиям  по предотвращению и тушению пожара по  ГОСТ  12.1.004-91.  В таких помещениях обязательно  наличие телефонной связи и пожарной сигнализации.

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

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

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

– основным фактором возникновения очага загорания в начальной стадии является появление дыма;

– в защищаемых помещениях возможно присутствие людей.

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

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

Тепловые пожарные извещатели следует применять, если в зоне контроля в случае возникновения пожара на его начальной стадии предполагается значительное тепловыделение. Дифференциальные и максимально-дифференциальные тепловые пожарные извещатели очага пожара, если в зоне контроля не предполагается перепадов температуры, не связанных с возникновением пожара, способных вызвать срабатывание пожарных извещателей этих типов. Максимальные тепловые пожарные извещатели не рекомендуется применять в помещениях, где температура воздуха при пожаре может не достигнуть температуры срабатывания извещателей или достигнет её через недопустимо большое время, за исключением случаев, когда применение других извещателей невозможно или нецелесообразно. При выборе тепловых пожарных извещателей следует учитывать, что температура срабатывания максимальных и максимально-дифференциальных извещателей должна быть не менее чем на 20 °С выше максимально допустимой температуры воздуха в помещении [20].

Проанализировав имеющиеся разновидности пожарных извещателей, можно предложить в качестве пожарных извещателей в помещении с ЭВМ установить дымовые фотоэлектрические извещатели типа ИДФ-1 или ДИП-1. Исходя из высоты потолка 4 м и площади помещения 30-40 м2 по нормам достаточно одного извещателя на машинный зал. Эти устройства характеризуются высокой скоростью и надежностью срабатывания и работают на принципе рассеяния частицами дыма теплового излучения. Место крепления извещателя — потолок. Также извещатели должны быть подключены в единую систему пожарной сигнализации предприятия для оповещения дежурного персонала о пожаре.

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

Вместе с дымовым фотоэлектрическим извещателем можно установить пожарный ручной извещатель (устройство, предназначенное для ручного включения сигнала пожарной тревоги в системах пожарной сигнализации и пожаротушения) на случай, если сотрудники помещения заметят возгорание или дым раньше, чем сработает автоматический извещатель. Ручные пожарные извещатели следует устанавливать на высоте 1,5 м от уровня земли или пола. Освещённость в месте установки ручного пожарного извещателя должна быть не менее 50 Лк. Ручные пожарные извещатели должны устанавливаться на путях эвакуации в местах, доступных для их включения при возникновении пожара.


ЗАКЛЮЧЕНИЕ

В результате работы над дипломным проектом была выполнена главная задача: разработан программный продукт «Автоматизированная система учета передвижения продукции на ОАО «Беларуськалий»».

База данных приложения разработана с использованием СУБД MySql. Использовалась среда разработки Microsoft Visual Studio 2012 и интегрированный язык С++.

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

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

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

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

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

  1.  повышение производительности труда работников;
  2.  эффективное распределение рабочего времени;
  3.  уменьшение временных затрат.

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


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1.  Prepared statement [Электронный ресурс]. — Режим доступа: http://en.wikipedia.org/wiki/Prepared_statement. — Дата доступа: 20.11.2014. 
  2.  Борисов, В.Н. Охрана труда в вопросах и ответах: Справочное пособие / В. Н. Борисов. — Мн.: ЦОТЖ, 2001. — 429 с.
  3.   Бочкарева, Л.В. Системы автоматизации проектирования программного обеспечения. Работа в среде Rational Rose: учебно–методическое пособие для студ. спец. «Программное обеспечение информационных технологий» / Л.В. Бочкарева. —  Мн.: БГУИР, 2006. — 38 с.
  4.  Горбач, Ю.Е. Методические рекомендации по выполнению экономического раздела дипломного проекта. – Барановичи: БарГУ, 2013. – 11с.
  5.  Ермолович, Л.Л. Анализ финансово – хозяйственной деятельности предприятия / Л. Л. Ермолович. — Мн.: БГЭУ, 2001. — 567 с.
  6.  Закон Республики Беларусь «Об охране труда» принятый Палатой       представителей от 23.06.2008 г. №356-3. — 34с.
  7.  Ильин, А.И. Экономика предприятия / А.И. Ильин. — М.: ЮНИТИ, 2003. 671 с.
  8.  История об ОАО «Беларуськалий» [Электронный ресурс]. – Режим доступа: http://www.kali.by/company/history/index.php. – Дата доступа: 20.11.2014.
  9.   Кватрани, Т. Визуальное моделирование с помощью Rational Rose 2002 и UML / Т. Кватрани. — М.: Вильямс, 2003. — 192с.
  10.  Куценко, Г.Ф. Охрана труда. Производственная санитария: Практическое пособие / Г.Ф. Куценко. — Мн.: Дизайн ПРО, 2005. — 784 с.
  11.   Лабор, В.В. Си Шарп: Создание приложений для Windows / В.В..Лабор. —  Мн.: Харвест, 2003 — 384 с.
  12.  Лазерный МФУ HP LaserJet Pro M125 [Электронный ресурс]. — Режим доступа http://www.migom.by/HP-LaserJet-Pro-M125rnw-(CZ178A)-669823/. — Дата доступа: 20.11.2014. 
  13.  Монитор Philips 243V5LSB/00 [Электронный ресурс]. — Режим доступа:  http://catalog.onliner.by/philips/243v5lsb00. — Дата доступа: 20.11.2014.
  14.  Монитор Samsung S24D300H [Электронный ресурс]. — Режим доступа:http://catalog.onliner.by/samsung/s24d300h. — Дата доступа: 20.11.2014. 
  15.  Обзор web-браузеров [Электронный ресурс]. — Режим доступа: http://web-browsers.ru. — Дата доступа: 20.11.2014. 
  16.  Олифер, В.Г. Компьютерные сети. Принципы, технологии, протоколы / В.Г. Олифер, Н. А. Олифер. — СПб.: Питер, 2002. — 672 с.
  17.   Описание пакета Microsoft Office [Электронный ресурс]. – Режим доступа: http://chem-otkrit.ru/soft/microsoft_office. — Дата доступа: 20.11.2014. 
  18.   Официальный сайт ОАО «Беларуськалий» [Электронный ресурс]. — Режим доступа: http://www.kali.by. — Дата доступа: 05.04.2015.
  19.   Павловская,Т.С. C#. Программирование на языке высокого уровня / Т.С.Павловская. — СПб.: Питер, 2009. — 432 с.
  20.  Протодьяконов, И.О. Обеспечение пожарной безопасности при работе оператора ПЭВМ: методические указания по выполнению в дипломных проектах и работах раздела «Безопасность объектов» / И.О. Протодьяконов, В.И. Сарже, О.И. Протодьяконова. — СПб: ГТУРП,  2013. — 12 с.
  21.  Раздорожный, А. А.  Охрана труда и производственная безопасность. Учебно-методическое пособие / А. А. Раздорожный. – М.: Издательский дом «Экзамен», 2005. — 512 с.
  22.   Фёдоров, А.Г. Microsoft Visual Studio 2010. Первое знакомство / А.Г. Фёдоров. —  М.: Изд. Дом «Вильямс», 2009. — 42 с.
  23.  Фролов, А.В. Визуальное проектирование приложений С / А.В. Фролов, Г.В. Фролов. — М.: Люксофт, 2003. — 40 с.
  24.  Якобсон, И. Язык UML. Руководство пользователя / И. Якобсон, Дж.  Рамбо. — М.: ДМК Пресс, 2007. — 496 с.

ПРИЛОЖЕНИЕ А

Исходный текст программы

// Main.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using MySql.Data.MySqlClient;

using Excel = Microsoft.Office.Interop.Excel;

namespace Sklad

{

   public partial class Main : Form

   {

       public Main()

       {            InitializeComponent();        }

       public string Connect = "Database=as_product;Data Source=localhost;User=root;Password=pass;charset=cp1251;";

       public int ID_red, N;

       public string FIO, Sklad;

       public void ShowData()

       {

           string CommandText = "Select Count(*) from sklad_tov st, product p where st.id_prod=p.id_prod and data_skl between '" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "' and '" + dateTimePicker2.Value.ToString("yyyy-MM-dd") + "'  and  name_prod like '%" + textBox1.Text + "%'";

           

           MySqlConnection myConnection = new MySqlConnection(Connect);

           MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

           Int32 kol = Convert.ToInt32(myCommand.ExecuteScalar().ToString()); ;

           if (kol > 0)

               dataGridView1.RowCount = kol;

           else dataGridView1.RowCount = 1;

           for (int k = 0; k < kol; k++) dataGridView1[0, k].Value = "";

           string TextCommand = "Select id_st, st.id_skl, name_kat,name_prod, Concat(fam, concat(' ', concat(imya,concat(' ',otch)))),kol_skl, data_skl,ed_izm ";

           TextCommand += " from Product p, kategoriya k, sotrudniki s, sklad_tov st where p.id_kat=k.id_kat and s.id_sotr=st.id_sotr and st.id_prod=p.id_prod ";

           TextCommand += " and data_skl between '" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "' and '" + dateTimePicker2.Value.ToString("yyyy-MM-dd") + "'  ";

           TextCommand += " and name_prod like '%" + textBox1.Text + "%' order by name_kat, name_prod, data_skl";

           MySqlCommand comm1 = new MySqlCommand(TextCommand, myConnection);

           MySqlDataReader myReader = comm1.ExecuteReader();

           int i = 0;

           while (myReader.Read())

           {

               for (int j = 0; j < 8; j++)

               {

       dataGridView1[j, i].Value = myReader.GetString(j);

               }

               i++;

           }

           myConnection.Close(); //Обязательно закрываем соединение!

       }

       private void Main_Load(object sender, EventArgs e)

       {

           dateTimePicker2.Value = DateTime.Today;

           dateTimePicker1.Value = DateTime.Today.AddDays(-30);

           ShowData();

           if (FIO != "admin")

           {

               сотрудникиToolStripMenuItem.Visible = false;

               редактироватьПоставкуToolStripMenuItem.Visible = false;

               удалитьПоставкуToolStripMenuItem.Visible = false;

           }

       }

       private void закзчикиToolStripMenuItem_Click(object sender, EventArgs e)

       {

           Zak frm = new Zak();

           frm.ShowDialog();

       }

       private void справочникПоставкиToolStripMenuItem_Click(object sender, EventArgs e)

       {

           Post frm = new Post();

           frm.FIO = FIO;

           frm.Sklad = Sklad;

           frm.ShowDialog();

       }

       private void товарыToolStripMenuItem_Click(object sender, EventArgs e)

       {   Prod frm = new Prod();

           frm.ShowDialog();

       }

       private void складыToolStripMenuItem_Click(object sender, EventArgs e)

       {

           Sklad frm = new Sklad();

           frm.ShowDialog();

       }

       private void сотрудникиToolStripMenuItem_Click(object sender, EventArgs e)

       {

           Sotr frm = new Sotr();

           frm.ShowDialog();

       }

       private void dateTimePicker1_ValueChanged(object sender, EventArgs e)

       {

           ShowData();

       }

       private void dateTimePicker2_ValueChanged(object sender, EventArgs e)

       {

           ShowData();

       }

       private void textBox1_TextChanged(object sender, EventArgs e)

       {

           ShowData();

       }

       private void удалитьПоставкуToolStripMenuItem_Click(object sender, EventArgs e)

       {

           MySqlConnection myConnection = new MySqlConnection(Connect);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

           string DelId = Convert.ToString(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value);

           string TextCommand = "Delete from sklad_tov where id_st =" + DelId;

           MySqlCommand myCommand = new MySqlCommand(TextCommand, myConnection);

           myCommand.ExecuteNonQuery();

           myConnection.Close(); //Обязательно закрываем соединение!

           ShowData();

           MessageBox.Show("Данные удалены", "Удаление записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

       }

       private void добавитьПоставкуToolStripMenuItem_Click(object sender, EventArgs e)

       {

           MainAdd frm = new MainAdd();

           frm.button1.Visible = true;

           frm.button2.Visible = false;

           frm.comboBox3.Enabled = true;

           frm.comboBox1.Enabled = true;

           MySqlConnection myConnection = new MySqlConnection(Connect);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

           string CommandText = "SELECT min(C.ID_st+1) FROM sklad_tov C LEFT JOIN sklad_tov b ON C.ID_st+1 = b.ID_st where b.ID_st is null";

           MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);

           frm.textBox1.Text = myCommand.ExecuteScalar().ToString();

           myConnection.Close(); //Обязательно закрываем соединение!

           if (FIO != "admin") { frm.comboBox3.Text = FIO; frm.comboBox3.Enabled = false; frm.comboBox4.Text = Sklad; frm.comboBox4.Enabled = false; frm.comboBox4_SelectedIndexChanged(sender, e); }

           frm.ShowDialog();

       }

       private void редактироватьПоставкуToolStripMenuItem_Click(object sender, EventArgs e)

       {

           MainAdd frm = new MainAdd();

           frm.button1.Visible = false;

           frm.button2.Visible = true;

           frm.ID_red = Convert.ToInt32(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value);

           frm.textBox1.Text = Convert.ToString(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value);

           frm.textBox2.Text = Convert.ToString(dataGridView1[5, dataGridView1.CurrentCell.RowIndex].Value);

           frm.textBox3.Text = Convert.ToString(dataGridView1[7, dataGridView1.CurrentCell.RowIndex].Value);

           frm.comboBox1.Enabled = false;

           frm.comboBox1.Text = Convert.ToString(dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value);

           frm.comboBox2.Text = Convert.ToString(dataGridView1[3, dataGridView1.CurrentCell.RowIndex].Value);

           frm.comboBox3.Text = Convert.ToString(dataGridView1[4, dataGridView1.CurrentCell.RowIndex].Value);

           frm.comboBox3.Enabled = false;

           frm.comboBox4.Text = Convert.ToString(dataGridView1[1, dataGridView1.CurrentCell.RowIndex].Value);

           dateTimePicker1.Value = Convert.ToDateTime(dataGridView1[6, dataGridView1.CurrentCell.RowIndex].Value);

           frm.ShowDialog();

       }

       private void Main_Activated(object sender, EventArgs e)

       {

           ShowData();

       }

       private Excel.Application excel;

       private Excel.Worksheet excelworksheet;

       private Excel.Sheets excelsheets;

       Excel.Workbook book;

       private Excel.Range excelcells;

       private void отчетСписокСотрудниковToolStripMenuItem_Click(object sender, EventArgs e)

       {

           try

           {

               //работа с Excel

               excel = new Excel.Application();

           }

           catch

           {

               MessageBox.Show("Отсутствует MS.Excel");

               this.Close();

           }

           excel.SheetsInNewWorkbook = 1;

           excel.Workbooks.Add(Type.Missing);

           book = excel.Workbooks[1];

           excelworksheet = book.Worksheets[1];

           excelworksheet.Name = "Список сотрудников";

           excelcells = excelworksheet.get_Range("A1", "G1");

           excelcells.Merge(Type.Missing);

           excelcells.HorizontalAlignment = Excel.Constants.xlCenter;

           excelcells.VerticalAlignment = Excel.Constants.xlCenter;

           excelcells.Font.FontStyle = 2;

           excelcells.EntireRow.Font.Size = 16;

           excelcells.Value2 = "Список сотрудников склада на " + DateTime.Today.ToString("dd-MM-yyyy");

           excelworksheet.get_Range("A3", "A3").ColumnWidth = 15;

           excelworksheet.get_Range("B3", "B3").ColumnWidth = 20;

           excelworksheet.get_Range("C3", "C3").ColumnWidth = 15;

           excelworksheet.get_Range("D3", "D3").ColumnWidth = 15;

           excelworksheet.get_Range("E3", "E3").ColumnWidth = 20;

           excelworksheet.get_Range("F3", "F3").ColumnWidth = 20;

           excelworksheet.get_Range("G3", "G3").ColumnWidth = 15;

           excelcells = excelworksheet.get_Range("A3", Type.Missing);

           excelcells.Value2 = "Таб. номер";

           excelcells = excelworksheet.get_Range("B3", Type.Missing);

           excelcells.Value2 = "Фамилия";

           excelcells = excelworksheet.get_Range("C3", Type.Missing);

           excelcells.Value2 = "Имя";

           excelcells = excelworksheet.get_Range("D3", Type.Missing);

           excelcells.Value2 = "Отчество";

           excelcells = excelworksheet.get_Range("E3", Type.Missing);

           excelcells.Value2 = "Должность";

           excelcells = excelworksheet.get_Range("F3", Type.Missing);

           excelcells.Value2 = "Разряд";

           excelcells = excelworksheet.get_Range("G3", Type.Missing);

           excelcells.Value2 = "Склад";

           excelcells = excelworksheet.get_Range("A3", "G3");

           excelcells.EntireRow.Font.Bold = true;

           MySqlConnection myConnection = new MySqlConnection(Connect);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

           string TextCommand = "Select id_sotr, fam, imya, otch, dolzn, razr, id_skl ";

           TextCommand += " from sotrudniki  ";

           TextCommand += " order by id_skl, fam, imya, otch, dolzn";

           MySqlCommand comm1 = new MySqlCommand(TextCommand, myConnection);

           MySqlDataReader myReader = comm1.ExecuteReader();

           int i = 0;

           while (myReader.Read())

           {

               excelcells = excelworksheet.get_Range("A" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(0);

               excelcells = excelworksheet.get_Range("B" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(1);

               excelcells = excelworksheet.get_Range("C" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(2);

               excelcells = excelworksheet.get_Range("D" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(3);

               excelcells = excelworksheet.get_Range("E" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(4);

               excelcells = excelworksheet.get_Range("F" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(5);

               excelcells = excelworksheet.get_Range("G" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(6);

              i++;

           }

           myConnection.Close(); //Обязательно закрываем соединение!

           //заполнение данными

           excelcells = excelworksheet.get_Range("A3", "G" + (i + 3).ToString());

           excelcells.Borders.ColorIndex = 5;

           excel.Visible = true;

       }

       private void отчетСписокЗаказчиковToolStripMenuItem_Click(object sender, EventArgs e)

       {

           try

           {

               //работа с Excel

               excel = new Excel.Application();

           }

           catch

           {

               MessageBox.Show("Отсутствует MS.Excel");

               this.Close();

           }

           excel.SheetsInNewWorkbook = 1;

           excel.Workbooks.Add(Type.Missing);

           book = excel.Workbooks[1];

           excelworksheet = book.Worksheets[1];

           excelworksheet.Name = "Список заказчиков";

           excelcells = excelworksheet.get_Range("A1", "E1");

           excelcells.Merge(Type.Missing);

           excelcells.HorizontalAlignment = Excel.Constants.xlCenter;

           excelcells.VerticalAlignment = Excel.Constants.xlCenter;

           excelcells.Font.FontStyle = 2;

           excelcells.EntireRow.Font.Size = 16;

           excelcells.Value2 = "Список заказчиков на " + DateTime.Today.ToString("dd-MM-yyyy");

           excelworksheet.get_Range("A3", "A3").ColumnWidth = 15;

           excelworksheet.get_Range("B3", "B3").ColumnWidth = 20;

           excelworksheet.get_Range("C3", "C3").ColumnWidth = 15;

           excelworksheet.get_Range("D3", "D3").ColumnWidth = 15;

           excelworksheet.get_Range("E3", "E3").ColumnWidth = 30;

           excelcells = excelworksheet.get_Range("A3", Type.Missing);

           excelcells.Value2 = "Страна";

           excelcells = excelworksheet.get_Range("B3", Type.Missing);

           excelcells.Value2 = "Заказчик";

           excelcells = excelworksheet.get_Range("C3", Type.Missing);

           excelcells.Value2 = "Адрес";

           excelcells = excelworksheet.get_Range("D3", Type.Missing);

           excelcells.Value2 = "Телефон";

           excelcells = excelworksheet.get_Range("E3", Type.Missing);

           excelcells.Value2 = "Контакт. лицо";

           excelcells = excelworksheet.get_Range("A3", "E3");

           excelcells.EntireRow.Font.Bold = true;

           MySqlConnection myConnection = new MySqlConnection(Connect);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

           string TextCommand = "Select name_str, name_zak, adres_zak, tel_zak, kontact ";

           TextCommand += " from zakazchik, strana where strana.id_str=zakazchik.id_str  ";

           TextCommand += " order by name_str, name_zak";

           MySqlCommand comm1 = new MySqlCommand(TextCommand, myConnection);

           MySqlDataReader myReader = comm1.ExecuteReader();

           int i = 0;

           while (myReader.Read())

           {

               excelcells = excelworksheet.get_Range("A" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(0);

               excelcells = excelworksheet.get_Range("B" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(1);

               excelcells = excelworksheet.get_Range("C" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(2);

               excelcells = excelworksheet.get_Range("D" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(3);

               excelcells = excelworksheet.get_Range("E" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(4);

               i++;

           }

           myConnection.Close(); //Обязательно закрываем соединение!

           //заполнение данными

           excelcells = excelworksheet.get_Range("A3", "E" + (i + 3).ToString());

           excelcells.Borders.ColorIndex = 5;

           excel.Visible = true;

       }

       private void отчетСписокПроизводимойПродукцииToolStripMenuItem_Click(object sender, EventArgs e)

       {

           try

           {

               //работа с Excel

               excel = new Excel.Application();

           }

           catch

           {

               MessageBox.Show("Отсутствует MS.Excel");

               this.Close();

           }

           excel.SheetsInNewWorkbook = 1;

           excel.Workbooks.Add(Type.Missing);

           book = excel.Workbooks[1];

           excelworksheet = book.Worksheets[1];

           excelworksheet.Name = "Список продукции";

           excelcells = excelworksheet.get_Range("A1", "C1");

           excelcells.Merge(Type.Missing);

           excelcells.HorizontalAlignment = Excel.Constants.xlCenter;

           excelcells.VerticalAlignment = Excel.Constants.xlCenter;

           excelcells.Font.FontStyle = 2;

           excelcells.EntireRow.Font.Size = 16;

           excelcells.Value2 = "Список производимой продукции на " + DateTime.Today.ToString("dd-MM-yyyy");

           excelworksheet.get_Range("A3", "A3").ColumnWidth = 30;

           excelworksheet.get_Range("B3", "B3").ColumnWidth = 20;

           excelworksheet.get_Range("C3", "C3").ColumnWidth = 30;

           excelcells = excelworksheet.get_Range("A3", Type.Missing);

           excelcells.Value2 = "Категория";

           excelcells = excelworksheet.get_Range("B3", Type.Missing);

           excelcells.Value2 = "Номер";

           excelcells = excelworksheet.get_Range("C3", Type.Missing);

           excelcells.Value2 = "Продукция";

           excelcells = excelworksheet.get_Range("A3", "C3");

           excelcells.EntireRow.Font.Bold = true;

           MySqlConnection myConnection = new MySqlConnection(Connect);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

          string TextCommand = "Select name_kat, id_prod, name_prod ";

           TextCommand += " from kategoriya, product where kategoriya.id_kat=product.id_kat  ";

           TextCommand += " order by name_kat, name_prod";

           MySqlCommand comm1 = new MySqlCommand(TextCommand, myConnection);

           MySqlDataReader myReader = comm1.ExecuteReader();

           int i = 0;

           while (myReader.Read())

           {

               excelcells = excelworksheet.get_Range("A" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(0);

               excelcells = excelworksheet.get_Range("B" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(1);

               excelcells = excelworksheet.get_Range("C" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = myReader.GetString(2);

              i++;

           }

           myConnection.Close(); //Обязательно закрываем соединение!

           //заполнение данными

           excelcells = excelworksheet.get_Range("A3", "C" + (i + 3).ToString());

           excelcells.Borders.ColorIndex = 5;

           excel.Visible = true;

       }

       private void отчетТоварыНаСкладеToolStripMenuItem_Click(object sender, EventArgs e)

       {

           try

           {

               //работа с Excel

               excel = new Excel.Application();

           }

           catch

           {

               MessageBox.Show("Отсутствует MS.Excel");

               this.Close();

           }

           excel.SheetsInNewWorkbook = 1;

           excel.Workbooks.Add(Type.Missing);

           book = excel.Workbooks[1];

           excelworksheet = book.Worksheets[1];

           excelworksheet.Name = "Наличие товаров";

           excelcells = excelworksheet.get_Range("A1", "E1");

           excelcells.Merge(Type.Missing);

           excelcells.HorizontalAlignment = Excel.Constants.xlCenter;

           excelcells.VerticalAlignment = Excel.Constants.xlCenter;

           excelcells.Font.FontStyle = 2;

           excelcells.EntireRow.Font.Size = 16;

           excelcells.Value2 = "Наличие товаров на складе на " + DateTime.Today.ToString("dd-MM-yyyy");

           excelworksheet.get_Range("A3", "A3").ColumnWidth = 15;

           excelworksheet.get_Range("B3", "B3").ColumnWidth = 20;

           excelworksheet.get_Range("C3", "C3").ColumnWidth = 15;

           excelworksheet.get_Range("D3", "D3").ColumnWidth = 15;

           excelworksheet.get_Range("E3", "E3").ColumnWidth = 15;

           excelcells = excelworksheet.get_Range("A3", Type.Missing);

           excelcells.Value2 = "Склад";

           excelcells = excelworksheet.get_Range("B3", Type.Missing);

           excelcells.Value2 = "Продукция";

           excelcells = excelworksheet.get_Range("C3", Type.Missing);

           excelcells.Value2 = "Количество на складе";

           excelcells = excelworksheet.get_Range("D3", Type.Missing);

           excelcells.Value2 = "Ед.измерения";

           excelcells = excelworksheet.get_Range("E3", Type.Missing);

           excelcells.Value2 = "Адрес склада";

           excelcells = excelworksheet.get_Range("A3", "E3");

           excelcells.EntireRow.Font.Bold = true;

           MySqlConnection myConnection = new MySqlConnection(Connect);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

           string TextCommand = "select distinct s.id_skl, name_prod, adres_skl from sklad s, sklad_tov st, product p where s.id_skl=st.id_skl and st.id_prod = p.id_prod ";

           

           MySqlCommand comm1 = new MySqlCommand(TextCommand, myConnection);

           MySqlDataReader myReader = comm1.ExecuteReader();

           string[] ID = new string[100];

           string[] P = new string[100];

           string[] Adres = new string[100];

           int N = 0;

           while (myReader.Read())

           {

               ID[N] = myReader.GetString(0);

               P[N] = myReader.GetString(1);

               Adres[N] = myReader.GetString(2);

               N++;

           }

           myConnection.Close();

           MySqlConnection myConnection1 = new MySqlConnection(Connect);

           myConnection1.Open(); //Устанавливаем соединение с базой данных.

           int i = 0;

           for (int j = 0; j < N; j++)

           {

               excelcells = excelworksheet.get_Range("A" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = ID[j];

               excelcells = excelworksheet.get_Range("B" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = P[j];

               string CommandText1 = "select sum(kol_post) from postavka, product where product.id_prod=postavka.id_prod and name_prod ='" + P[j] + "' and id_skl = " + ID[j] + " group by id_skl, postavka.id_prod ";

               MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection1);

               Int32 kolpost = 0;

               if (myCommand1.ExecuteScalar() != null) kolpost = Convert.ToInt32(myCommand1.ExecuteScalar().ToString());

               string CommandText2 = "select sum(kol_skl) from sklad_tov st, product p where p.id_prod=st.id_prod and name_prod ='" + P[j] + "'  and id_skl = " + ID[j] + " group by id_skl, st.id_prod ";

               MySqlCommand myCommand2 = new MySqlCommand(CommandText2, myConnection1);

               Int32 kolskl = 0;

               if (myCommand2.ExecuteScalar() != null) kolskl = Convert.ToInt32(myCommand2.ExecuteScalar().ToString());

               excelcells = excelworksheet.get_Range("C" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = Convert.ToString(kolskl - kolpost);

               excelcells = excelworksheet.get_Range("D" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = "тонн";

               excelcells = excelworksheet.get_Range("E" + (i + 4).ToString(), Type.Missing);

               excelcells.Value2 = Adres[j];

               i++;

           }

           myConnection1.Close(); //Обязательно закрываем соединение!

           //заполнение данными

           excelcells = excelworksheet.get_Range("A3", "E" + (i + 3).ToString());

           excelcells.Borders.ColorIndex = 5;

           excel.Visible = true;

       }

   }

}

//ZakAdd.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using MySql.Data.MySqlClient;

namespace Sklad

{

   public partial class ZakAdd : Form

   {

       public ZakAdd()

       {

           InitializeComponent();

       }

       public string Connect = "Database=as_product;Data Source=localhost;User=root;Password=pass;charset=cp1251;";

       public int ID_red;

       public void ShowStrana()

       {

           MySqlConnection myConnection = new MySqlConnection(Connect);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

           string CommandText = "Select name_str from strana";

           MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);

           MySqlDataReader myReader1 = myCommand.ExecuteReader();

           comboBox1.Items.Clear();

           while (myReader1.Read())

           {

               comboBox1.Items.Add(myReader1.GetString(0));

           }

           myConnection.Close(); //Обязательно закрываем соединение!

       }

       private void ZakAdd_Load(object sender, EventArgs e)

       {

           if(button1.Visible)ShowStrana();

       }

     private void button1_Click(object sender, EventArgs e)

       {

           if (comboBox1.Text == "" || textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" )

               MessageBox.Show("Необходимо заполнить все данные", "Добавление записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

           else

           {MySqlConnection myConnection = new MySqlConnection(Connect);

               myConnection.Open(); //Устанавливаем соединение с базой данных.

               string CommandText = "SELECT min(C.ID_zak+1) FROM zakazchik C LEFT JOIN zakazchik b ON C.ID_zak+1 = b.ID_zak where b.ID_zak is null";

               MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);

               Int32 nom = Convert.ToInt32(myCommand.ExecuteScalar().ToString());

               string CommandText1 = "SELECT id_str from strana where name_str = '"+comboBox1.Text+"'";

               MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

               Int32 nom1 = Convert.ToInt32(myCommand1.ExecuteScalar().ToString());

               string TextCommand = "Insert into zakazchik (id_zak, id_str, name_zak, adres_zak, tel_zak, kontact) values(" + Convert.ToString(nom) + ",";

               TextCommand += Convert.ToString(nom1) + ",'";

               TextCommand += textBox1.Text + "','";

               TextCommand += textBox2.Text + "','";

               TextCommand += textBox3.Text + "','";

               TextCommand += textBox4.Text + "')";

               myCommand = new MySqlCommand(TextCommand, myConnection);

               myCommand.ExecuteNonQuery();

               MessageBox.Show("Данные добавлены", "Добавление записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

               comboBox1.Text = "";

               textBox1.Text = "";

               textBox2.Text = "";

               textBox3.Text = "";

               textBox4.Text = "";

               myConnection.Close(); //Обязательно закрываем соединение!

               this.Close();

           }

       }

      private void button2_Click(object sender, EventArgs e)

       {

           if (comboBox1.Text == "" || textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "")

               MessageBox.Show("Необходимо заполнить все данные", "Добавление записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

           else

           {

               MySqlConnection myConnection = new MySqlConnection(Connect);

               myConnection.Open(); //Устанавливаем соединение с базой данных.

               

               string CommandText1 = "SELECT id_str from strana where name_str = '" + comboBox1.Text + "'";

               MySqlCommand myCommand1 = new MySqlCommand(CommandText1, myConnection);

               Int32 nom1 = Convert.ToInt32(myCommand1.ExecuteScalar().ToString());

    string TextCommand = "Update zakazchik Set id_str = ";

    TextCommand += Convert.ToString(nom1) + ",name_zak = '";

    TextCommand += textBox1.Text + "', adres_zak = '";

    TextCommand += textBox2.Text + "', tel_zak = '";

    TextCommand += textBox3.Text + "',kontact = '";

    TextCommand += textBox4.Text + "' where id_zak = " + Convert.ToString(ID_red);

    MySqlCommand myCommand = new MySqlCommand(TextCommand, myConnection);

    myCommand.ExecuteNonQuery();

    MessageBox.Show("Данные изменены", "Изменение записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

    comboBox1.Text = "";

    textBox1.Text = "";

    textBox2.Text = "";

    textBox3.Text = "";

    textBox4.Text = "";

    myConnection.Close(); //Обязательно закрываем соединение!

               this.Close();

           }

       }    }}

//Sotr.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using MySql.Data.MySqlClient;

namespace Sklad

{

   public partial class Sotr : Form

   {

       public Sotr()

       {

           InitializeComponent();

       }

       public string Connect = "Database=as_product;Data Source=localhost;User=root;Password=pass;charset=cp1251;";

       public int ID_red;

       public void ShowSklad()

       {

MySqlConnection myConnection = new MySqlConnection(Connect);

myConnection.Open(); //Устанавливаем соединение с базой данных.

string CommandText = "Select id_skl from sklad";

MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);

MySqlDataReader myReader1 = myCommand.ExecuteReader();

           comboBox1.Items.Clear();

           while (myReader1.Read())

           {               comboBox1.Items.Add(myReader1.GetString(0));

           }

           myConnection.Close(); //Обязательно закрываем соединение!

       }

       private void Sotr_Load(object sender, EventArgs e)

       {

           string CommandText = "Select Count(*) from sotrudniki";

           

           MySqlConnection myConnection = new MySqlConnection(Connect);

           MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

           Int32 kol = Convert.ToInt32(myCommand.ExecuteScalar().ToString());

           if (kol > 0)

               dataGridView1.RowCount = kol;

           else dataGridView1.RowCount = 1;

           for (int k = 0; k < kol; k++) dataGridView1[0, k].Value = "";

           string TextCommand = "Select * ";

           TextCommand += " from sotrudniki ";

           MySqlCommand comm1 = new MySqlCommand(TextCommand, myConnection);

           MySqlDataReader myReader = comm1.ExecuteReader();

           int i = 0;

           while (myReader.Read())

           {

               for (int j = 0; j < 8; j++)

               {

                   dataGridView1[j, i].Value = myReader.GetString(j);

               }

               i++;

           }

           myConnection.Close(); //Обязательно закрываем соединение!

           ShowSklad();

           this.button2.Enabled = true;

       }

      private void button1_Click(object sender, EventArgs e)

       {

           if (comboBox1.Text == "" || textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "")

               MessageBox.Show("Необходимо заполнить все данные", "Добавление записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

           else

           {

               MySqlConnection myConnection = new MySqlConnection(Connect);

               myConnection.Open(); //Устанавливаем соединение с базой данных.

               string CommandText = "SELECT min(C.ID_sotr+1) FROM sotrudniki C LEFT JOIN sotrudniki b ON C.ID_sotr+1 = b.ID_sotr where b.ID_sotr is null";

               MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);

               

               Int32 nom = Convert.ToInt32(myCommand.ExecuteScalar().ToString());

               string TextCommand = "Insert into sotrudniki (id_sotr, fam, imya, otch, dolzn, razr, id_skl, passw) values(" + Convert.ToString(nom) + ",'";

               TextCommand += textBox1.Text + "','";

               TextCommand += textBox2.Text +"','";

               TextCommand += textBox3.Text + "','";

               TextCommand += textBox6.Text + "',";

               TextCommand += textBox5.Text + ",";

               TextCommand += comboBox1.Text + ",'";

               TextCommand += textBox4.Text + "')";

myCommand = new MySqlCommand(TextCommand, myConnection);

               myCommand.ExecuteNonQuery();

MessageBox.Show("Данные добавлены", "Добавление записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

               this.Sotr_Load(sender, e);

               comboBox1.Text = "";

               textBox1.Text = "";

               textBox2.Text = "";

               textBox3.Text = "";

               textBox4.Text = "";

               textBox5.Text = "";

               textBox6.Text = "";

               myConnection.Close(); //Обязательно закрываем соединение!

           }

       }

private void редактироватьЗаписьToolStripMenuItem_Click(object sender, EventArgs e)

       {

           ID_red = Convert.ToInt32(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value);

           textBox1.Text = Convert.ToString(dataGridView1[1, dataGridView1.CurrentCell.RowIndex].Value);

           textBox2.Text = Convert.ToString(dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value);

           textBox3.Text = Convert.ToString(dataGridView1[3, dataGridView1.CurrentCell.RowIndex].Value);

           textBox4.Text = Convert.ToString(dataGridView1[6, dataGridView1.CurrentCell.RowIndex].Value);

           textBox5.Text = Convert.ToString(dataGridView1[5, dataGridView1.CurrentCell.RowIndex].Value);

           textBox6.Text = Convert.ToString(dataGridView1[4, dataGridView1.CurrentCell.RowIndex].Value);

           comboBox1.Text = Convert.ToString(dataGridView1[7, dataGridView1.CurrentCell.RowIndex].Value);

           this.button2.Enabled = true;

       }

 private void button2_Click(object sender, EventArgs e)

       {

           if (comboBox1.Text == "" || textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "")

               MessageBox.Show("Необходимо заполнить все данные", "Изменение записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

           else

           {

               MySqlConnection myConnection = new MySqlConnection(Connect);

               myConnection.Open(); //Устанавливаем соединение с базой данных.

               string TextCommand = "Update sotrudniki Set fam = '" + textBox1.Text + "', imya = '" + textBox2.Text;

               TextCommand += "', otch = '" + textBox3.Text;

TextCommand += "', dolzn = '" + textBox6.Text;

TextCommand += "', razr = " + textBox5.Text;

TextCommand += ", passw = '" + textBox4.Text;

TextCommand += "', id_skl = " + comboBox1.Text;

TextCommand += "  where id_sotr = " + ID_red;

MySqlCommand myCommand = new MySqlCommand(TextCommand, myConnection);

myCommand.ExecuteNonQuery();

MessageBox.Show("Данные изменены", "Изменение записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

              this.Sotr_Load(sender, e);

               comboBox1.Text = "";

               textBox1.Text = "";

               textBox2.Text = "";

               textBox3.Text = "";

               textBox4.Text = "";

               textBox5.Text = "";

               textBox6.Text = "";

               myConnection.Close(); //Обязательно закрываем соединение!

           }

           this.button2.Enabled = false;

       }

       private void удалитьЗаписьToolStripMenuItem_Click(object sender, EventArgs e)

       {

           MySqlConnection myConnection = new MySqlConnection(Connect);

           myConnection.Open(); //Устанавливаем соединение с базой данных.

           string DelId = Convert.ToString(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value);

           string TextCommand = "Delete from sotrudniki where id_sotr =" + DelId;

           MySqlCommand myCommand = new MySqlCommand(TextCommand, myConnection);

           myCommand.ExecuteNonQuery();

           myConnection.Close(); //Обязательно закрываем соединение!

           this.Sotr_Load(sender, e);

           MessageBox.Show("Данные удалены", "Удаление записи", MessageBoxButtons.OK, MessageBoxIcon.Information);

       }

   }

}

ПРИЛОЖЕНИЕ Б

Презентация


 

А также другие работы, которые могут Вас заинтересовать

64429. Покращення діяльності підприємств автосервісу на основі оптимізації виробничих процесів 157.5 KB
  Необхідність філософського аналізу ціннісних установок особистості в освітньому процесі полягає не тільки в тому аби втілити до досліджень філософії новий аспект а й тому що такий аналіз освіти перебуває...
64430. ЗАБЕЗПЕЧЕННЯ КОНКУРЕНТОСПРОМОЖНОСТІ ПРОДУКЦІЇ АПК УКРАЇНИ НА ЗОВНІШНІХ РИНКАХ 303 KB
  В сучасних умовах посилення глобалізації світових господарських зв’язків питання забезпечення конкурентоспроможності продукції АПК у сфері зовнішньої торгівлі належить до пріоритетних завдань національного економічного розвитку.
64431. НАУКОВЕ ОБҐРУНТУВАННЯ МЕТОДОЛОГIÏ ФОРМУВАННЯ ТА КОНТРОЛЮ ЯКОСТI ДИСПЕРСНИХ СИСТЕМ ПРОДУКТIВ ПЕРЕРОБЛЕННЯ ПЛОДIВ ТА ОВОЧIВ 372 KB
  Окисленi форми речовин редокссистеми морквяного соку Вiдновленi форми речовин редокссистеми морквяного соку Окисленi форми речовин редокссистеми капустяного соку Вiдновленi форми речовин редокссистеми капустяного соку...
64432. ПРАВОВИЙ СТАТУС СУБ’ЄКТІВ АДМІНІСТРАТИВНОГО СУДОЧИНСТВА 134 KB
  Теорія та практика адміністративного судочинства надають особливого значення важливому елементу структури адміністративнопроцесуальних відносин суб’єктам які згідно із Законом мають статус учасників судового процесу.
64433. УДОСКОНАЛЕННЯ ТЕХНОЛОГІЇ МІКРОДУГОВОГО ОКСИДУВАННЯ СПЛАВІВ АЛЮМІНІЮ У ЛУЖНИХ СЕРЕДОВИЩАХ 549 KB
  Поширене застосування алюмінію і його сплавів як сучасних конструкційних матеріалів та носіїв для активних систем різноманітного призначення обумовлено особливостями їх фізикомеханічних та хімічних властивостей.
64434. СТАНОВЛЕННЯ БІПОЛЯРНОСТІ СВІТОВОГО ВАЛЮТНОГО РИНКУ ЯК ФАКТОР ВАЛЮТНОЇ ПОЛІТИКИ УКРАЇНИ 260 KB
  Зі створенням валютної системи в рамках Європейського Союзу та введенням в обіг спільної грошової одиниці в межах світової економіки виникає принципово нова система валютних відносин що базується на функціональній взаємодії двох основних...
64435. АВТОМАТИЗАЦІЯ СИНТЕЗУ СХЕМНИХ МАКРОМОДЕЛЕЙ КОМПОНЕНТІВ, ЩО ОПИСУЮТЬСЯ СИСТЕМАМИ ДИФЕРЕНЦІАЛЬНИХ РІВНЯНЬ 868 KB
  Для досягнення поставленої мети було необхідно розв’язати такі задачі: проаналізувати існуючі методи та засоби моделювання систем з компонентами різної фізичної природи; розробити методи побудови схемних макромоделей компонентів що описуються системами диференціальних рівнянь різних типів...
64436. ФІНАНСОВЕ ЗАБЕЗПЕЧЕННЯ ДІЯЛЬНОСТІ ВИЩОГО НАВЧАЛЬНОГО ЗАКЛАДУ 322.5 KB
  Основою ефективної діяльності вищого навчального закладу що функціонує на ринку освітніх послуг є достатнє та стабільне фінансове забезпечення. Вирішення цієї проблеми на мікрорівні стає можливим за умов ефективного управління фінансовим...
64437. ОБҐРУНТУВАННЯ ПАРАМЕТРІВ РОБОЧИХ ОРГАНІВ МАШИН ДЛЯ ПОВЕРХНЕВОГО ВНЕСЕННЯ САПРОПЕЛІВ 264.5 KB
  Тому одним із актуальних завдань сільськогосподарського виробництва є покращення родючості ґрунтів за рахунок якісного поверхневого внесення сапропелів як органічних добрив що потребує обґрунтування конструктивних технологічних і кінематичних параметрів робочих органів...