Технология ввода данных таксационных описаний для картографического раздела официального сайта ГПБЗ 'Центральносибирский'

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

Технология ввода данных таксационных описаний для картографического раздела официального сайта ГПБЗ 'Центральносибирский'














Тема выпускной квалификационной работы: технология ввода данных таксационных описаний для картографического раздела официального сайта ГПБЗ «Центральносибирский».

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

. Разработка структуры хранения данных таксационных описаний

.1 Выделение сущностей для создания структуры хранения данных

.2 Вывод

. Обзор и выбор технологий ввода данных таксационных описаний

.1 Ручной ввод

.2 Автоматический ввод.

.3 Полуавтоматический ввод

.4 Выбор технологии ввода данных таксационных описаний

.5 Вывод

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

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

.2 Реализация комплекса программных средств

.3 Вывод

. Экономическая часть

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

.1.1 Расходы на оплату труда

.1.2 Материальные затраты

.1.3 Амортизация оборудования

.1.4 Прочее расходы

.2 Выводы

. Безопасность и экологичность проекта

.1 Безопасность геоинформационной системы

.1 Идентификация опасностей на рабочих местах

.2 Мероприятия по обеспечению безопасных условий труда

.2.1 Безопасность исходных материалов

.2.2 Обеспечение благоприятного светового климата

.2.3 Обеспечение благоприятных микроклиматических условий

.2.4 Защита от шума и вибрации

.2.5 Электробезопасность

.2.6 Техническая эстетика и эргономика

.2.7 Режим труда и отдыха

.2.8 Требования к профессиональному отбору операторов

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

.3 Санитарно-бытовое обеспечение

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

.5 Безопасность в чрезвычайных ситуациях

.6 Экологическая безопасность геоинформационной системы

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

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

.7 Выводы

ЗАКЛЮЧЕНИЕ

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

ПРИЛОЖЕНИЕ А

ВВЕДЕНИЕ


Государственный природный биосферный заповедник «Центральносибирский» (ГПБЗ «Центральносибирский») расположен в южной части Туруханского района Красноярского края и части Эвенкийского района. Площадь заповедника составляет 972017 га.

Основная цель его организации - сохранение и изучение разнообразных наземных и водных природных комплексов среднетаежной Сибири в ее центральной части, ландшафтов поймы и долины Енисея, самой реки и ее притоков. Это единственный заповедник в России, где на большом расстоянии (60 км) заповеданы оба берега одной из великих рек Евразии. Приенисейская часть заповедника охватывает особую географическую область в пределах древней долины Енисея. На левобережье развиты равнинные ландшафты западносибирского типа. Заповедник начал сотрудничать с Сибирским федеральным университетом в 2003 году. За это время был создан официальный сайт заповедника. На сайте реализован картографический раздел, содержащий в себе векторную карту выделов лесничеств, находящихся на территории заповедника. На сегодняшний день наполненность данной карты информацией о таксации очень мала. Это связано с тем, что на данный момент таксационные описания существуют в виде книг с информацией о кварталах и выделах. Проблема перевода данных в цифровой вид стоит достаточно давно. Необходимость перевода данных таксационных описаний в цифровой вид обусловлена не только необходимостью создания базы данных информации о лесах заповедника, а также тем, что наличие такого рода данных в цифровом виде значительно упрощает процесс проведения геоинформационного анализа любого характера, связанного с лесом на территории заповедника.

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

1. Разработка структуры хранения данных таксационных описаний


Таксация леса - учёт леса, его всесторонняя материальная оценка и составление технической характеристики (таксационного описания и плана) насаждений, определение их возраста, запаса (количества) древесины, прироста и объёма отдельных деревьев и их частей. Объект учёта в лесном хозяйстве - обширные лесные массивы, разделяемые на участки. Таксация леса проводят с использованием авиации и наземными средствами. Наземная таксация леса основана на перечёте деревьев, определении их таксационных показателей с помощью инструментов и приборов или на визуально-глазомерном обследовании лесов. Чаще пользуются комбинированным методом таксации леса. При таксации множеств деревьев их подразделяют на части, имеющие разное применение в народном хозяйстве. В Росси Таксация леса проводится периодически при лесоустройстве. Материалы таксации леса служат основой для инвентаризации леса, составления проектов организации и ведения лесного хозяйства.

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

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

Рисунок 1.1 - Фрагмент типовой страницы книги таксационного описания

1.1 Выделение сущностей для создания структуры хранения данных


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

-       Номер;

-       Площадь

-       ТУМ

Помимо этих параметров выдел может содержать в себе информацию о болоте, если выдел представлен болтом:

-       Тип болота

-       Направление склона выдела

-       Угол склона

Информацию о дороге или ручье, если выдел представлен ими:

-       Ширина

-       Длина

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

-       Номер яруса

-       Высота яруса

-       Полнота яруса

-       Запасы леса на гектар

-       Запасы на выдел

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

-       Наименование типа деревьев

-       Возраст

-       Высота

-       Диаметр

-       Запас по породе

-       Класс тов

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

-       Класс возраста

-       Группа возраста

-       Бонитет

-       Тип леса

-       Информация о подросте

-       Информация о подлеске

-       Направление склона

-       Угол склона

Информация о подросте состоит из следующих параметров:

-       Формула типов леса, составляющих подрост

-       Возраст

-       Высота

-       Диаметр

-       Количество т.шт./га

Информация о подлеске содержит в себе тип подлеска и его густоту.

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

Таблица 1.1 сущности и их параметры в структуре данных

Название сущности

Список параметров сущности

Река

- ширина - длина

Дорога

- ширина - длина

Прочие трассы

- ширина - длина

Болото

- тип болота

Элемент леса

- тип дерева - возраст - высота - диаметр - запас по породе - класс тов

Ярус

- номер - высота - список элементов леса - полнота - запас на гектар - запас на выдел

Подрост

- формула элементов леса - возраст - высота - диаметр - количество

Подлесок

- тип леса - густота

Выдел

- номер - площадь - список ярусов - класс возраста - группа возраста - тип леса - ТУМ - подрост - подлесок

Квартал

- номер - список выделов


Некоторые из полей необязательны для заполнения (могут быть нулевыми).

1.2 Вывод


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

2. Обзор и выбор технологий ввода данных таксационных описаний


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

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

Существуют три метода перевода данных в цифровой вид:

-       Ручной;

-       Автоматический;

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

2.1 Ручной ввод


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

Достоинства:

-       Отсутствие дополнительных средств для ввода.

Недостатки:

-       Прямой доступ оператора к структуре данных;

-       Большая вероятность ошибок при вводе данных;

-       Значительный объем времени для ввода.

2.2 Автоматический ввод


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

Достоинства:

-       Минимальный объем работы оператора.

Недостатки:

-       Высокая цена программных средств для реализации метода;

-       Высокая требовательность к качеству вводимого материала;

-       Высокая вероятность ошибок в нестандартных ситуациях.

2.3 Полуавтоматический ввод


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

Достоинства:

-       Относительная дешевизна программных средств;

-       Упрощение работы оператора по вводу данных;

-       Отсутствие прямого доступа оператора к структуре данных;

-       Предупреждение ошибок ввода данных оператором.

Недостатки:

-       Необходимость разработки программных средств для ввода данных.

2.4 Выбор технологии ввода данных таксационных описаний


Изначально было принято решение предпринять попытку использования метода автоматического ввода данных. Так как исходные данные таксационных описаний представлены в виде книг формата А3 возникла необходимость в программном обеспечении, позволяющем распознавать печатный текст с последующим сохранением его в формат, подходящий для преобразования результатов в соответствии со структурой хранения данных. Одной из лучших программ на рынке OCR (optical character recognition) решений является программный пакет FineReader фирмы ABBYY. Данное решение предоставляет обширный набор функций по оптическому распознаванию символов и дальнейшей работой с распознанным текстом. За время пребывания на рынке данный программный продукт показал себя качественным продуктом, качественно решающем задачи, характерные для данного класса продуктов. Для осуществления поставленной задачи в данном программном продукте необходимо было выполнить следующие шаги:

-       Отсканировать постранично книги с исходными данными таксационных описаний;

-       Создать шаблон расположения областей распознавания на изображении;

-       Создать алфавит, содержащий символы, используемые в описаниях, для упрощения процесса распознавания;

-       Провести «обучение» программы при распознавании символов;

-       Создать шаблон для сохранения распознанных данных.

При выполнении данных шагов возникли следующие проблемы:

-       Выяснилось, что минимальное необходимое разрешение при сканировании должно составлять 600 dpi;

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

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

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

-       Качество печати исходных данных таксационных описаний не позволяет максимально точно «обучить» программу распознаванию определенных символов. Например, символы «0» и «О», «3» и «З» являются неразличимыми для программы;

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

-       Сохраненный после распознавания файл является трудночитаемым.

Суммарное время ввода одной страницы из книги, содержащей исходные данные таксационных описаний равняется приблизительно 25 минутам из которых: 3 минуты на сканирование и сохранение одной страницы, 5-7 минут на предварительную обработку изображения, полученного после сканирования, 3-5 минут на загрузку изображения в программу и редактирование шаблона распознавания областей, 3-5 минут на распознавание одной страницы данных, 5-7 минут для проверки и редактирования данных после автоматического распознавания, 2 минуты на сохранение распознанных данных.

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

Рисунок 2.1 - Несовпадение положения шаблона распознавания с текстом

Рисунок 2.2 - Результат распознавания требующий обработки

 

.5 Вывод


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

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


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

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

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

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


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

-       Необходимость четкого соблюдения порядка ввода данных оператором;

-       Облегчение ввода данных оператором;

-       Максимальное сокращение времени ввода данных;

-       Предотвращение ошибок оператора при вводе данных;

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

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

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

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

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

Введенные данные должны сохраняться в легочитаемый и конвертируемый формат. Для данного проекта форматом для сохранения введенных данных был выбран формат XML - язык разметки, фактически представляющий собой свод общих синтаксических правил. XML - текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощённым подмножеством языка SGML. Этот выбор был сделан из соображений того, что:

-       XML - это самодокументируемый формат, который описывает структуру и имена полей также как и значения полей;

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

-       XML - формат, основанный на международных стандартах;

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

3.2 Реализация комплекса программных средств


Для реализации комплекса программных средств для ввода данных таксационных описаний была выбрана среда разработки Microsoft Visual Studio C# Express Edition. Данная среда разработки представляет из себя гибкий инструмент для создания различных приложений и содержит усовершенствованные средства разработки, отладчики, функции работы с базами данных и новые возможности для создания современных приложений на разных платформах. Также Visual Studio C# Express Edition содержит новые средства разработки, облегчающие создание подключаемых приложений на самых современных платформах, включая веб-приложения, приложения для Windows Vista, Office 2007, SQL Server 2008 и Windows Server 2008. В области веб ASP.NET AJAX и другие новые технологии Visual Studio 2008 позволят быстро создавать высокоэффективные интерактивные веб-интерфейсы.

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

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

-       TextBox - поле для ввода текстовой информации;

-       ComboBox - поле с выпадающим списком значений, которые можно выбрать;

-       Form - форма на которой располагаются все компоненты управления;

-       Panel - панель для размещения отдельных компонентов управления;

-       Label - подпись, поясняющая дополнительные параметры.

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

Рисунок 3.1 - Интерфейс программы в начале работы.

Рисунок 3.2 - Схожесть интерфейса программы и вида исходных данных

Рисунок 3.3 - Структура XML файла, полученного в результате работы программы

На рисунках 3.1 и 3.2 представлен интерфейс программы в начале работы и в сравнении с листом с исходными данными. На рисунке 3.3 представлена структура XML файла, полученного в результате работы программы.

 

3.3 Вывод


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

4. Экономическая часть


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

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

Таблица 4.1 - План выполнения работ

Вид работ

Исполнитель (квалификация)

Время разработки (чел/час)

затраты машинного времени(маш/час)

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

Инженер - программист 10 разряда

5


Разработка технологии решения


120

120

Выбор программных средств


10

10

Анализ исходных данных


60

60

Разработка структуры данных


50

50

Написание программного комплекса


260

260

Отладка


100

100

Написание технической документации


50

50

Итого

655

650

 

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


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

Структура затрат будет иметь следующий вид:

) Расходы на оплату труда

.1) тарифная заработная плата;

.2) основная заработная плата;

.3) дополнительная заработная плата.

) Материальные затраты

.1) стоимость материалов и покупных изделий;

.2) стоимость расходуемой электроэнергии;

.3) затраты на использование прикладных программ.

) Амортизация оборудования

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

) Прочее

.1) единый социальный налог;

.2) выплаты на социальное страхование от несчастного случая;

.3) затраты по использованию Интернет;

.4) расходы на управление и хозяйственное обслуживание.

4.1.1 Расходы на оплату труда

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

Дмес.окл.i=T*Ki,                                      (4.1)

где Т - тарифная ставка первого разряда (установлена 3278 руб.);

Ki - тарифный коэффициент специалиста i-гo разряда.

Тарифная ставка и тарифный коэффициент сотрудников предприятий бюджетной сферы устанавливаются на основе «Единой тарифной сетки по оплате труда работников организаций бюджетной сферы».

Разработчик данного проекта - инженер 10 разряда.

Следовательно, должностной месячный оклад разработчика проекта по формуле (4.1) составляет:

Дмес.окл.i = 3278 * 2.047 = 6710.066 руб.

На статью «Основная заработная плата» относятся следующие выплаты:

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

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

-       выплаты, обусловленные районным регулированием оплаты труда;

-       премии за непрерывный стаж работы.

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

Стоимость одного человеко-часа работы для сотрудника, принимавшего участие в работе, определяется по формуле:

Счел/час.i = Дмес.окл.i/Чi,                                          (4.2)

где  Дмес.окл.i - должностной месячный оклад i-го сотрудника, руб.;

Чi - количество часов работы в месяц сотрудника.

В соответствии с календарем времени и режимами работы исполнителя, количество рабочих часов в месяц составляет 160. Таким образом, стоимость одного человека-часа инженера-исследователя 10 разряда по формуле (4.2) составляет:

Счел/час.i = 6710.066 /160 = 41.93 руб.

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

ЗПосн.i = Счел/час.i*Чф*[1+(Сн/100)+(Рк/100)],                           (4.3)

где  Счел/час.i - стоимость одного человеко-часа работы сотрудника, руб.;

Чф - количество часов работы исполнителя (по плану работ);

Сн - северная надбавка, в процентах;

Рк - районный коэффициент, в процентах.

Согласно действующего Постановления о районном коэффициенте, действующего на территории крайнего севера и приравненных к ним районов, значение районного коэффициента для города Красноярска принимается равным 20%, а значение северной надбавки - 30%.

Таким образом, суммарное значение основной заработной платы по формуле (4.3) составляет:

ЗПосн.i = 41.93 * 655 * [1 + (30/100) + (20/100)] = 41204.00 руб.

Результаты расчета расходов на оплату труда приведены в таблице 4.2.

Таблица 4.2 - Расходы на основную заработную плату

Категория

Стоимость одного чел.-часа, руб

Количество часов работы, ч

Северная надбавка, руб

Районный коэф., руб

Сумма основной з/п, руб

Инженер-исследователь

41.93

655

13734.67

8240.80

41204.00

Итого:

41204.00


На статью «Дополнительная заработная плата» относятся выплаты, предусмотренные законодательством за непроработанное время:

- компенсация за неиспользованный отпуск;

-       оплата очередного отпуска;

-       оплата времени, связанного с прохождением медицинского освидетельствования;

-       выполнение государственных и общественных обязанностей;

-       выплата за выслугу лет.

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

ЗПдп=ЗПосн*Пд/100,                                        (4.4)

где  ЗПосн - основная заработная плата, руб.;

Пд - размер дополнительной зарплаты в процентах от основной.

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

Следовательно, дополнительная заработная плата, рассчитанная по формуле (4.4), составляет:

ЗПдп = 41204.00 * 20/100 = 8240.80 руб.

Таким образом, полные расходы на оплату труда составляют:

Ропл.тр = 41204.00 + 8240.80 = 49444.80 руб.

4.1.2 Материальные затраты

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

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

- стоимость DVD-дисков для записи снимков;

-       стоимость картриджа для принтера;

-       бумага для печати и др.

Стоимость расходуемых материалов сведена в таблице 4.3.

Таблица 4.3 - Стоимость расходуемых материалов

Наименование материала

Количество, шт.

Стоимость за одну штуку, руб.

Суммарная стоимость, руб.

DVD-диски

1

15

15

Картридж для лазерного принтера

1

1500

1500

Стоимость пачки бумаги формата А4

1

105

105

Итого:

1620


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

Nсум=,                                                       (4.5)

где  Ni - установленная мощность i-го вида оборудования, Вт/ч.

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

§ монитор - 35 Вт/ч;

§  системный блок - 250 Вт/ч;

Nсум = 35 + 250 = 285 Вт/ч.

Время работы на компьютере составляет 650 часов.

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

Э=Nсум*t,                                                 (4.6)

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

По формуле (4.6) получаем:

Э = 285 * 650 = 185.25 кВт/ч.

Стоимость потребленной энергии определяется по формуле:

Сэ=Э*Цэ,                                                  (4.7)

где  Э - общее количество потребленной энергии, кВт/ч;

Цэ - тариф на энергию (тариф на дату выполнения проекта). В настоящее время тариф на электроэнергию составляет 1.58 руб. за 1 кВт/час. С учетом НДС=18%, получаем стоимость 1 кВт/час энергии:

Цэ = 1.58*0.18 + 1.58 = 1.86 руб.

Таким образом, стоимость потребленной энергии по формуле (4.7) составляет:

Сэ = 185.25 * 1.86 = 344.57 руб.

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

Спп=(Ст/Тэф)*t,                                       (4.8)

где  Ст - стоимость прикладных программ, руб.;

Тэф - время эффективного использования, час;- количество часов использования ПО при выполнении работ, маш/час.

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

§  Microsoft Windows XP Professional - 10 000.00 рублей;т = 10 000.00 руб;

Тэф = 1840 часов ∙ 3 года = 5520 ч.;

t = 650 маш/час.

По формуле (4.8) получаем:

Спп = (Ст/Тэф) ∙ t = (10 000.00/5520) ∙ 650 = 1177.54 руб.;

§  Microsoft Office 2007- 12 000.00 рублей;т = 12 000.00 руб;

Тэф = 1840 часов ∙ 3 года = 5520 ч.;

t = 300 маш/час.

По формуле (4.8) получаем:

Спп = (Ст/Тэф) ∙ t = (12 000.00/5520) ∙ 300 = 652.20 руб.;

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

Страсх.мат.= 1620 + 812.26 + 1177.54 + 652.20 = 4262 руб.

4.1.3 Амортизация оборудования

Амортизационные отчисления, включаемые в затраты, составляют:

Ам.ф = (Ам.акт./Tэф)*tфакт,                                       (4.9)

где  Ам.акт. - годовые амортизационные отчисления по оборудованию, руб.;

Тэф - эффективное рабочее время годовое, час;факт - затраты машинного времени на выполнение работ с использованием ПО, маш/час.

Ам.акт = Стакт*На/100,                                              (4.10)

где  Стакт - стоимость оборудования, руб.;

На - норма амортизационных отчислений, в процентах.

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

На = 100/Тп.о,                                                    (4.11)

где  Тп.о - срок полезного использования по классификатору.

Срок полезного использования оборудования равен двум-трем годам. В данном случае норма амортизационных отчислений по формуле (4.11) составляет:

На = 100/2.5 = 40%

С учетом стоимости используемого оборудования (см. таблица 4.4), амортизационные отчисления, рассчитанные по формуле (4.10), составляют:

Ам.акт = 34000 * 40/100 = 13600 руб./год.

Таблица 4.4 - Стоимость используемого оборудования

Наименование оборудования

Стоимость, руб.

Ноутбук

32000

Мышь

2000

Итого:

34000


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

Ам.ф = [ 13600/(160 * 12)] * 650 = 4604.17 руб.

 

4.1.4 Прочее расходы

«Единый социальный налог» (далее ЕСН) учитывает следующие обязательные отчисления по установленным законодательным нормам:

- фонд социального страхования (2.9%);

-       пенсионный фонд (20.0%);

-       фонд медицинского страхования (3.1 %);

Итого ЕСН равен 26.0% от оплаты труда. Размер отчислений определяется по формуле:

ЕСН = (ЗПосн + ЗПдп)*(Фб + Мс + Сс)/100,                      (4.12)

где  ЗПосн - основная заработная плата сотрудника, руб.;

ЗЦдп - дополнительная заработная плата сотрудника, руб.;

Фб - размер отчислений в федеральный бюджет, в процентах;

Мс - размер отчислений на медицинское страхование, в процентах;

Сс - размер отчислений на социальное страхование, в процентах.

Итого сумма отчислений на ЕСН по формуле (4.12) составит:

ЕСН = (41204.00 + 8240.80) * (20.0 + 2.9 + 3.1)/100 = 12855.65 руб.

Выплаты на социальное страхование от несчастного случая рассчитываются по формуле:

Нн.с = (ЗПосн + ЗПдп)*Сн.с/100,                              (4.13)

где  Нн.с - выплаты на социальное страхование от несчастного случая, руб.;

Сн.с - ставка по выплатам на социальное страхование от несчастного случая, в процентах.

В соответствии с Федеральным Законом РФ «О страховых тарифах на обязательное социальное страхование от несчастных случаев на производстве и профессиональных заболеваний на 2001 год» от 12 февраля 2001 года № 17-ФЗ данная ставка принимается в диапазоне от 0.2 до 8.5%.

На данном предприятии она составляет 0.2%.

Таким образом, выплаты на социальное страхование от несчастного случая, рассчитанные по формуле (4.13), составляют:

Нн.с = (41204.00 + 8240.80) * 0.2/100 = 98.89 руб.

Затраты на услуги информационной системы Интернет могут включать:

- новые программные продукты, обновления к старым, уже имеющимся программам;

-       документация по программным продуктам;

-       другая информация применимая в работе.

В ходе выполнения данного проекта неоднократно были использованы услуги всемирной сети Интернет. В общей сложности было потрачено 900 Мб Интернет-трафика. Стоимость 1 Мб Интернет-трафика составляет 1.00 руб.

Следовательно, затраты по использованию сети Интернет составляют:

СInternet = 1.00*900=900 руб.

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

- отчисления во внебюджетные фонды аппарата управления и хозяйственных служб;

-       затраты на содержание, ремонт зданий, сооружений, оборудования и инвентаря;

-       расходы по охране труда, научно-технической информации;

-       отчисления в дорожные фонды.

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

Нрасх = ЗПосн*Нн.р./100,                                          (4.14)

где  ЗПосн - основная заработная плата, руб.;

Нн.р - норматив накладных расходов, в процентах.

Таким образом, в соответствии с формулой (5.14) величина накладных рас ходов равна:

Нрасх = 51825.48 * 80/100 = 39555.84 руб.

В итоге сумма прочих расходов составляет:

Рпр = 12855.65 + 98.89 + 900.00 + 39555.84 = 52510.38 руб.

На основании полученных данных была составлена смета затрат на выполнение проведенных работ, представленная в виде таблицы 4.5.

Таблица 4.5 - Смета затрат

Наименование затрат

Сумма, руб.

Расходы на оплату труда

49444.80

Материальные затраты

4262

Амортизация оборудования

13600

Прочие расходы

52510.38

Итого:

119817.20

 

4.2 Выводы


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

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

5. Безопасность и экологичность проекта


5.1 Безопасность геоинформационной системы


Согласно требованиям ГОСТ 12.3.002-75 [2] безопасность производственных процессов на предприятиях обеспечивают:

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

-       выбором производственных помещений и площадок;

-       выбором исходных материалов и производственного оборудования;

-       размещением оборудования и организацией рабочих мест;

-       распределением функций между человеком и оборудованием в целях ограничения тяжести труда;

-       выбором способа хранения и транспортирования исходных материалов и готовой продукции;

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

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

хранение данное ввод таксационный

5.2 Идентификация опасностей на рабочих местах


Оператор персонального компьютера (ПК) подвержен влиянию более 30 опасных и вредных производственных факторов (ОПФ и ВПФ): монотонность работы, перенапряжение анализаторов, умственное перенапряжение, эмоциональные перегрузки, повышенный уровень пыли, повышенный уровень шума, статическое электричество, электромагнитное излучение, ионизирующее излучение, недостаточная освещенность рабочей зоны, электрическое напряжение, электрический ток, падающие предметы и др. Характеристики некоторых из них и их воздействие на человека приведены в таблице 5.1.

Для снижения воздействия ОПФ И ВПФ используют следующие

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

Таблица 5.1 Опасные и вредные производственные факторы

ОПФ и ВПФ

Характеристика (вид воздействия)

Продолжительность воздействия

Монотонность работы

Утомляемость

Циклическая

Перенапряжение анализатора

Утомляемость, заболевание

Постоянная

Умственное перенапряжение

Утомляемость

Циклическая

Повышенное содержание пыли

Заболевание

Постоянная

Повышенный уровень шума

Утомляемость, заболевание

Постоянная

Статическое электричество

Травматизм

Кратковременное

Электромагнитное излучение

Заболевания различной тяжести

Постоянная

Электрическое напряжение

Травматизм

Кратковременное

Ионизирующее излучение

Заболевания различной тяжести

Постоянная

Недостаточная освещенность

Утомляемость, заболевание

Постоянная


Из данных таблицы 5.1, следует, что воздействие ОПФ и ВПФ на человека крайне неблагоприятно и приводит к различным заболеваниям.

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


5.2.1 Безопасность исходных материалов

В соответствии с требованиями ГОСТ 12.2.049-80 [3], ГОСТ 12.2.032-02 [4], ГОСТ 12.2.06-81 [5] все материалы и оборудование должны иметь сертификат качества и коэффициент безопасности Kтб=l.

В конструкцию оборудования (ПК, принтер, сканер) и носителей информации (CD-диски, дискеты, бумажные документы) входит около 20 наименований материалов: пластмасса, резина, железо, поролон, стекло, дерево, серебро, медь, кремний и т.д., которые в исходном состоянии и нормальном режиме эксплуатации помещений не представляют опасности.

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

В таблице 5.2 приведены некоторые материалы и вещества, входящие в конструкцию оборудования.

Таблица 5.2 - Материалы, входящие в конструкцию оборудования и вещества и материалы, обращающихся в технологических процессах

Наименование материалов и веществ

Класс опасности

Вид воздействия

В конструкции оборудования

Пластмасса

4

Малоопасное

Резина

4

Малоопасное

Железо

3

Умеренноопасное

Серебро

2

Высокоопасное

Медь

4

Малоопасное

Алюминий

4

Малоопасное

Стекло

3

Умеренноопасное

Кремний

4

Малоопасное

Дерево

4

Малоопасное

Магнитный носитель

4

Малоопасное

Бумага

4

Малоопасное

Поролон

4

Малоопасное

Обращающиеся в технологических процессах

Пластмасса

4

Малоопасное

Бумага

4

Малоопасное

Изопрен

4

Малоопасное

Ацетон

4

Малоопасное

Пыль

4

Малоопасное

 

5.2.2 Обеспечение благоприятного светового климата

Нормирование цветосветового климата производится в соответствии с положениями СН181-70 [21], СНиП 23-05-03 [23] и зависит от характера производимых работ. Согласно этим нормам работа оператора относится к высокой и средней точности - 3, 4 разряда. Оптимальная освещенность в этом случае, согласно [23], должна быть от 300 до 500 лк.

Исходя из условий зрительной работы, в соответствии с [23] и с учетом [21], оптимальным будет общее равномерное искусственное освещение и естественное освещение. Применение одного местного освещения недопустимо.

Следует обеспечить коэффициент естественного бокового освещения (КЕО) для используемого помещения в интервале от 1.2 до 1.5%, при комбинированной освещенности составляющей 750 лк и боковой освещенности 300 лк и показатель ослепленности для источников искусственного освещения не превышающий 20.

Согласно СанПиН 2.2.2./2.4.1340-03 [29] наиболее приемлемыми для данного помещения являются люминесцентные лампы ЛБ (белого света) и ЛТБ (тепло-белого света) мощностью 40, 60 и 80 Вт. Светильник преимущественно прямого потока, со степенью защиты от пыли JP1 (открытые) или JP2 (защищенные). Тип светильника: ЛПО13-2х40/Б01 или ЛСП13-2x40-06.

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

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

Излучение монитора ПК - снижение этого фактора до безопасного уровня устанавливается в соответствии с положениями [29]. Требования к монитору: яркость знака от 35 до 120 д/м2, внешняя освещенность экрана от 100 до 250 лк, угловой размер знака от 16 до 60 угл.мин.

5.2.3 Обеспечение благоприятных микроклиматических условий

Работа оператора ПК предусматривает как высокое умственное напряжение, так и зрительное напряжение, связанное с отслеживанием и анализом информации на экране терминала. Исходя из требований СанПин 2.2.4.548-96 [30] работа оператора ПК относится к 1-ой категории работ - легкой.

В рабочей зоне рекомендуется соблюдать нормы температуры, относительной влажности и скорости движения воздуха, указанные в ГОСТ 12.1.005-88 [6] и [30] с учетом [29].

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

- общеобменную вентиляцию в соответствии с требованиями СНиП41-01-03 [24], безопасность которой определяется по ГОСТ 12.4.021-75 [36];

-       использование кондиционеров в соответствии с требованиями [24];

-       дежурное отопление в холодный период года, поддерживающее температуру воздуха в интервале от 15 до 16°С, и разность температур на уровне пола и на уровне головы сидящего оператора не должна превышать 3°С;

-       обеспечение подачи воздуха в помещение на одного работающего не менее 20м3/ч, но не более 30 м3 /ч.

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

Необходимо обеспечить уровни ионизации воздуха в помещении в соответствии с требованиями [29].

 

5.2.4 Защита от шума и вибрации

Источниками шума являются:

- механические, обусловленные колебаниями деталей машин и их взаимным перемещением (работа печатающих устройств, сканеров, работа вентиляторов на блоке питания и процессоре);

-       аэродинамические, возникающие в упругих конструкциях, в газах или жидкостях (работа кондиционеров);

-       электромагнитные, возникающие при преобразовании электроэнергии.

Допустимые уровни звукового давления и уровня звука на рабочих местах операторов ПК устанавливаются в соответствии с ГОСТ положениями 12.1.003-89 [8] и СНиП 2.2.4/2.1.8.562-96 [25], с учетом [29]. Уровень шумов на рабочем месте пользователя ПК считается допустимым 50 дБА, а в помещениях с шумными агрегатами вычислительных систем (принтеры и т.п.) не превышает 80 дБА.

Уровни звукового давления для комнаты пользователя по [30] устанавливаются в зависимости от октавных полос со среднегеометрическими частотами и варьируются от 71 дБА при 63 Гц и 45 дБА при 1000 Гц.

В соответствии с требованиями [8], защиту от шума, создаваемого на рабочих местах внутренними источниками, а также, проникающего извне, следует предусмотреть за счет:

- уменьшения шума в источнике;

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

-       рациональной планировки помещения;

-       рациональной организации режима труда и отдыха;

-       акустической обработки помещения.

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

Акустическая обработка помещения в соответствии с требованиями [29] может заключаться в отделке помещения звукопоглощающими материалами с максимальным уровнем звукопоглощения в области частот от 63 до 8000 Гц. Дополнительным звукопоглощением служат однотонные занавеси из плотной ткани. Ширина занавеси должна быть в два раза больше ширины окна. При работе с ПК вибрация не превышает допустимых норм.

Нормирование вибрации осуществляется в соответствии с требованиями СН2.2.4/2.1.8.566 [8]. Источниками вибрации являются: проходящие мимо рабочих помещений транспортные средства; работающие вычислительные машины, принтеры, сканеры, светильники с лампами дневного света и т.д.

Для уменьшения уровня вибрации рекомендуется применять:

- виброизоляцию, виброгашение и вибродемпфирование;

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

-       перерывы продолжительностью от 20 до 30 минут через один или два часа после начала работы и через два часа после обеденного перерыва (продолжительностью 40 мин.) для проведения активного отдыха, комплекса производственной гимнастики и физиотерапевтических процедур;

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

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

5.2.5 Электробезопасность

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

Согласно ПУЭ-01 [31] помещение, в котором работает пользователь, относится к помещениям с повышенной опасностью. Сеть электропитания относится к 1-ой группе - до 1000 В, тип проводки - закрытая кабельная. Питание ПК осуществляется от трехфазной сети частотой 50 Гц, напряжением 380/220 В.

Для обеспечения электробезопасности в соответствии с [31] и ГОСТ 12.1.019-79 [9] следует предусмотреть следующие защитные меры:

- электрическое разделение сетей;

-       контроль и профилактика повреждений изоляции;

-       компенсацию емкостной составляющей тока замыкания на землю;

-       обеспечение недоступности токоведущих частей;

-       защитное заземление с подключением к общей земляной шине здания в соответствии с требованиями ГОСТ 12.1.030-81 [10];

-       зануление в соответствие с требованиями [10];

-       двойную изоляцию;

-       выравнивание потенциалов;

-       защитное отключение по ГОСТ 12,4.155-85 [11];

-       закрытую проводку для питающих кабелей в соответствии с требованиями [10];

-       цветную сигнализацию опасных для жизни человека мест (красные предупредительные щиты и т.п.) по ГОСТ 12.4.026-01 [12];

-       использование общей и местной увлажняющей вентиляции для защиты от статического электричества по ГОСТ 12.1.018-86 [13].

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

В настоящее время используется два типа видеодисплейных терминалов: ЭЛТ- и ЖК-мониторы.

Основным элементом ЭЛТ-монитора является электронно-лучевая трубка, которая создает электрические и магнитные поля (ЭМП).

Электрическая и магнитная составляющая рассматриваются отдельно ввиду того, что расстояние от ЭЛТ-монитора до оператора меньше 3 м, а на этом расстоянии ЭМП еще не успевает сформироваться.

Уровень ЭМП в рабочей зоне нормируется ГОСТ 12.1.006-84 [14], ГОСТ 12.1.002-84 [15] и [29]. Согласно этим нормам, обеспечить ЭМП, такое, чтобы на расстоянии 0.5 м, в течение рабочего дня уровень ЭМП не превышал ни по одной из составляющих. Установить поверхностный электростатический потенциал не превышающий 500 В.

Для конструкции ЭЛТ-монитора необходимо обеспечить мощность экспозиционной дозы рентгеновского излучения в любой точке на расстоянии 0.05 м от экрана и корпуса монитора не более 7.74x10 А/кг, что соответствует эквивалентной дозе, равной 0.1 Мбэр/ч.

ЖК-мониторы формируют изображение посредством жидкокристаллической панели, у которой уровень электромагнитного излучения на несколько порядков ниже, чем у ЭЛТ-мониторов.

Для защиты пользователя от излучения в соответствии с [14] следует предусмотреть:

- уменьшение напряженности и плотности потока энергии ЭМП посредством использования согласованных нагрузок и поглотителей мощности;

-       экранирование рабочего места;

-       удаление рабочего места от источника ЭМП на 0.5 м;

-       рациональное размещение оборудования, излучающего ЭМП;

-       установление рациональных режимов работы оборудования и обслуживающего персонала;

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

-       использование защитных экранов, полностью или частично поглощающих потоки энергии ЭМП или рассеивающих ее.

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

 

5.2.6 Техническая эстетика и эргономика

Основные требования к организации и оборудованию рабочего места отражены в требованиях ГОСТ Р 50948-96 [16], ГОСТ Р 50923-96 [17] и [4], а также [29].

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

При выборе сидения и рабочей поверхности необходимо руководствоваться СНиП 21-01-02 [26] и [5].

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

- регулировку высоты поверхности сиденья в интервале от 400 до 550 мм и углов наклона вперед до 15° и назад до 5°;

-       высоту опорной поверхности спинки 300 плюс минус 20 мм, ширину - не менее 380 мм и радиус кривизны горизонтальной плоскости - 400 мм;

-       угол наклона спинки в вертикальной плоскости в интервале 0  30°;

-       регулировку расстояния спинки от переднего края сиденья в интервале от 260 до 400 мм;

-       стационарные или съемные подлокотники длиной не менее 250 мм и шириной от 50 до 70 мм;

-       регулировку подлокотников по высоте над сиденьем в интервале 230 плюс минус 30 мм и внутреннего расстояния между подлокотниками в интервале от 350 до 500 мм.

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

Высота рабочей поверхности стола для взрослых пользователей должна регулироваться в интервале от 680 до 800 мм, при отсутствии такой возможности высота рабочей поверхности стола должна составлять 725 мм. Рабочий стол должен иметь пространство для ног высотой не менее 600 мм, шириной - не менее 500 мм, глубиной на уровне колен - не менее 450 мм и на уровне вытянутых ног - не менее 650 мм.

Рабочее место, в соответствии с [3], [5] и [17], должно быть оборудовано подставкой для ног, имеющей ширину не менее 300 мм, глубину не менее 400 мм, регулировку по высоте в интервале до 150 мм и по углу наклона опорной поверхности подставки до 20°. Поверхность подставки должна быть рифленой и иметь по переднему краю бортик высотой 10 мм.

Экран видеомонитора в соответствии с требованиями [29] следует располагать от глаз пользователя на оптимальном расстоянии от 600 до 700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов. На каждое рабочее место оператора рекомендуется выделять площадь не менее 6 м3 и объем не менее 20 м3 . Расстояние между ПК, расположенными один за другим, должно быть не менее 2 м и 1.2 м от стен.

 

5.2.7 Режим труда и отдыха

Режимы труда и отдыха оператора должны организовываться в зависимости от вида и категории трудовой деятельности. В соответствии с требованиями [29] деятельность оператора будет относиться к группе «В» - творческая работа в режиме диалога с ПК. Для этой группы категория тяжести работ устанавливается по суммарному времени непосредственной работы с ПК за рабочую смену, но не более шести часов.

Для обеспечения оптимальной работоспособности и сохранения здоровья

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

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

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

5.2.8 Требования к профессиональному отбору операторов

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

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

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

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

5.3 Санитарно-бытовое обеспечение


Для обеспечения нормальных условий труда в соответствии с требованиями СНиП 2.09.04-02 [27] и [23] необходимо иметь: умывальник, уборные, место для курения, шкаф для верхней одежды, отдельное помещение для приема пищи. При количестве персонала от 20 до 300 человек необходимо иметь буфет, более 300 человек - столовую.

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

В помещениях с мониторами ПК рекомендуется ежедневная уборка.

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


В соответствии с требованиями НПБ 105-03 [32], ФЗ № 123-2008 и с учетом [26], рабочее помещение оператора по категории пожарной опасности относится к категории «В». В качестве горючих материалов, находящихся в помещении оператора могут быть мебель, оконные рамы, двери, полы, канцелярские принадлежности, изоляция силовых и сигнальных кабелей, обмотка радиотехнических деталей.

Во избежание пожара систему электропитания по [26] предусматривается прокладывание через противопожарную стену и изолирование негорючими материалами. Для предотвращения распространения огня во время пожара с одной части здания на другую предусматривается устройство противопожарных преград. Для защиты от короткого замыкания применяются автоматические предохранители и автоматы тепловой защиты в соответствии с [11]. Для предотвращения и/или ликвидации пожара применяются автоматические установки пожаротушения, углекислотные огнетушители, а также другие меры безопасности в соответствии с НПБ 88-01 [36] и ГОСТ 12.1.033-83 [18].

Для вынужденной эвакуации людей из помещений предусматриваются в соответствии с [26] эвакуационные пути.

При проектировании новых и реконструкции старых помещений лабораторий соблюдаются мероприятия пожарной профилактики, в соответствии с СН 512-78 [22] и [26].

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

- организационные (инструктаж персонала, разработка плана эвакуации и т.д.);

-       технические (устройство не горючих перегородок);

-       режимные (курение в специальных местах);

-       эксплутационные (профилактические осмотры).

5.5 Безопасность в чрезвычайных ситуациях


В случае возникновения:

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

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

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

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

Для предотвращения возможности возникновения ЧС необходимо соблюдать элементарные правила охраны труда:

- выключать электрооборудование после завершения работы;

-       избегать попадания воды на электрические приборы и токоведущие части;

-       соблюдать правила пожарной безопасности предусмотренные ГОСТ 12.1.004-98 [19]и СНиП 31-03-01 [28];

-       проводить профилактические мероприятия.

5.6 Экологическая безопасность геоинформационной системы


Экологическая безопасность на объекте определяется двумя показателями:

- экологическая безопасность материалов, входящих в оборудование;

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

 

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

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

Характеристики некоторых исходных материалов, вид воздействия и нормы предельного содержания приведены таблице 5.3.

Таблица 5.3 - Воздействие исходных материалов на окружающую среду

Наименование материала

Класс опасности

Характер воздействия

Пластмасса

4

Малоопасное

Резина

4

Малоопасное

Железо

3

Умеренно опасное

Магнитный носитель

4

Серебро

2

Высокоопасное

Медь

4

Малоопасное

Алюминий

4

Малоопасное

Стекло

3

Умеренно опасное

Бумага

4

Малоопасное

Пыль

4

Малоопасное

Поролон

4

Малоопасное

Кремний

4

Малоопасное

Дерево

4

Малоопасное

Свинец

1

Чрезвычайно опасное

 

5.6.2 Экологическая безопасность материалов и веществ, обращающихся в технологических процессах

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

При работе в помещениях человек подвергается воздействию множества вредных веществ. Это такие вещества как: изопрен, диоксины, гербициды, летучие органические вещества (ЛОС), нитраты, которые включают более 250 наименований, формальдегид, тяжелый газ радон, углекислый газ, фреоны, трихлорэтан, сероводород, гидроксильные радикалы, ацетон, табачный дым, содержащий более 20 вредных веществ. Характеристики некоторых веществ, вид воздействия и нормы предельного содержания приведены таблице 5.4.

Таблица 5.4 - Вредные вещества производственных помещений

Наименование материалов и веществ

Класс опасности

Характер воздействия

ПДК в рабочей зоне, мг/м

Формальдегид

2

Высокоопасное

0.5

Фенол

2

Высокоопасное

0.3

Сероводород

2

Высокоопасное

10

Нитрат аммония

2

Высокоопасное

4

Этилен

3

Умеренное

100

Ацетон

4

Малоопасное

200

Углекислый газ (СО2)

4

Малоопасное

20

Неорганическая и органическая пыль

4

Малоопасное

6

Трихлорэтан

4

Малоопасное

20

Изопрен

4

Малоопасное

40


Среди приведенных химических элементов и соединений имеются опасные с точки зрения экологической безопасности и жизни (здоровья) человека. Но их концентрации достаточно малы и поэтому с экологической точки зрения согласно ГОСТ 12.1.007-76 [20] элементы, присутствующие в технологическом процессе, являются относительно безопасными.

 

5.7 Выводы


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

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

ЗАКЛЮЧЕНИЕ


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

После добавления введенной информации в базу данных трудоемкость процесса соотношения атрибутивных данных о выделах лесничеств ГПБЗ «Центральносибирский» с пространственной информацией о них значительно уменьшится.

Благодаря проделанной работе появилась возможность наполнить картографический раздел официального сайта ГПБЗ «Центральносибирский» данными таксационных описаний.

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


1.         ГОСТ 12.3.002-75 ССБТ Процессы производственные. Общие требования безопасности. - Введ. впервые; дата введ. 1.07 76

2.       ГОСТ 12.2.049-80 ССБТ Оборудование производственное. Общие эргономические требования. - Введ. впервые; дата введ. 01.01.1982

.        ГОСТ 12.2.032-78 ССБТ Рабочее место при выполнении работ сидя.
Общие эргономические требования. - Введ. впервые; дата введ. 01.01.82

.        ГОСТ 12.2.061-81 ССБТ Оборудование производственное. Общие требования безопасности к рабочим местам. - Введ. впервые; дата введ. 01.07.1982

.        ГОСТ 12.1.005-88 ССБТ Общие санитарно-гигиенические требования к воздуху рабочей зоны. - Введ. впервые; дата введ. 01.01.1989

.        ГОСТ 12.4.021-75 ССБТ Системы вентиляционные. Общие требования. - Введ. впервые; дата введ. 01.01.77

.        ГОСТ 12.1.003-89 ССБТ Шум. Общие требования безопасности. - Введ. впервые; дата введ. 01.01.90

.        ГОСТ 12.1.019-79 ССБТ Электробезопасность. Общие требования и номенклатура видов защиты. - Введ. впервые; дата введ. 01.07.1980

.        ГОСТ 12.1.030-81 ССБТ Электробезопасность. Защитное заземление, зануление. - Введ. впервые; дата введ. 1982-07-01

.        ГОСТ 12.4.155-85 ССБТ Устройства защитного отключения. Классификация. Общие технические требования. - Введ. впервые; дата введ. 1986 -01-01

.        ГОСТ 12.4.026-01 ССБТ Цвета сигнальные и знаки безопасности. - Введ. впервые; дата введ. 1.07.91

.        ГОСТ 12.1.018-86 ССБТ Пожарная безопасность. Электростатическая искробезопасность. Общие требования. - Введ. впервые; дата введ. 1.01.95

.        ГОСТ 12.1.006-84 ССБТ Электромагнитные поля радиочастот. Допустимые уровни на рабочих местах и требования к проведению контроля. - Введ. впервые; дата введ. 01.01.1986

.        ГОСТ 12.1.002-84 ССБТ Электрические поля промышленной частоты. Допустимые уровни напряженности и требования к проведению контроля на рабочих местах. - Введ. впервые; дата введ. 01.01.1986

.        ГОСТ Р 50948-96 Средства отображения информации индивидуального пользования. Общие эргономические требования. - Введ. впервые; дата введ. 01.07.97

.        ГОСТ P 50923-96 Рабочее место оператора. Общие эргономические требования и требования к производственной среде. - Введ. впервые; дата введ. 01.07.1997

.        ГОСТ 12.1.033-83 ССБТ Пожарная безопасность. Термины и определения. - Введ. впервые; дата введ. 01.07.1987

.        ГОСТ 12.1.004-98 ССБТ Пожарная безопасность. Общие требования. - Введ. впервые; дата введ. 1.07.98

.        ГОСТ 12.1.007-76 ССБТ Вредные вещества. Классификация. Общие требования безопасности. - Введ. впервые; дата введ. 1.01.77

.        СН 181-70 Указания по проектированию цветовой отделки интерьеров производственных зданий и сооружений промышленных предприятий

.        СН 512-78 Инструкция по проектированию зданий и помещений для ЭВМ

.        СНиП 23-05-03 Естественное и искусственное освещение

.        СНиП 41-01-03 Отопление, вентиляция и кондиционирование

.        СНиП 2.2.4/2.1.8.562-96 Шум на рабочих местах, в помещениях жилых и общественных зданий и на территории жилой застройки

.        СНиП 21-01-02 Пожарная безопасность зданий и сооружений

.        СНиП 2.09.04-02 Административные и бытовые здания

.        СНиП 31-03-01 Производственные здания

.        СанПиН 2.2.2/2.4.1340-03 Гигиенические требования к персональным электронно-вычислительным машинам и организации работ

.        СанПиН 2.2.4.548-96 Гигиенические требования к микроклимату производственных помещений

.        ПУЭ-01 Правила устройства электроустановок

.        НПБ 105-03 Определение категорий помещений и зданий по категории взрывопожарной и пожарной опасности

.        НПБ 88-01 Установки пожаротушения и сигнализации

.        Поисковая система Google [Электронный ресурс] / Поисковая система -http://www.google.ru

34.     MSDN [Электронный ресурс] / Руководство разработчика - <http://msdn.microsoft.com>

.        Школа XML [Электронный ресурс] / Примеры работы с XML - <http://xml.nsu.ru>

.        Официальный сайт ГПБЗ «Центральносибирский» [Электронный ресурс] / http://www.centralsib.ru

ПРИЛОЖЕНИЕ А


Код программы

using System;System.Collections.Generic;System.Linq;System.Windows.Forms;Test_prj

{class Program

{

/// <summary>

/// The main entry point for the application.

/// </summary>

[STAThread]void Main()

{.EnableVisualStyles();.SetCompatibleTextRenderingDefault(false);.Run(new Form1());

}

}

}System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.Xml.Serialization;System.IO;Test_prj

{partial class Form1 : Form

{

//public AreaControls a = new AreaControls();section;Form1()

{();

//Section section = new Section();

//AreaControls areaControls = AreaControls.onInitialize(this.panel1, area);= true;

}override void OnKeyPress(KeyPressEventArgs e)

{(e.KeyChar == 13)

{(ActiveControl, true, true, true, true);.Handled = true;

}.OnKeyPress(e);

}AreaControls areaControls;lastArea;void button1_Click(object sender, EventArgs e)

{(var dlg = new newSection())

{(dlg.ShowDialog() == DialogResult.OK)

{= new Section();.areas = new List<Area>();.number = dlg.number;.Text = "Редактируется квартал №" + section.number.ToString();= new Area();= AreaControls.onInitialize(this.panel1, 10, lastArea,section.areas.Count+1);.evt += new EventHandler(areaControls_evt);.numberTextBox.Focus();

}

}

}areaControls_evt(object sender, EventArgs e)

{.Show("Создаем новый выдел");.areas.Add(lastArea);= new Area();.panel1.Controls.Clear();= AreaControls.onInitialize(this.panel1, 10, lastArea,section.areas.Count+1);.evt += new EventHandler(areaControls_evt);.numberTextBox.Focus();xml = new XmlSerializer(typeof(Section));(var file = File.OpenWrite(section.number+"_section.xml"))

{.Serialize(file, section);

}

}

formulavalid(Circle obj)

{sum=0;(var i in obj.elments)

{= i.quantity + sum;

}(sum == 10);

}loadSection(XmlSerializer xml, string fileName)

{(File.Exists(fileName))

{(var file = File.OpenText(fileName))

{(Section)xml.Deserialize(file);

}

}null;

}void button2_Click_1(object sender, EventArgs e)

{(var dlg = new OpenFileDialog())

{(dlg.ShowDialog() == DialogResult.OK)

{xml = new XmlSerializer(typeof(Section));= loadSection(xml, dlg.FileName);

}

}.Text = "Редактируется квартал №" + section.number.ToString();= new Area();= AreaControls.onInitialize(this.panel1, 10, lastArea, section.areas.Count + 1);.evt += new EventHandler(areaControls_evt);.numberTextBox.Focus();

}

}

}

using System;System.Collections.Generic;System.Linq;System.Text;Test_prj

{Parser

{static TreeType gettreetype(string s)

{(s)

{"е":return TreeType.Spruce;"с":return TreeType.Pine;"ос": return TreeType.Aspen;"п": return TreeType.Fir;"л": return TreeType.Hackmatack;"б": return TreeType.Birch;"к": return TreeType.Cedar;

}new Exception("Некорректный(е) типы деревьев");

}static BaseAreaElement parse(string toparce)

{(string.IsNullOrEmpty(toparce))new Exception("Пустая строка");= toparce.ToLower();current = toparce[0];(toparce == "б" || toparce == "болото")

{new NotImplementedException();

}(toparce == "д" || toparce == "дорога")

{new Road();

}(toparce == "р" || toparce == "река")

{new River();

}(toparce == "п" || toparce == "прочие" || toparce == "прочие трассы")

{new OtherRoutes();

}toreturn = new Circle();currentindex = 0;(currentindex != toparce.Length && !toparce[currentindex].Equals('+'))

{digit = string.Empty;temp = new ForestElement();(currentindex < toparce.Length && char.IsDigit(toparce[currentindex]))

{= digit + toparce[currentindex];++;

}.quantity = int.Parse(digit);treetype = string.Empty;(currentindex < toparce.Length && char.IsLetter(toparce[currentindex]))

{= treetype + toparce[currentindex];++;

}.type = gettreetype(treetype);.elments.Add(temp);

}(currentindex != toparce.Length && toparce[currentindex].Equals('+'))

{++;temp = new ForestElement();.quantity = 0;treetype = string.Empty;(currentindex < toparce.Length && char.IsLetter(toparce[currentindex]))

{= treetype + toparce[currentindex];++;

}.type = gettreetype(treetype);.elments.Add(temp);

}(!formulavalid(toreturn))new Exception("Некорректная формула");toreturn;

}bool formulavalid(Circle obj)

{sum = 0;(var i in obj.elments)

{= i.quantity + sum;

}(sum == 10);

}bool formulavalidu(UnderGrowth obj)

{sum = 0;(var i in obj.elements)

{= i.quantity + sum;

}(sum == 10);

}static UnderGrowth parseUndergrowth(string toparce)

{(string.IsNullOrEmpty(toparce))new Exception("Пустая строка");= toparce.ToLower();current = toparce[0];toreturn = new UnderGrowth();currentindex = 0;(currentindex != toparce.Length && !toparce[currentindex].Equals('+'))

{digit = string.Empty;temp = new ForestElement();(currentindex < toparce.Length && char.IsDigit(toparce[currentindex]))

{= digit + toparce[currentindex];++;

}.quantity = int.Parse(digit);treetype = string.Empty;(currentindex < toparce.Length && char.IsLetter(toparce[currentindex]))

{= treetype + toparce[currentindex];++;

}.type = gettreetype(treetype);.elements.Add(temp);

}(currentindex != toparce.Length)new Exception("Некорректная формула");(!formulavalidu(toreturn))new Exception("Некорректная формула");toreturn;

}

}

}System.Text;System.Windows.Forms;Test_prj

{partial class newSection : Form

{newSection()

{();

}int number;void label1_Click(object sender, EventArgs e)

{

}void button2_Click(object sender, EventArgs e)

{

}void button1_Click(object sender, EventArgs e)

{= int.Parse(textBox1.Text);

}

}

}

using System;System.Collections.Generic;System.Linq;System.Text;System.Windows.Forms;System.ComponentModel;Test_prj

{MyControls

{

}class UnderBrushControls

{Label underbrushLabel = new Label();ComboBox densityComboBox = new ComboBox();TextBox underbrushTextBox = new TextBox();void ch(AreaControls area)

{hi = 29;(int i = 0; i < area.circleControls.Count; i++)

{(int ii = 0; ii < area.circleControls[i].forestElementControls.Count - 1; ii++)= hi + 26;

}= hi + 26 * area.formulaControls.Count;.Location = new System.Drawing.Point(underbrushLabel.Location.X, hi);.Location = new System.Drawing.Point(densityComboBox.Location.X, hi);.Location = new System.Drawing.Point(underbrushTextBox.Location.X, hi);

}static UnderBrushControls init(Panel pan,List<CircleControls> cir)

{underbrushControls = new UnderBrushControls();hi = 29;= hi + cir.Last().forestElementControls.Count * 26;.underbrushTextBox.Size = new System.Drawing.Size(130, 20);.underbrushTextBox.Location = new System.Drawing.Point(65, hi);.underbrushTextBox.TabIndex = 9005;.underbrushLabel.Size = new System.Drawing.Size(56,20);.underbrushLabel.Location = new System.Drawing.Point(3, hi);.underbrushLabel.Text = "подлесок";.densityComboBox.Size = new System.Drawing.Size(130, 20);.densityComboBox.Location = new System.Drawing.Point(201, hi);.densityComboBox.Items.Add(new DensityWrapper(Density.Rare));.densityComboBox.Items.Add(new DensityWrapper(Density.AverageDensity));.densityComboBox.Items.Add(new DensityWrapper(Density.Thick));.densityComboBox.SelectedItem = underbrushControls.densityComboBox.Items[0];.densityComboBox.TabIndex = 9006;.Controls.Add(underbrushControls.underbrushTextBox);.Controls.Add(underbrushControls.densityComboBox);.Controls.Add(underbrushControls.underbrushLabel);underbrushControls;

}

}class UndergrowthControls

{area;undergrowth;UndergrowthControls(Area area)

{.Validating += new CancelEventHandler(formulaTextBox_Validating);.Validated += new EventHandler(formulaTextBox_Validated);.area = area;

}formulaTextBox_Validated(object sender, EventArgs e)

{.undergrowth = undergrowth;

}formulaTextBox_Validating(object sender, CancelEventArgs e)

{

{= Parser.parseUndergrowth(formulaTextBox.Text);

}(Exception ex)

{.Cancel = true;.Show(ex.Message);

}

}Label undergrowthLabel = new Label();Label ageLabel = new Label();Label heightLabel = new Label();Label quantityLabel = new Label();TextBox formulaTextBox = new TextBox();TextBox ageTextBox = new TextBox();TextBox heightTextBox = new TextBox();TextBox quantityTextBox = new TextBox();void ch(AreaControls area)

{hi = 3;(int i = 0; i < area.circleControls.Count; i++)

{(int ii = 0; ii < area.circleControls[i].forestElementControls.Count - 1; ii++)= hi + 26;

}= hi + 26 * area.formulaControls.Count;.Location = new System.Drawing.Point(undergrowthLabel.Location.X, hi);.Location = new System.Drawing.Point(ageLabel.Location.X, hi);.Location = new System.Drawing.Point(heightLabel.Location.X, hi);.Location = new System.Drawing.Point(quantityLabel.Location.X, hi);.Location = new System.Drawing.Point(formulaTextBox.Location.X, hi);.Location = new System.Drawing.Point(ageTextBox.Location.X, hi);.Location = new System.Drawing.Point(heightTextBox.Location.X, hi);.Location = new System.Drawing.Point(quantityTextBox.Location.X, hi);

}static UndergrowthControls init(Panel pan,AreaControls area)

{undergrowthControls = new UndergrowthControls(area.currentArea);hi = 3;= hi + area.circleControls.Last().forestElementControls.Count * 26;.undergrowthLabel.Size = new System.Drawing.Size(56, 20);.undergrowthLabel.Location = new System.Drawing.Point(3, hi);.formulaTextBox.Size = new System.Drawing.Size(130, 20);.formulaTextBox.Location = new System.Drawing.Point(65, hi);.formulaTextBox.TabIndex = 9000;.ageTextBox.Size = new System.Drawing.Size(20, 20);.ageTextBox.Location = new System.Drawing.Point(201, hi);.ageTextBox.TabIndex = 9001;.ageLabel.Size = new System.Drawing.Size(80, 20);.ageLabel.Location = new System.Drawing.Point(227, hi);.heightLabel.Size = new System.Drawing.Size(20, 20);.heightLabel.Location = new System.Drawing.Point(339, hi);.heightTextBox.Size = new System.Drawing.Size(20, 20);.heightTextBox.Location = new System.Drawing.Point(313, hi);.heightTextBox.TabIndex = 9002;.quantityTextBox.Size = new System.Drawing.Size(20, 20);.quantityTextBox.Location = new System.Drawing.Point(365, hi);.quantityTextBox.TabIndex = 9003;.quantityLabel.Size = new System.Drawing.Size(30, 20);.quantityLabel.Location = new System.Drawing.Point(391, hi);.undergrowthLabel.Text = "подрост";.ageLabel.Text = "лет, высота";.heightLabel.Text = "м.";.quantityLabel.Text = "т.шт/га";.Controls.Add(undergrowthControls.undergrowthLabel);.Controls.Add(undergrowthControls.formulaTextBox);.Controls.Add(undergrowthControls.ageTextBox);.Controls.Add(undergrowthControls.ageLabel);.Controls.Add(undergrowthControls.heightLabel);.Controls.Add(undergrowthControls.heightTextBox);.Controls.Add(undergrowthControls.quantityTextBox);.Controls.Add(undergrowthControls.quantityLabel);undergrowthControls;

}

}class RoadControls

{road;RoadControls()

{.Validated += new EventHandler(widthTextBox_Validated);

}widthTextBox_Validated(object sender, EventArgs e)

{.width = int.Parse(widthTextBox.Text);

}TextBox widthTextBox = new TextBox();Label widthLabel = new Label();TextBox lengthTextBox = new TextBox();Label lengthLabel = new Label();Label km = new Label();ComboBox conditionComboBox = new ComboBox();static RoadControls init(Panel pan, int startIndex, Road road)

{roadControls = new RoadControls();.road = road;.conditionComboBox.Size = new System.Drawing.Size(130, 20);.conditionComboBox.Location = new System.Drawing.Point(65,29);.widthLabel.Size = new System.Drawing.Size(60, 20);.widthLabel.Text = "Ширнина:";.lengthLabel.Text = "м, протяженностью:";.lengthLabel.Size = new System.Drawing.Size(110, 20);.widthLabel.Location = new System.Drawing.Point(201, 29);.widthTextBox.Size = new System.Drawing.Size(20, 20);.widthTextBox.Location = new System.Drawing.Point(266, 29);.lengthLabel.Location = new System.Drawing.Point(292, 29);.lengthTextBox.Size = new System.Drawing.Size(20, 20);.lengthTextBox.Location = new System.Drawing.Point(408, 29);.km.Size = new System.Drawing.Size(30, 20);.km.Location = new System.Drawing.Point(434, 29);.km.Text = "км.";.conditionComboBox.Items.Add(new ElementConditionWrapper(ElementCondition.Satisfied));.conditionComboBox.Items.Add(new ElementConditionWrapper(ElementCondition.Unsatisfied));.conditionComboBox.SelectedItem = roadControls.conditionComboBox.Items[0];.conditionComboBox.TabIndex = startIndex + 5;.widthTextBox.TabIndex = startIndex + 6;.lengthTextBox.TabIndex = startIndex + 7;.Controls.Add(roadControls.conditionComboBox);.Controls.Add(roadControls.km);.Controls.Add(roadControls.widthTextBox);.Controls.Add(roadControls.lengthTextBox);.Controls.Add(roadControls.widthLabel);.Controls.Add(roadControls.lengthLabel);roadControls;

}

}class RiverControls

{river;RiverControls()

{.Validated += new EventHandler(widthTextBox_Validated);

}widthTextBox_Validated(object sender, EventArgs e)

{.width = int.Parse(widthTextBox.Text);

}TextBox widthTextBox = new TextBox();Label widthLabel = new Label();TextBox lengthTextBox = new TextBox();Label lengthLabel = new Label();Label km = new Label();ComboBox conditionComboBox = new ComboBox();static RiverControls init(Panel pan, int startIndex, River river)

{riverControls = new RiverControls();.river = river;.conditionComboBox.Size = new System.Drawing.Size(130, 20);.conditionComboBox.Location = new System.Drawing.Point(65,29);.widthLabel.Size = new System.Drawing.Size(60, 20);.widthLabel.Text = "Ширнина:";.lengthLabel.Text = "м, протяженностью:";.lengthLabel.Size = new System.Drawing.Size(110, 20);.widthLabel.Location = new System.Drawing.Point(201, 29);.widthTextBox.Size = new System.Drawing.Size(20, 20);.widthTextBox.Location = new System.Drawing.Point(266, 29);.lengthLabel.Location = new System.Drawing.Point(292, 29);.lengthTextBox.Size = new System.Drawing.Size(20, 20);.lengthTextBox.Location = new System.Drawing.Point(408, 29);.km.Size = new System.Drawing.Size(30, 20);.km.Location = new System.Drawing.Point(434, 29);.km.Text = "км.";.conditionComboBox.Items.Add(new ElementConditionWrapper(ElementCondition.Satisfied));.conditionComboBox.Items.Add(new ElementConditionWrapper(ElementCondition.Unsatisfied));.conditionComboBox.SelectedItem = riverControls.conditionComboBox.Items[0];.conditionComboBox.TabIndex = startIndex + 5;.widthTextBox.TabIndex = startIndex + 6;.lengthTextBox.TabIndex = startIndex + 7;.Controls.Add(riverControls.conditionComboBox);.Controls.Add(riverControls.km);.Controls.Add(riverControls.widthTextBox);.Controls.Add(riverControls.lengthTextBox);.Controls.Add(riverControls.widthLabel);.Controls.Add(riverControls.lengthLabel);riverControls;

}

}class OtherRoutesControls

{otherRoutes;OtherRoutesControls()

{.Validated += new EventHandler(widthTextBox_Validated);

}widthTextBox_Validated(object sender, EventArgs e)

{.width = int.Parse(widthTextBox.Text);

}TextBox widthTextBox = new TextBox();Label widthLabel = new Label();TextBox lengthTextBox = new TextBox();Label lengthLabel = new Label();Label km = new Label();ComboBox conditionComboBox = new ComboBox();static OtherRoutesControls init(Panel pan, int startIndex, OtherRoutes otherRoutes)

{otherRoutesControl = new OtherRoutesControls();.otherRoutes = otherRoutes;.conditionComboBox.Size = new System.Drawing.Size(130, 20);.conditionComboBox.Location = new System.Drawing.Point(65, 29);.widthLabel.Size = new System.Drawing.Size(60, 20);.widthLabel.Text = "Ширнина:";.lengthLabel.Text = "м, протяженностью:";.lengthLabel.Size = new System.Drawing.Size(110, 20);.widthLabel.Location = new System.Drawing.Point(201, 29);.widthTextBox.Size = new System.Drawing.Size(20, 20);.widthTextBox.Location = new System.Drawing.Point(266, 29);.lengthLabel.Location = new System.Drawing.Point(292, 29);.lengthTextBox.Size = new System.Drawing.Size(20, 20);.lengthTextBox.Location = new System.Drawing.Point(408, 29);.km.Size = new System.Drawing.Size(30, 20);.km.Location = new System.Drawing.Point(434, 29);.km.Text = "км.";.conditionComboBox.Items.Add(new ElementConditionWrapper(ElementCondition.Satisfied));.conditionComboBox.Items.Add(new ElementConditionWrapper(ElementCondition.Unsatisfied));.conditionComboBox.SelectedItem = otherRoutesControl.conditionComboBox.Items[0];.conditionComboBox.TabIndex = startIndex + 5;.widthTextBox.TabIndex = startIndex + 6;.lengthTextBox.TabIndex = startIndex + 7;.Controls.Add(otherRoutesControl.conditionComboBox);.Controls.Add(otherRoutesControl.km);.Controls.Add(otherRoutesControl.widthTextBox);.Controls.Add(otherRoutesControl.lengthTextBox);.Controls.Add(otherRoutesControl.widthLabel);.Controls.Add(otherRoutesControl.lengthLabel);otherRoutesControl;

}

}class AreaForestControls

{TextBox ageClassTextBox = new TextBox();TextBox ageGroupTextBox = new TextBox();TextBox bonitetTextBox = new TextBox();TextBox treetypeTextBox = new TextBox();TextBox tumTextBox = new TextBox();ComboBox slopeDirectionComboBox = new ComboBox();TextBox slopeAngleTextBox = new TextBox();Label angleLabel = new Label();Label slopeLabel = new Label();void changeSlopeGroupLocation(AreaControls area)

{hi = 51;(int i = 0; i < area.circleControls.Count; i++)

{(int ii = 0; ii < area.circleControls[i].forestElementControls.Count - 1; ii++)= hi + 26;

}= hi + 26 * area.formulaControls.Count;.Location = new System.Drawing.Point(slopeLabel.Location.X, hi);.Location = new System.Drawing.Point(angleLabel.Location.X, hi);.Location = new System.Drawing.Point(slopeAngleTextBox.Location.X, hi);.Location = new System.Drawing.Point(slopeDirectionComboBox.Location.X, hi);

}static AreaForestControls initialize(Panel pan, int startIndex)

{additionControls = new AreaForestControls();.ageClassTextBox.Size = new System.Drawing.Size(20, 20);.ageClassTextBox.Location = new System.Drawing.Point(367, 3);.ageGroupTextBox.Size = new System.Drawing.Size(20, 20);.ageGroupTextBox.Location = new System.Drawing.Point(393, 3);.bonitetTextBox.Size = new System.Drawing.Size(20, 20);.bonitetTextBox.Location = new System.Drawing.Point(419, 3);.treetypeTextBox.Size = new System.Drawing.Size(30, 20);.treetypeTextBox.Location = new System.Drawing.Point(445, 3);.ageClassTextBox.TabIndex = startIndex + 10;.ageGroupTextBox.TabIndex = startIndex + 11;.bonitetTextBox.TabIndex = startIndex + 12;.treetypeTextBox.TabIndex = startIndex + 13;.tumTextBox.TabIndex = startIndex + 14;.slopeDirectionComboBox.TabIndex = 9900;.slopeAngleTextBox.TabIndex = 9901;.tumTextBox.Size = new System.Drawing.Size(30, 20);.tumTextBox.Location = new System.Drawing.Point(481, 3);.slopeLabel.Size = new System.Drawing.Size(56, 20);.slopeLabel.Location = new System.Drawing.Point(3, 29);.slopeLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;.slopeLabel.Text = "Склон";.slopeDirectionComboBox.DropDownStyle = ComboBoxStyle.DropDownList;.slopeDirectionComboBox.Size = new System.Drawing.Size(130, 20);.slopeDirectionComboBox.Location = new System.Drawing.Point(65, 29);.slopeDirectionComboBox.Items.Add(new SlopeDirectionWrapper(SlopeDirection.North));.slopeDirectionComboBox.Items.Add(new SlopeDirectionWrapper(SlopeDirection.South));.slopeDirectionComboBox.Items.Add(new SlopeDirectionWrapper(SlopeDirection.West));.slopeDirectionComboBox.Items.Add(new SlopeDirectionWrapper(SlopeDirection.East));.slopeDirectionComboBox.Items.Add(new SlopeDirectionWrapper(SlopeDirection.NorthWest));.slopeDirectionComboBox.Items.Add(new SlopeDirectionWrapper(SlopeDirection.NorthEast));.slopeDirectionComboBox.Items.Add(new SlopeDirectionWrapper(SlopeDirection.SouthWest));.slopeDirectionComboBox.Items.Add(new SlopeDirectionWrapper(SlopeDirection.SouthEast));.slopeDirectionComboBox.SelectedItem = additionControls.slopeDirectionComboBox.Items[0];.slopeAngleTextBox.Size = new System.Drawing.Size(20, 20);.slopeAngleTextBox.Location = new System.Drawing.Point(201,29);.angleLabel.Size = new System.Drawing.Size(60,20);.angleLabel.Location = new System.Drawing.Point(227, 29);.angleLabel.Text = "градусов";.Controls.Add(additionControls.ageClassTextBox);.Controls.Add(additionControls.ageGroupTextBox);.Controls.Add(additionControls.bonitetTextBox);.Controls.Add(additionControls.treetypeTextBox);.Controls.Add(additionControls.angleLabel);.Controls.Add(additionControls.slopeDirectionComboBox);.Controls.Add(additionControls.slopeLabel);.Controls.Add(additionControls.tumTextBox);.Controls.Add(additionControls.angleLabel);.Controls.Add(additionControls.slopeAngleTextBox);additionControls;

}

}

}

using System;System.Linq;System.Text;System.Collections.Generic;Test_prj

{enum TreeType

{,,,,,,

}enum ElementCondition

{,

}class ElementConditionWrapper

{ElementCondition condition;string text;ElementConditionWrapper(ElementCondition cond)

{= cond;= getDirectionString(cond);

}override string ToString()

{text;

}static String getDirectionString(ElementCondition cond)

{(cond)

{ElementCondition.Satisfied: return "Удовлетровит.";ElementCondition.Unsatisfied: return "Неудовлетворит.";

}new Exception("Отсутствует состояни элемента");

}

}class BaseAreaElement { }class Road : BaseAreaElement

{float width;float length;string condition;

}class River : BaseAreaElement

{float length;float width;string condition;

}class OtherRoutes : BaseAreaElement

{float length;float width;string condition;

}enum Density

{,,

}class DensityWrapper

{Density condition;string text;DensityWrapper(Density cond)

{= cond;= getDirectionString(cond);

}override string ToString()

{text;

}static String getDirectionString(Density cond)

{(cond)

{Density.Rare: return "Редкий";Density.AverageDensity: return "Ср. густоты";Density.Thick: return "Густой";

}new Exception("Отсутствует состояни элемента");

}

}enum SlopeDirection

{,,,,,,,

}class SlopeDirectionWrapper

{SlopeDirection direction;string text;SlopeDirectionWrapper(SlopeDirection dir)

{= dir;= getDirectionString(dir);

}override string ToString()

{text;

}static String getDirectionString(SlopeDirection sl)

{(sl)

{SlopeDirection.North: return "Север";SlopeDirection.South: return "Юг";SlopeDirection.West: return "Запад";SlopeDirection.East: return "Восток";SlopeDirection.NorthWest: return "Северо-запад";SlopeDirection.NorthEast: return "Северо-восток";SlopeDirection.SouthWest: return "Юго-запад";SlopeDirection.SouthEast: return "Юго-восток";

}new Exception("Отсутствует направление склона");

}

}class UnderbrushElement

{String underbrushType;

}class Underbrush

{List<UnderbrushElement> underbrushTypes = new List<UnderbrushElement>();Density density;

}class ForestElement

{TreeType type;int age;int height;int diameter;int quantity;static String getTreeTypeLetter(TreeType type)

{(type)

{TreeType.Pine: return "С";TreeType.Spruce: return "Е";TreeType.Aspen: return "Ос";TreeType.Birch: return "Б";TreeType.Cedar: return "К";TreeType.Hackmatack: return "Л";TreeType.Fir: return "П";

}new Exception("Отсутствует тип дерева");

}

}class UnderGrowth

{List<ForestElement> elements = new List<ForestElement>();int age;int height;float quantity;

}class Circle : BaseAreaElement

{int number;List<ForestElement> elments = new List<ForestElement>();int age;

{List<Circle> circles;Road road;OtherRoutes otherRoutes;River river;Underbrush underbrush;UnderGrowth undergrowth;int number;int suare;

}class Section

{List<Area> areas;int number;

}

}System;System.Collections.Generic;System.Linq;System.Text;System.Windows.Forms;System.ComponentModel;Test_prj

{class FormulaControls

{area;FormulaControls(AreaControls area)

{.area = area;.Validating += new CancelEventHandler(formulaTextBox_Validating);.Validated += new EventHandler(formulaTextBox_Validated);

}parsedElement;formulaTextBox_Validating(object sender, CancelEventArgs e)

{

{= Parser.parse(formulaTextBox.Text);

}(Exception ex)

{.Cancel = true;.Show(ex.Message);

}

}formulaTextBox_Validated(object sender, EventArgs e)

{circle = parsedElement as Circle;(circle != null)

{.FormulaParsed(circle);

}road = parsedElement as Road;(road != null)

{.FormulaParsed(road);.Text = "дорога";

}river = parsedElement as River;(river != null)

{.FormulaParsed(river);.Text = "река";

}otherRoutes = parsedElement as OtherRoutes;(otherRoutes != null)

{.FormulaParsed(otherRoutes);.Text = "прочие трассы";

}.Enabled = false;

}TextBox formulaTextBox = new TextBox();static FormulaControls initialize(Panel pan, AreaControls area)

{formula = new FormulaControls(area);hi = 3;(int i = 0; i < area.circleControls.Count; i++)

{= hi + 26 * area.circleControls[i].forestElementControls.Count;

}.formulaTextBox.Size = new System.Drawing.Size(130, 20);.formulaTextBox.Location = new System.Drawing.Point(65, hi);.Controls.Add(formula.formulaTextBox);formula;

}

}

}System;System.Collections.Generic;System.Linq;System.Text;System.Windows.Forms;Test_prj

{class ForestElementControls

{currentForest;ForestElementControls(ForestElement element)

{= element;

}elementTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)

{

{.type = Parser.gettreetype(elementTextBox.Text);

}(Exception ex) { MessageBox.Show(ex.Message); }

}event EventHandler NeededNewArea;void klTovTextBox_KeyUp(object sender, KeyEventArgs e)

{(e.Control && e.KeyCode == Keys.Enter)

{(NeededNewArea != null)

{(this, EventArgs.Empty);

}.FindForm().SelectNextControl(klTovTextBox, true, true, true, true);

}

}TextBox elementTextBox;TextBox ageTextBox;TextBox heightTextBox;TextBox diameterTextBox;TextBox zapSostTextBox;TextBox klTovTextBox;void Init(Control pan, int hi, int startIndex, int forestIndex)

{= new TextBox();= new TextBox();= new TextBox();= new TextBox();= new TextBox();= new TextBox();.Size = new System.Drawing.Size(20, 20);.Location = new System.Drawing.Point(253, hi);.Text = ForestElement.getTreeTypeLetter(currentForest.type);.Enabled = false;.Size = new System.Drawing.Size(30, 20);.Location = new System.Drawing.Point(279, hi);.Size = new System.Drawing.Size(20, 20);.Location = new System.Drawing.Point(315, hi);.Size = new System.Drawing.Size(20, 20);.Location = new System.Drawing.Point(341, hi);.Size = new System.Drawing.Size(30, 20);.Location = new System.Drawing.Point(605, hi);.Size = new System.Drawing.Size(20, 20);.Location = new System.Drawing.Point(641, hi);start = startIndex + forestIndex * 20;.TabIndex = start + 6;.TabIndex = start + 7;.TabIndex = start + 8;.TabIndex = start + 9;.TabIndex = start + 18;.TabIndex = start + 19;.KeyUp += new KeyEventHandler(klTovTextBox_KeyUp);.Validating += new System.ComponentModel.CancelEventHandler(elementTextBox_Validating);.Controls.Add(elementTextBox);.Controls.Add(ageTextBox);.Controls.Add(heightTextBox);.Controls.Add(diameterTextBox);.Controls.Add(zapSostTextBox);.Controls.Add(klTovTextBox);

}

}

}System;System.Collections.Generic;System.Linq;System.Text;System.Windows.Forms;Test_prj

{class CircleControls

{CircleControls()

{.Validated += new EventHandler(numberTextBox_Validated);.Validating += new System.ComponentModel.CancelEventHandler(numberTextBox_Validating);

}numberTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)

{i;.Cancel = !int.TryParse(numberTextBox.Text,out i);

}numberTextBox_Validated(object sender, EventArgs e)

{.number = int.Parse(numberTextBox.Text);

}circle;TextBox numberTextBox = new TextBox();TextBox circleHeightTextBox = new TextBox();TextBox polnotaTextBox = new TextBox();TextBox zapNaGaTextBox = new TextBox();TextBox zapNaAreaTextBox = new TextBox();List<ForestElementControls> forestElementControls = new List<ForestElementControls>();void initialize(Panel pan, Circle currentCircle, int startIndex, int top)

{= currentCircle;hi = top;.Size = new System.Drawing.Size(20, 20);.Location = new System.Drawing.Point(201, hi);.Size = new System.Drawing.Size(20, 20);.Location = new System.Drawing.Point(227, hi);.Size = new System.Drawing.Size(20, 20);.Location = new System.Drawing.Point(517, hi);.Size = new System.Drawing.Size(20, 20);.Location = new System.Drawing.Point(543, hi);.Size = new System.Drawing.Size(30, 20);.Location = new System.Drawing.Point(569, hi);start = startIndex;.TabIndex = start + 4;.TabIndex = start + 5;.TabIndex = start + 15;.TabIndex = start + 16;.TabIndex = start + 17;.Controls.Add(numberTextBox);.Controls.Add(circleHeightTextBox);.Controls.Add(polnotaTextBox);.Controls.Add(zapNaGaTextBox);.Controls.Add(zapNaAreaTextBox);forestIndex = 0;(var el in currentCircle.elments)

{forestControl = new ForestElementControls(el);.Init(pan, hi, start, forestIndex);.Add(forestControl);.NeededNewArea += new EventHandler(forestControl_NeededNewArea);++;= hi + 26;

}

}event EventHandler NeededNewArea;forestControl_NeededNewArea(object sender, EventArgs e)

{(ReferenceEquals(forestElementControls.Last(), sender))

{(NeededNewArea != null)

{(this, EventArgs.Empty);

}

}

}

}

}System;System.Collections.Generic;System.Linq;System.Text;System.Windows.Forms;System.ComponentModel;System.Xml.Serialization;System.IO;Test_prj

{class AreaControls

{areaIndexStart;AreaControls(int startIndex)

{= startIndex;.Validating += new CancelEventHandler(numberTextBox_Validating);.Validated += new EventHandler(numberTextBox_Validated);.Validating += new CancelEventHandler(squareTextBox_Validating);.Validated += new EventHandler(noteTextBox_Validated);

}event EventHandler evt;noteTextBox_Validated(object sender, EventArgs e)

{(evt != null)

{(this, EventArgs.Empty);

}

}squareTextBox_Validating(object sender, CancelEventArgs e)

{f;.Cancel = !float.TryParse(squareTextBox.Text,out f);

}numberTextBox_Validated(object sender, EventArgs e)

{.currentArea.number = int.Parse(numberTextBox.Text);

}void FormulaParsed(Road road)

{.init(getPanel(), areaIndexStart, road);.road = road;(circleControls,29);

}void FormulaParsed(River river)

{.init(getPanel(), areaIndexStart, river);.river = river;(circleControls,29);

}void FormulaParsed(OtherRoutes otherRoutes)

{.init(getPanel(), areaIndexStart, otherRoutes);.otherRoutes = otherRoutes;(circleControls,29);

}void FormulaParsed(Circle circle)

{.circles.Add(circle);start = areaIndexStart;(var i in circleControls)

{+= i.forestElementControls.Count * 20;

}hi = 3;(circleControls.Count != 0)(int i = 0; i < circleControls.Count; i++)

{= hi + 26 * circleControls[i].forestElementControls.Count;

}circleControl = new CircleControls();.initialize(getPanel(), circle, start, hi);.NeededNewArea += new EventHandler(circleControls_NeededNewArea);.Add(circleControl);(undergrowthControls != null).ch(this);(underbrushControls != null).ch(this);.circles.Last().number = currentArea.circles.Count();.circleControls.Last().numberTextBox.Text = currentArea.circles.Last().number.ToString();.circleControls.Last().numberTextBox.Enabled = false;(additionAreaControls == null)

{= AreaForestControls.initialize(getPanel(), start);

}.changeSlopeGroupLocation(this);(circleControls,77);(undergrowthControls == null)= UndergrowthControls.init(getPanel(),this);(underbrushControls == null)= UnderBrushControls.init(getPanel(), this.circleControls);

}circleControls_NeededNewArea(object sender, EventArgs e)

{(ReferenceEquals(sender, circleControls.Last()))

{start = areaIndexStart;(var i in circleControls)

{+= i.forestElementControls.Count * 20;

}newFormulaControls = FormulaControls.initialize(getPanel(), this);.formulaTextBox.TabIndex = start + 2;.Add(newFormulaControls);.changeSlopeGroupLocation(this);(circleControls,77);.ch(this);.ch(this);

}

}numberTextBox_Validating(object sender, CancelEventArgs e)

{.Cancel = true;value;(uint.TryParse(numberTextBox.Text, out value))

{.Cancel = false;

}

}TextBox numberTextBox = new TextBox();TextBox squareTextBox = new TextBox();Panel panel = new Panel();TextBox noteTextBox = new TextBox();Label noteLabel = new Label();AreaForestControls additionAreaControls;UndergrowthControls undergrowthControls;UnderBrushControls underbrushControls;List<CircleControls> circleControls = new List<CircleControls>();List<FormulaControls> formulaControls = new List<FormulaControls>();Area currentArea;void changeNoteLocation(List<CircleControls> circleControls, int hi)

{(int i = 0; i < circleControls.Count; i++)

{(int ii = 0; ii < circleControls[i].forestElementControls.Count - 1; ii++)= hi + 26;

}= hi + 26 * formulaControls.Count;.Location = new System.Drawing.Point(noteLabel.Location.X, hi);.Location = new System.Drawing.Point(noteTextBox.Location.X, hi);

}Panel getPanel()

{this.panel;

}static AreaControls onInitialize(Panel pan, int startIndex, Area currentArea, int areanumber)

{area = new AreaControls(startIndex);.currentArea = currentArea;.circles = new List<Circle>();.panel = pan;.numberTextBox.Size = new System.Drawing.Size(20, 20);.numberTextBox.Location = new System.Drawing.Point(3, 3);.numberTextBox.Text = areanumber.ToString();.squareTextBox.Size = new System.Drawing.Size(30, 20);.squareTextBox.Location = new System.Drawing.Point(29, 3);.noteLabel.Size = new System.Drawing.Size(192, 20);.noteLabel.Location = new System.Drawing.Point(3,29);.noteTextBox.Size = new System.Drawing.Size(460,20);.noteTextBox.Location = new System.Drawing.Point(201, 29);.noteTextBox.TabIndex = 12000;.noteLabel.Text = "Хозяйственные распоряжения";formula = FormulaControls.initialize(pan, area);.formulaControls.Add(formula);.numberTextBox.TabIndex = startIndex;.squareTextBox.TabIndex = startIndex + 1;.formulaTextBox.TabIndex = startIndex + 2;.Controls.Add(area.numberTextBox);.Controls.Add(area.squareTextBox);.Controls.Add(area.noteLabel);.Controls.Add(area.noteTextBox);area;

}

}

}

Похожие работы на - Технология ввода данных таксационных описаний для картографического раздела официального сайта ГПБЗ 'Центральносибирский'

 

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