Разработка автоматизированной системы учета материальных ценностей "АС УМЦ"

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

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

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

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

Размещено на http://www.allbest.ru

ВВЕДЕНИЕ

В рамках данного дипломного проекта была разработана автоматизированная система учёта материальных ценностей «АС УМЦ».

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

· Повышение эффективности и достоверности учета движения материальных ценностей;

· Уменьшение вероятности ошибок, вызванных «человеческим фактором»;

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

· Уменьшение вероятности воровства и несанкционированного использования материальных средств;

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

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

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

программирование модуль учет материальный ценность

1. ПРОБЛЕМА

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

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

· передача имущества сторонней организации,

· фиксирование материальной ценности за ответственным лицом,

· синхронизация данных между несколькими организациями / объектами

· возможность загрузки данных из EXCEL или 1C,

· выгрузка данных в формате EXCEL, Word, PDF,

· отсутствие удобного интерфейса для пользователя,

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

2. ПОСТАНОВКА ЗАДАЧИ

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

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

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

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

3. Провести обзор систем управления базами данных и сделать обоснованный выбор одной из них.

4. Спроектировать ER-модель базы данных и структуру таблиц.

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

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

7. Провести оценку эффективности разработанной системы.

8. Разработать документацию к системе.

3. ОБЗОР АНАЛОГОВ

Рассмотрим следующие системы учета материальных ценностей, существующие на рынке:

Microsoft Excel -- офисная программа для работы с электронными таблицами. Создана корпорацией Microsoft для Microsoft Windows, Windows NT и Mac OS. Она предоставляет возможность хранить, организовывать, анализировать информацию, проводить экономические расчеты. Программа имеет графические инструменты и язык макропрограммирования VBA (Visual Basic for Application) [1].

Ниже представлен внешний вид программы Microsoft Excel (Рисунок 1).

Рисунок 1 -- Внешний вид интерфейса Microsoft Excel.

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

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

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

Рисунок 2 -- Внешний вид интерфейса Google Docs.

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

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

1С:Предприятие -- автоматизированная комплексная программа, помогающая вести налоговый учет. Позволяет автоматически формировать необходимые документы, проводить расчёты, проверять отчетность, анализировать деятельность предприятия [3].

Внешний вид программы 1С:Предприятие представлен на рисунке 3.

Рисунок 3 -- Внешний вид интерфейса 1С:Предприятие.

Программа позволяет автоматизировать различные участки учёта:

· Учёт материально-производственных запасов, средств и активов.

· Учёт различных операций и расчётов.

· Учёт доходов, расходов, в том числе индивидуальных предпринимателей.

· Учёт различных видов налогов.

· Учёт деятельности, облагаемой единым налогом на вмененный доход.

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

МойСклад -- коммерческий продукт для управления торговлей и складского учёта, предназначенный для автоматизации малого и среднего бизнеса. Облачный сервис реализует функции обработки заказов, управления продажами и закупками, складского учёта и контроля финансовых расчетов [4].

Программа Мои?Склад

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

· интегрируется с программами автоматизации бухгалтерского и налогового учета,

· выводит на печать необходимую информацию в виде документов по унифицированным или создаваемым пользователем шаблонам (счета, фактуры, накладные и т.п.).

На рисунке 4 представлен внешний вид программы Мои?Склад.

Рисунок 4 -- Внешний вид интерфейса Мои?Склад.

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

АСУ ТМЦ (Автоматизированная система учета товарно-материальных ценностей) -- автоматизированная программа, помогающая вести налоговый учет. Автоматически проводит расчёты, формирует документы, проверяет отчетность, анализирует деятельность предприятия [5].

АСУ ТМЦ позволяет осуществлять:

• постановку на учет ТМЦ;

• инвентаризацию ТМЦ с помощью ручных RFID считывателей;

• поиск заданного ТМЦ по RFID метке;

• контроль правильности подбора ТМЦ по документу (накладной);

• контроль движения (отгрузки) ТМЦ;

• формирование отчетов о результатах инвентаризации и фактах движения;

• интеграцию с существующими учетными системами.

Ниже представлен внешний вид программы АСУ ТМЦ (Рисунок 5).

Рисунок 5 -- Внешний вид интерфейса АСУ ТМЦ.

АСУ ТМЦ требует специальных знаний от пользователя. Отсутствует разграничение прав доступа: каждый зарегистрированный пользователь может редактировать и удалять любую информацию в программе. В программе возможен только экспорт в EXCEL.

По результатам обзора аналогов была составлена сравнительная таблица (Таблица 1).

Таблица 1 -- Сравнение аналогов.

Аналог/ Критерий

EXCEL

Google Docs

1C:Бухгалтерия

МойСклад

АСУ ТМЦ

Удобный интерфейс

+/-

+

+

+

+

Поиск/ Фильтрация

+

+

+

+

+

Интеграция с существующими системами

+

+/-

+

+

+/-

Специальное обучение пользователей

+

+

-

+

-

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

+/-

+/-

+

-

+/-

Не требует выхода в глобальную сеть

+

-

+

-

+

Разграничены права доступа

-

-

+

+

-

Стабильный результат установки обновлений

+

+

-

+

+

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

4. МЕТОДЫ И СРЕДСТВА РАЗРАБОТКИ

При разработке Системы были использованы современные веб-технологии: AJAX, LAMP. Используемые программные средства, языки программирования, библиотеки: Mysql 5.6, PHP 5.5, jQuery 1.8.3 и Bootstrap.

Выбор средства разработки определяется:

а) сжатыми сроками на разработку программного продукта;

б) необходимостью интеграции с информационной система управления «Промышленная безопасность и охрана труда» (ИСУ ПБиОТ), являющейся продуктом компании ООО «Бреалит». Движок системы ИСУ ПБиОТ написан на PHP 5.5, использует систему управления базами данных Mysql 5.6 и библиотеки , jQuery 1.8.3 и Bootstrap.

4.1 Выбор средств разработки

База данных MySQL

MySQL - это реляционная система управления базами данных. Она не предназначена для работы с большими объемами информации, но её оптимально использовать для создания как небольших, так и достаточно крупных интернет сайтов, [6].

MySQL отличатся высокой скоростью работы, надежностью, гибкостью. Поддержка сервера MySQL автоматически включается в поставку PHP [6].

Краткий перечень возможностей MySQL [7]:

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

· Скорость работы быстрее, чем у других СУБД

· Количество строк в таблицах может достигать более 50 млн.

· Быстрое выполнение команд. Возможно MySQL самый быстрый сервер из существующих.

· Простая и эффективная система безопасности.

· Поддержка вложенных запросов.

· Реализована поддержка транзакций.

· Поддержка триггеров, хранимых процедур, внешних ключей.

Недостатки MySQL [7]:

· Поддержка транзакций не достаточно хорошо проверена.

· Медленная разработка.

· Некоторые движки MySQL не поддерживают полнотекстовый поиск.

Язык PHP

PHP (рекурсивный акроним словосочетания PHP: Hypertext Preprocessor) - это распространенный язык программирования общего назначения с открытым исходным кодом. PHP сконструирован специально для ведения Web-разработок и его код может внедряться непосредственно в HTML [8].

Преимущества PHP [9]:

· является свободным программным обеспечением, распространяемым под особой лицензией (PHP license);

· легок в освоении на всех этапах;

· поддерживается большим сообществом пользователей и разработчиков;

· имеет развитую поддержку баз данных;

· имеется огромное количество библиотек и расширений языка;

· может использоваться в изолированной среде;

· предлагает нативные средства организации веб-сессий, программный интерфейс расширений;

· является довольно полной заменой проприетарной среды ASP (Active Server Pages) от Microsoft;

· может быть развёрнут почти на любом сервере;

· портирован под большое количество аппаратных платформ и операционных систем.

Недостатки PHP [9]:

· не подходит для создания десктопных приложений или системных компонентов;

· имеет слабые средства для работы с исключениями;

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

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

· веб-приложения, написанные на PHP, зачастую имеют проблемы с безопасностью.

Библиотека jQuery

Библиотека jQuery -- это библиотека, содержащая элементы управления JavaScript. Она позволяет упростить разработку приложений, основанных на JavaScript, особенно содержащих AJAX и другие технологии, ориентированные на использование в сети. JavaScript совместно с различными диалектами XML стал активно использоваться в разработке пользовательских интерфейсов как веб-приложений. JavaScript вместе с CSS (каскадными таблица стилей) используется для создания динамических сайтов [10].

jQuery может [11]:

· обращаться к любому элементу DOM (объектной модели документа) и не только обращаться, но и манипулировать ими;

· работать с событиями;

· легко осуществлять различные визуальные эффекты;

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

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

Инструменты для верстки Bootstrap

Bootstrap -- это CSS/HTML фреймворк для создания сайтов, разработанный компанией Twitter.

Преимущества Bootstrap [12]:

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

· Масштабируемость -- добавление новых элементов не нарушает общую структуру;

· Лёгкая настраиваемость -- редактирование стилей производится путём создания новых css-правил, которые исполняются вместо стандартных.

· Большое количество шаблонов;

· Огромное сообщество разработчиков;

· Широкая сфера применения -- Bootstrap используется в создании тем для практически любой CMS (OpenCart, Prestashop, Magento, Joomla, Bitrix, WordPress и любые другие), в том числе для одностраничных приложений.

4.2 Система управления версиями Mercurial

Mercurial-- кроссплатформенная распределённая система управления версиями, разработанная для эффективной работы с очень большими репозиториями кода. В первую очередь она является консольной программой [13].

Достоинства [14]:

· Быстрая обработка данных.

· Кросплатформенная поддержка.

· Возможность работы с несколькими ветками проекта.

· Простота в обращение.

· Возможность конвертирования репозиториев других систем поддержки версий.

Недостатки [14]:

· Возможные (но низкие) совпадения хеш - кода отличных по содержанию ревизий.

· Ориентирован на работу в консоли.

Чтобы облегчить работу с системой управления версиями была использована графическая оболочка TortoiseHg (Рисунок 6).

Рисунок 6 -- Диалоговое окно программы Mercurial (TortoiseHg).

5. ОСНОВНАЯ ЧАСТЬ

5.1 Разработка системы

5.1.1 Термины и понятия

Таблица 2 -- Основные термины и понятия.

Термин

Пояснение

Система

В контексте данного проекта -- «Автоматизированная система учёта материальных ценностей».

Подотчётный объект

В контексте данного проекта -- организация (офис), которая вносит, редактирует и удаляет данные в Системе. Измененные данные являются неутвержденными и ожидают подтверждения или отклонения в Главном управлении.

Главное Управление

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

QForm

Название RAD-Фреймворка, на котором построена Система.

БД

База Данных

5.1.2 Особенности работы Системы

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

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

5.1.3 Описание интерфейса системы

Работа со меню и списками

Внешний вид списка
Пример внешнего вида списка приведен на рисунке 7.

Рисунок 7 -- Внешний вид списка.

Каждый раздел Системы представляет собой список. В верхнем меню можно перемещаться по разделам.

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

Кнопки присутствуют только на Подотчётных объектах и необходимы для добавления, редактирования и удаления информации, соответственно. Кнопки "Изменить" и "Удалить" недоступны для выбора, пока не выбрана одна или несколько записей.

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

Кнопки экспортируют выбранные или все записи в Excel или выводят на печать.

Значок подсказывает, что означает цветовое выделение записей.

Рисунок 8 -- Описание элементов списка.

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

Рисунок 9 -- Описание элементов списка.

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

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

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

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

Работа с меню

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

- Желтый -- количество изменённых и новых записей,

- Красный -- количество отклонённых записей,

- Светло-серый -- количество утверждённых записей, направленных на удаление,

- Голубой -- количество непрочитанных сообщений.

Пример верхнего меню представлен на рисунке 10.
Рисунок 10 -- Меню системы.
При нажатии на цветной кружок, пользователь переходит по ссылке в раздел с выбранным фильтром (Рисунок 11):
Рисунок 11 -- Отфильтрованные данные.

Добавление и редактирование данных

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

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

Рисунок 12 -- Описание элементов списка.

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

Чтобы сохранить запись, можно воспользоваться одной из трех кнопок (или комбинацией кнопок на клавиатуре):

-- сохранит и закроет форму.

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

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

Чтобы отклонить внесенные изменения, нужно нажать на кнопку .

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

При создании новой записи на некоторых вкладках требуется сохранение записи (Рисунок 13). После сохранения, на такой закладке появятся поля для ввода информации.

Рисунок 14 -- Сообщение о том, что запись нужно сохранить.

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

Рисунок 14 -- Встроенный список.

После сохранения, измененные и новые записи в списке окрасятся в желтый цвет (Рисунок 15). Это означает, что внесённые изменения ещё не подтверждены в Главном Управлении.

Рисунок 15 -- Измененные записи выделены желтым цветом.

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

В истории изменений отображается название поля, которое было отредактировано, значение поля до и после сохранения записи, а также автор и время редактирования. Желтым цветом выделены последние изменения, белым цветом выделены изменения, которые были внесены ранее и подтверждены в Главном Управлении. Пример представлен на рисунке 16.

Рисунок 16 -- История изменений.

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

Система обсуждений

В каждой форме присутствует закладка «Обсуждения», где пользователи Центрального Управления и Подотчетных Объектов могут обмениваться сообщениями относительно выбранной записи (Рисунок 17).

Рисунок 17 -- Система обсуждений.

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

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

В списке количество сообщений написано в изображении чата (Рисунок 18). В желтом кружке указано количество непрочитанных сообщений, в красном -- количество неотправленных сообщений.

Рисунок 18 -- Количество сообщений в списке.

Возможности Главного Управления

Отличительной особенностью Главного Управления является то, что на главной странице изображена карта с Подотчетными объектами (Рисунок 19).

Рисунок 19 -- Карта с Подотчётными Объектами.

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

-- Попытка установить связь с объектом.

-- Не удалось установить связь с объектом.

-- Связь с объектом установлена.

Под изображением Объекта в цветных кружках находится информация о подразделениях, ответственных лицах, отредактированных и удаленных записях, а также о количестве полученных сообщений (Рисунок 20).

Рисунок 20 -- Информация о Подотчётном Объекте.

-- количество материально ответственных лиц.

-- количество подразделений.

-- количество новых и отредактированных записей. Число в кружке пульсирует, если есть такие записи.

-- количество записей, направленных на удаление. Число в кружке пульсирует, если есть такие записи.

-- количество непрочитанных сообщений.

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

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

При нажатии на изображение Объекта появляется модальное окно с подробной информацией по разделам (Рисунок 21).

Рисунок 21 -- Модальное окно с информацией о Подотчётном Объекте.

Название раздела является ссылкой, которая ведет в одноименный раздел. Каждый цветной кружок тоже является ссылкой, которая ведет в одноименный раздел, но с отфильтрованными данными.

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

В списке Главного Управления есть кнопки «Подтвердить» и «Отклонить», расположенные справа от списка (Рисунок 22).

Рисунок 22 -- Кнопки «Подтвердить» и «Отклонить».

Выбрав одну или несколько таких записей, пользователь Главного Управления, может воспользоваться одной из них. При отклонении записей, появляется модальное окно, в котором можно указать причину отклонения (Рисунок 23).

Рисунок 23 -- Поле для ввода причины отклонения записей.

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

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

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

При подтверждении удаления записей, они удаляются из списка. При отклонении удаления, записи меняют статус на «утвержденные».

Удаление

Удаление записей доступно как в Подотчетных Объектах, так и в Главном Управлении. Чтобы удалить записи, необходимо выбрать их из списка и нажать кнопку «Удалить».

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

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

Удаление измененных и отклоненных записей является удалением внесённых изменений. Происходит возврат до последней утвержденной версии. В истории изменений удаляются последние изменения.

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

Любые удаленные записи можно восстановить, так как в таблице за признак удаления отвечает отдельное поле deleted. При deleted = 1 записи считаются удаленными.

5.1.4 Типы и виды полей для ввода данных

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

Text. Поле ввода текста в одну строку (Рисунок 24). Может быть разной длины. В такое поле допускается вводить любую информацию.

Рисунок 24 -- Текстовое поле.

Textarea. Поле ввода для текста в несколько строк (Рисунок 25). В такое поле допускается вводить любую информацию. При вводе большого количества информации справа от поля появляется полоса прокрутки.

Рисунок 25 -- Текстовое многострочное поле.

Int. Поле для ввода целых чисел (Рисунок 26). В некоторых полях типа int допустимо вводить только неотрицательные числа, например, «Количество материальных ценностей».

Рисунок 26 -- Поле для ввода чисел.

Date. Поле для ввода даты (Рисунок 27). Данные в такое поле можно ввести вручную или, нажав на , выбрать значение из календаря.

Рисунок 27 -- Поле для ввода даты.

Сheckbox. Поле для установки галочки типа «да»/«нет» (Рисунок 28).

Рисунок 28 -- Поле для выбора «да»/«нет».

Radiobutton. Поле выбора одного значения из нескольких возможных (Рисунок 29).

Рисунок 29 -- Поле для выбора одного из несколькиз значений.

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

Рисунок 30 -- Выпадающий список.

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

Рисунок 31 -- Подсказка к полю.

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

Рисунок 32 -- Ограничение количества символов.

Поля, имеющие красную звездочку рядом с названием, являются обязательными для заполнения (Рисунок 33).

Рисунок 33 -- Поле, обязательное для заполнения.

5.1.5 ER-модель данных

Модель сущность-связь представлена в приложении 1.

5.1.6 Структура таблиц

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

· id -- уникальный идентификатор записи

· company_id -- значение поля из таблицы companies, а именно, компания, к которой относится запись

· comment -- примечание. Пользователь на свое усмотрение может добавить комментарий как для себя. Так и для остальных пользователей Системы.

· deleted -- признак удаления. Если значение поля равно 0, то запись считается не удалённой и отображается в списке. Если пользователь удаляет выбранные записи, они полностью не стираются из таблицы, меняется только значение флага deleted на 1. Такие записи легко восстановить в основном списке, поменяв вручную значение поля deleted на 0.

· creator -- автор создания записи. В поле записывается идентификатор из таблицы users (пользователи Системы). Поле creator связано внешним ключом (foreign key) с полем id в таблице users.

· author -- автор последней редакции записи. В поле записывается идентификатор из таблицы users (пользователи Системы). Поле author связано внешним ключом (foreign key) с полем id в таблице users.

· created -- дата и время создания записи. В поле после сохранения новой записи записывается текущая дата и время с учётом часового пояса.

· lastchanged -- дата и время последней редакции записи. В поле после сохранения новой или отредактированной записывается текущая дата и время с учётом часового пояса.

Следует отметить назначение полей, которые встречаются в таблицах, которые синхронизируются между Главным Управлением и Подотчётными объектами:

· oid -- уникальный идентификатор записи на Подотчетном Объекте. На сервере Подотчетного Объекта равен id записи. На сервере Главного Управления уникальным ключом является значение полей company_id и oid.

· rootid -- значение oid родительской записи. При создании записи rootid равен oid.

· signed -- статус записи. Если значение поля signed равно -1, то запись отклонена, если signed равно 0, то запись была отредактирована и ожидает подтверждения/отклонения, если signed равно 1, то запись является подтвержденной.

· is_last -- признак последней утвержденной записи. Если значение поля is_last равно 1, значит текущая запись является утвержденной, в противном случае, запись либо не является утвержденной, либо является не последней утвержденной.

· is_last_draft -- признак последнего черновика. Если значение поля is_last_draft равно 1, значит текущая запись является последним отредактированным черновиком.

· for_delete -- если значение равно 1, то запись направлена на удаление.

Ниже приведена структура таблиц, которые были разработаны мною в процессе разработки Системы.

Таблица companies

В этой таблице (Таблица 3) хранятся данные о компаниях (Главном Управлении и Подотчетных Объектах).

Таблица 3 -- Структура таблицы companies.

Ключ

Название поля

Тип данных/ длина символов

Значение по умолчанию

Примечание

PRI

id

int(10)

AUTO_

INCREMENT

ID записи

MUL

company_id

int(11)

NULL

ID компании

fullname

varchar(255)

NULL

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

city

varchar(255)

''

Город

addr_u

mediumtext

NULL

Юридический адрес

addr_p

mediumtext

NULL

Фактический адрес

ip_addr

varchar(50)

NULL

IP адрес сервера

phone

varchar(255)

NULL

Телефон(ы)

latitude

float

0

Широта расположения организации

longitude

float

0

Долгота расположения организации

last_sync

datetime

NULL

Дата и время последней успешной синхронизации

is_main

tinyint(3)

0

1 - Главное Управление, 0 - Подотчётный объект

comment

varchar(255)

NULL

Примечание

deleted

int(10)

0

Признак удаления. 1 - удалено, 0 - нет

MUL

author

int(11)

NULL

Автор записи

lastchanged

timestamp

NULL

Дата-время последнего изменения

MUL

creator

int(11)

NULL

Создатель записи

created

timestamp

CURRENT_

Дата-время создания записи

TIMESTAMP

Таблица assets

В этой таблице хранятся данные о материальных ценностях (таблица 4).

Таблица 4 -- Структура таблицы assets.

Ключ

Название поля

Тип данных/ длина символов

Значение по умолчанию

Примечание

PRI

id

int(10)

AUTO_

INCREMENT

ID записи

UNI

oid

int(10)

NULL

ID записи для синхронизации

company_id

int(11)

NULL

ID компании из таблицы companies

MUL

rootid

int(10)

NULL

ID родительской записи из текущей таблицы

is_last

tinyint(4)

0

1 - последняя утвержденная версией

is_last_draft

tinyint(4)

0

1 - последний черновиком

signed

tinyint(4)

0

Статус. 1 - утверждено, 0 - ожидает подтверждения, -1 - отклонено

title

varchar(511)

NULL

Название

category

tinyint(3)

NULL

Категория

org_id

int(10)

NULL

ID сторонней организации из таблицы organizations

did

int(10)

NULL

ID подразделения из таблицы departments

pid

int(10)

NULL

ID материально ответственного лица из таблицы persons

MUL

class_id

int(10)

NULL

Класс

mark

varchar(255)

NULL

Тип, марка

inv_num

varchar(255)

NULL

Инвентарный номер

unit_measure

varchar(50)

NULL

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

cnt

double

1

Количество

cost

double

NULL

Цена за единицу

sponsor

int(11)

NULL

Спонсор

balance

tinyint(3)

NULL

1 - на балансе, 2 - за балансом

adate

date

NULL

Дата постановки на учёт

canceled

tinyint(3)

NULL

1 - имущество списано, 0 - нет

cancel_case

date

NULL

Основание для списания

cancel_act

varchar(255)

NULL

Акт списания материальных ценностей

cancel_date

date

NULL

Дата списания

rosim

tinyint(3)

NULL

1 - передано в Росимущество, 2 - принято из Росимущества

rosim_act

varchar(255)

NULL

Акт передачи / приема из Росимущества

rosim_act_date

date

NULL

Дата акта передачи / приема

rosim_date

date

NULL

Дата передачи / приема из Росимущества

for_delete

tinyint(3)

0

1 - Запись направлена к удалению

comment

varchar(255)

NULL

Примечание

deleted

int(10)

0

Признак удаления. 1 - удалено, 0 - нет

MUL

author

int(11)

NULL

Автор записи

lastchanged

timestamp

NULL

Дата-время последнего изменения

MUL

creator

int(11)

NULL

Создатель записи

created

timestamp

CURRENT_

Дата-время создания записи

TIMESTAMP

Таблица departments

В этой таблице данные о структурных подразделениях предприятия (таблица 5).

Таблица 5 -- Структура таблицы departments.

Ключ

Название поля

Тип данных/ длина символов

Значение по умолчанию

Примечание

PRI

id

INT(10)

AUTO_

INCREMENT

ID записи

UNI

oid

INT(10)

NULL

ID записи для синхронизации

company_id

INT(11)

NULL

ID компании из таблицы companies

rootid

INT(10)

NULL

ID родительской записи из текущей таблицы

is_last

TINYINT(4)

0

1 - последняя утвержденная версией

is_last_draft

TINYINT(4)

0

1 - последний черновиком

signed

TINYINT(4)

0

Статус. 1 - утверждено, 0 - ожидает подтверждения, -1 - отклонено

fullname

VARCHAR(255)

NULL

Наименование подразделения

disband

TINYINT(3)

0

1 - подразделение расформировано

disband_dt

DATE

NULL

Дата, когда было расформировано

disband_doc

INT(10)

NULL

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

comment

VARCHAR(255)

NULL

Примечание

for_delete

TINYINT(3)

0

1 - Запись отправлена на удаление

comment

VARCHAR(255)

NULL

Примечание

deleted

INT(10)

0

Признак удаления. 1 - удалено, 0 - нет

MUL

author

INT(11)

NULL

Автор записи

lastchanged

TIMESTAMP

NULL

Дата-время последнего изменения

MUL

creator

INT(11)

NULL

Создатель записи

created

TIMESTAMP

CURRENT_

Дата-время создания записи

TIMESTAMP

Таблица documents

В этой таблице хранятся сообщения, которые привязаны к идентификатору структурного подразделения (таблица 6).

Таблица 6 -- Структура таблицы documents.

Ключ

Название поля

Тип данных/ длина символов

Значение по умолчанию

Примечание

PRI

id

INT(10)

AUTO_

INCREMENT

ID записи

UNI

oid

INT(10)

NULL

ID записи для синхронизации

company_id

INT(11)

NULL

ID компании из таблицы companies

rootid

INT(10)

NULL

ID родительской записи из текущей таблицы

is_last

TINYINT(4)

0

1 - последняя утвержденная версией

is_last_draft

TINYINT(4)

0

1 - последний черновиком

signed

TINYINT(4)

0

Статус. 1 - утверждено, 0 - ожидает подтверждения, -1 - отклонено

adate

DATE

NULL

От какого числа документ

title

VARCHAR(255)

NULL

Название документа

comment

VARCHAR(255)

NULL

Примечание

for_delete

TINYINT(3)

0

1 - Запись отправлена на удаление

comment

VARCHAR(255)

NULL

Примечание

deleted

INT(10)

0

Признак удаления. 1 - удалено, 0 - нет

MUL

author

INT(11)

NULL

Автор записи

lastchanged

TIMESTAMP

NULL

Дата-время последнего изменения

MUL

creator

INT(11)

NULL

Создатель записи

created

TIMESTAMP

CURRENT_

Дата-время создания записи

Таблица organizations

В этой таблице данные об организациях-арендаторах (таблица 7).

Таблица 7 -- Структура таблицы organizations.

Ключ

Название поля

Тип данных/ длина символов

Значение по умолчанию

Примечание

PRI

id

INT(10)

AUTO_

INCREMENT

ID записи

UNI

oid

INT(10)

NULL

ID записи для синхронизации

company_id

INT(11)

NULL

ID компании из таблицы companies

rootid

INT(10)

NULL

ID родительской записи из текущей таблицы

is_last

TINYINT(4)

0

1 - последняя утвержденная версией

is_last_draft

TINYINT(4)

0

1 - последний черновиком

signed

TINYINT(4)

0

Статус. 1 - утверждено, 0 - ожидает подтверждения, -1 - отклонено

title

VARCHAR(255)

NULL

Наименование организации

comment

VARCHAR(255)

NULL

Примечание

for_delete

TINYINT(3)

0

1 - Запись отправлена на удаление

addr

MEDIUMTEXT

NULL

Адрес

phone

VARCHAR(255)

NULL

Телефон(ы)

deleted

INT(10)

0

Признак удаления. 1 - удалено, 0 - нет

MUL

author

INT(11)

NULL

Автор записи

lastchanged

TIMESTAMP

NULL

Дата-время последнего изменения

MUL

creator

INT(11)

NULL

Создатель записи

created

TIMESTAMP

CURRENT_

Дата-время создания записи

TIMESTAMP

Таблица persons

В этой таблице хранятся данные о материально ответственных лицах (таблица 8).

Таблица 8 -- Структура таблицы persons.

Ключ

Название поля

Тип данных/ длина символов

Значение по умолчанию

Примечание

PRI

id

int(10)

AUTO_

INCREMENT

ID записи

UNI

oid

int(10)

NULL

ID записи для синхронизации

company_id

int(11)

NULL

ID компании из таблицы companies

MUL

rootid

int(10)

NULL

ID родительской записи из текущей таблицы

is_last

tinyint(4)

0

1 - последняя утвержденная версией

is_last_draft

tinyint(4)

0

1 - последний черновиком

signed

tinyint(4)

0

Статус. 1 - утверждено, 0 - ожидает подтверждения,

-1 - отклонено

lastname

varchar(255)

NULL

Фамилия

firstname

varchar(255)

NULL

Имя

middlename

varchar(255)

NULL

Отчество

position

varchar(50)

NULL

Должность

vid

varchar(50)

NULL

Профессиональный статус

bdate

date

NULL

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

phone

varchar(255)

NULL

Телефон

email

varchar(255)

NULL

E-mail

fired

tinyint(11)

0

1 - уволен.

fired_dt

date

NULL

Дата увольнения

comment

varchar(255)

NULL

Примечание

for_delete

tinyint(3)

0

1 - Запись отправлена на удаление

comment

varchar(255)

NULL

Примечание

deleted

int(10)

0

Признак удаления. 1 - удалено, 0 - нет

MUL

author

int(11)

NULL

Автор записи

lastchanged

timestamp

NULL

Дата-время последнего изменения

MUL

creator

int(11)

NULL

Создатель записи

created

timestamp

CURRENT_

Дата-время создания записи

TIMESTAMP

Таблица discussion

В этой таблице хранятся сообщения. В поле table хранится название таблицы, к которой относится сообщение. В поле table_id хранится идентификатор из этой таблицы (таблица 9).

Таблица 9 -- Структура таблицы discussion.

Ключ

Название поля

Тип данных/ длина символов

Значение по умолчанию

Примечание

PRI

id

INT(10)

AUTO_

INCREMENT

ID записи

MUL

company_id

INT(11)

NULL

ID компании

table

VARCHAR(63)

NULL

Название сторонней таблицы

MUL

table_id

INT(10)

NULL

ID из таблицы assets

message

TEXT

NULL

Текст сообщения

sent

TINYINT(4)

0

1 - сообщение отправлено,

0 - не отправлено

new

TINYINT(4)

0

1 -- сообщение еще не просмотрено, 0 -- сообщение просмотрено

deleted

INT(10)

0

Признак удаления. 1 - удалено, 0 - нет

MUL

author

INT(11)

NULL

Автор записи

lastchanged

TIMESTAMP

NULL

Дата-время последнего изменения

MUL

creator

INT(11)

NULL

Создатель записи

created

TIMESTAMP

CURRENT_

TIMESTAMP

Дата-время создания записи

5.1.7 Схемы работы модулей

Редактирование записи пользователем Подотчётного Объекта на примере списка «Документы» (documents). Алгоритм работы представлен на рисунке 34.

Рисунок 34 -- Схема работы модуля «Редактирование записи».

Отклонение изменений пользователем Главного Управления. Алгоритм работы представлен на рисунок 35.

Рисунок 35 -- Схема работы модуля «Отклонение изменений в записи».

ЗАКЛЮЧЕНИЕ

В выполненной курсовой работе было рассмотрено создание Автоматизированной Системы Учета Материальных Ценностей.

Созданная Система имеет следующие возможности:

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

· фиксирует имущество за материально ответственным лицом, контролирует передачу ответственности от одного сотрудника к другому (например, в случае увольнения);

· имеет возможность импорта данных из EXCEL и 1С;

· может осуществлять выгрузку выбранных или всех данных в EXCEL, Word, PDF, отправку на печать;

· имеет простой интерфейс и не требует специального обучения пользователей;

· осуществляет быструю синхронизацию данных между Подотчетным Объектом и Центральным Управлением. Данные передаются по защищенному каналу, а все этапы синхронизации защищены режимом транзакции;

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

Для разработки Системы были выбраны средства, языки программирования, библиотеки разработки системы, которыми являются: Mysql 5.6, PHP 5.5, jQuery 1.8.3 и Bootstrap.

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

По итогам разработки дипломного проекта была проведена оценка эффективности системы (Таблица 10).

Таблица 10 -- Оценка эффективности системы АС УМЦ.

Аналог/ Критерий

EXCEL

Google Docs

1C:Бухгалтерия

МойСклад

АСУ ТМЦ

АС УМЦ

Удобный интерфейс

+/-

+

+

+

+

+

Поиск/ Фильтрация

+

+

+

+

+

+

Интеграция с существующими системами

+

+/-

+

+

+/-

+

Специальное обучение пользователей

+

+

-

+

-

+

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

+/-

+/-

+

-

+/-

+

Не требует выхода в глобальную сеть

+

-

+

-

+

+

Разграничены права доступа

-

-

+

+

-

+

Стабильный результат установки обновлений

+

+

-

+

+

+

Из таблицы 6 следует отметить, что созданная Автоматизированная Система Учета Материальных Ценностей отвечает всем заявленным критериям. Она имеет простой и интуитивный интерфейс и не требует от пользователя специальных знаний. Система не нуждается наличие глобальной сети, достаточно локального соединения между Главным Управлением и Подотчетными объектами.

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

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

В конце проделанной работы пользователям была предоставлена система по учёту материальных ценностей, которая выполняет широкий ряд функций, является простой в эксплуатации, не имеет специальных требований для работы с ней. Система «АС УМЦ» обеспечивает защиту и сохранность данных, что дает возможность крупнопромышленные предприятия, военные производственные объекты являться её пользователями.

Выполнение дипломного проекта осуществляется по заказу компании ООО «Бреалит». Основное направление компании -- автоматизация процессов управления на предприятии. Был заключен договор с учреждением «Федеральное управление по безопасному хранению и уничтожению химического оружия при Министерстве промышленности и торговли Российской Федерации». Система установлена в операционном отделе движимого имущества в Москве и на 6 объектах с 1 октября 2015 года.

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

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

1. «Microsoft Excel» (Википедия) [Электронный ресурс] // коллектив авторов Википедии, 2016. - URL: https://ru.wikipedia.org/wiki/Microsoft_Excel / (Дата обращения 12.02.2016)

2. «Google Docs» (Википедия) [Электронный ресурс] // коллектив авторов Википедии, 2016. - URL: https://ru.wikipedia.org/wiki/Google_Docs/ (Дата обращения 16.04.2016)

3. «1C:Предприятие» (1С) [Электронный ресурс] // коллектив авторов 1C, 2016. - URL: http://www.1c.ru/rus/products/1c/1sbu.htm (Дата обращения 13.02.2016)

4. «МойСклад» (МойСклад) [Электронный ресурс] // коллектив авторов МойСклад, 2015. - URL: http://www.moysklad.ru/ (Дата обращения 16.02.2015)

5. «Автоматизированная система учета товарно-материальных ценностей»

(SlideShare) [Электронный ресурс] // коллектив авторов SlideShare, 2015. - URL: http://www.slideshare.net/YuriKasian/ss-40709503 (Дата обращения 16.02.2016)

6. «Учебник по PHP 5» (Softtime) [Электронный ресурс] // коллектив авторов Softtime, 2016. - URL: http://www.softtime.ru/bookphp/gl12_1.php (Дата обращения 05.04.2016)

7. «Справочное руководство по MySQL» (MySQL) [Электронный ресурс] // коллектив авторов MySQL, 2016. - URL: http://www.mysql.ru/docs/man/Comparisons.html (Дата обращения 15.04.2016)

8. «Что такое PHP?» (PHP) [Электронный ресурс] // коллектив авторов PHP, 2016. - URL: http://php.net/manual/ru/intro-whatis.php (Дата обращения 05.03.2016)

9. «PHP: самый популярный язык для Интернета» (Интернет-технологии) [Электронный ресурс] // коллектив авторов Интернет-технологии, 2016. - URL: http://www.internet-technologies.ru/articles/article_1991.html (Дата обращения 04.04.2016)

10. «Библиотека JavaScript» (Spacebox) [Электронный ресурс] // коллектив авторов Spacebox, 2016. - URL: http://www.spacebox.ru/ru/about/faq/javascript/ (Дата обращения 28.03.2016)

11. «Что такое jQuery, основные понятия и возможности» (Site-Do) [Электронный ресурс] // коллектив авторов Site-Do, 2016. - URL: http://www.site-do.ru/js/jquery1.php (Дата обращения 28.03.2016)

12. «Что такое Bootstrap» (Dedushka) [Электронный ресурс] // коллектив авторов Dedushka, 2016. - URL: http://dedushka.org/uroki/6901.html (Дата обращения 23.03.2016)

13. «Mercurial» (Википедия) [Электронный ресурс] // коллектив авторов Википедии, 2016. - URL: https://ru.wikipedia.org/wiki/Mercurial (Дата обращения 13.04.2016)

14. «Система управления версиями Mercurial» (Hi-tech) [Электронный ресурс] // коллектив авторов Hi-tech, 2016. - URL: http://all-ht.ru/inf/prog/p_0_1.html (Дата обращения 13.04.2016)

Размещено на Allbest.ru


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

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