Разработка программного продукта "Гид по МГТУ"
Понятие, типы и назначение мультимедийных путеводителей. Разработка программного обеспечения для интерактивного гида для ГОУ ВПО "МГТУ им. Г.И. Носова". Выбор формата графического материала. Функциональные схемы и компоненты программы, справочная система.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 16.03.2015 |
Размер файла | 4,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- 1. Введение в предметную область
- 1.1 Электронные путеводители
- 1.1.1 Понятие электронный путеводитель
- 1.1.2 Типы электронных путеводителей
- 1.1.3 Предназначение мультимедийных путеводителей
- 1.2 Применение электронного путеводителя для ГОУ ВПО «МГТУ им. Г.И. Носова»
- Выводы по главе 1
- 2. Постановка задачи и выбор метода ее решения
- 2.1 Постановка задачи для разработки программного обеспечения
- 2.2 Выбор алгоритма поиска оптимального маршрута
- 2.2.1 Графы. Основные понятия и определения
- 2.2.2 Алгоритмы поиска кратчайшего пути
- 2.2 Выбор базы данных
- 2.2.1 Понятие базы данных. Функциональная пригодность
- 2.2.2 База данных, используемая в программном продукте «Гид по МГТУ»
- 2.3 Выбор формата графического материала
- Выводы по главе 2
- 3. Разработка программного обеспечения для Интерактивного гида по ГОУ ВПО «МГТУ им. Г.И. Носова»
- 3.1 Функциональные схемы работы программы
- 3.2 Компоненты программы
- 3.2.1 Компонент хранения данных
- 3.2.2 Компонент поиска оптимального маршрута
- 3.2.3 Компонент визуализации
- 3.2.3.1 Реализация режима карты
- 3.2.3.2 Реализация фоторежима
- 3.2.4 Компонент предоставления справочной информации
- 3.4 Разработка интерфейса программного продукта
- 3.4.1 Эргономика и техническая эстетика
- 3.4.2 Формы программы
- 3.4.2.1 Главная форма программы
- 3.4.2.2 Форма Справочная информация
- 3.4.2.3 Форма Поиск маршрута
- 3.4.2.4 Форма Поиск аудитории
- 3.5 Создание справочной системы и помощника
- 3.6 Пример работы программы
- Выводы по главе 3
- 4. Безопасность и экологичность
- 4.1 Анализ опасных и вредных факторов на рабочем месте пользователя ПЭВМ
- 4.1.1 Уровень звука на рабочих местах, оборудованных ПЭВМ
- 4.1.2 Параметры микроклимата
- 4.1.3 Напряжение прикосновения и токи
- 4.1.4 Освещение на рабочих местах, оборудованных ПЭВМ
- 4.2 Мероприятия по улучшению условий труда и техники безопасности на рабочем месте пользователя ЭВМ
- 4.3 Чрезвычайные ситуации
- 4.3.1 Общая характеристика пожарной безопасности вычислительного центра
- 4.3.2 Противопожарные мероприятия. Установки обнаружения и тушения пожаров
- Выводы по главе 4
- 5 Анализ технико-экономических показателей и обоснование экономической целесообразности принятых в проекте решений
- 5.1 Постановка задачи
- 5.2 Выбор и обоснование организационно правовой формы
- 5.3 Порядок регистрации
- 5.4 Условия договора на создание компьютерной программы
- 5.5 Расчет общей трудоемкости работ
- 5.6 Исходные данные для расчета финансового состояния в течение периода разработки программы
- 5.7 Расчет нематериальных активов
- 5.8 Расчет экономических затрат на производство программного продукта
- 5.9 Налогообложение
- 5.10 Амортизация
- 5.11 Расчет заработной платы
- 5.12 Расчет продажной стоимости
- Выводы по главе 5
- Заключение
- Список использованных источников
Введение
Магнитогорский государственный технический университет им. Г.И. Носова - один из крупнейших вузов страны, в котором обучается более девяти тысяч студентов и работает около двух тысяч преподавателей и сотрудников. Сегодня это признанный многопрофильный образовательный и научный центр не только Уральского региона, но и страны.
Здания МГТУ образуют комплекс, включающий учебные корпуса и другие специализированные помещения. К услугам студентов и преподавателей МГТУ - центры информационных технологий, информационно-вычислительный, издательский, патентный и многие другие отделы, 396 специализированных кабинетов, учебных мастерских, научных и творческих лабораторий, 24 компьютерных класса.
Студентам, особенно первокурсникам, и преподавателям часто бывает сложно сориентироваться среди корпусов и многочисленных коридоров ВУЗа, найти ту или иную аудиторию, кафедру, деканат и пр. При нахождении пути определенную помощь могут оказать планы эвакуации людей. Однако неудобство их заключается в том, что они не всегда могут оказаться под рукой. Кроме того, на каждом из планов отображена лишь часть этажа здания. Поэтому появилась необходимость создания интерактивного гида по МГТУ.
Целью данного проекта является разработка программного продукта «Гид по МГТУ», который позволит наглядно представить схему коридоров ВУЗа, быстро найти наилучший маршрут между двумя аудиториями и получить справочную информацию по основным объектам МГТУ.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Создать базу данных, содержащую информацию об аудиториях, связях между ними, планы и фотографии ВУЗа.
2. Реализовать поиск оптимального пути с использованием теории графов. Критерием оптимальности является расстояние между аудиториями.
3. Графически отобразить результаты поиска. Для отображения результата предусмотреть два режима: режим карты и фоторежим.
4. Реализовать возможность получения справочной информации по основным объектам и ВУЗу в целом.
5. Разработать пользовательский интерфейс.
Критериями оценки достижения целей создания программы «Гид по МГТУ» являются:
- быстрота и легкость поиска необходимой аудитории, а также маршрута до нее;
- быстрота получения справочной информации, ее полнота и достоверность.
Разрабатываемая программа в совокупности с предложенными для её реализации технологиями в дальнейшем может быть применена в отношении различных общественно значимых зданий города со сложной архитектурой, таких как Администрация г. Магнитогорска, Альфа-Центр, поликлиники, другие вузы города, крупные торговые комплексы.
Дипломный проект имеет традиционную структуру. Выделена глава, описывающая предметную область. Постановка задачи и выбор алгоритмов ее решения приводится во второй главе. Результаты разработки изложены в третьей главе. Четвертая глава описывает безопасность и экологичность технических систем. В пятой главе изложен технико-экономический анализ разработки программного продукта.
1. Введение в предметную область
1.1 Электронные путеводители
1.1.1 Понятие электронный путеводитель
В Большой Советской энциклопедии можно встретить следующее определение термина путеводитель: Путеводитель - краткое справочное издание. Путеводители по стране, городу и т.п., предназначенные главным образом для туристов, содержат сведения о местных достопримечательностях, учреждениях культуры, путях сообщения, отелях и т.п. Широко известны путеводители по странам - Бедекеры. Путеводители по отдельным учреждениям культуры (музеям, крупным библиотекам) или исторически-художественным комплексам сообщают об их истории, структуре, фондах.
Предшественники путеводителей появились ещё в древние времена. По принципу путеводителя построена, к примеру, книга древнегреческого историка Павсания «Описание Эллады». В ней подробно рассматриваются достопримечательности греческих областей и городов.
В современном понятии, путеводитель (гид) - это печатный, электронный или аудиовизуальный справочник о каком-нибудь городе, историческом месте, музее, туристическом маршруте. Главная задача гида - помочь сориентироваться среди наблюдаемого и обозреть все, что следует. Используется, в основном, туристами для лучшего ориентирования в незнакомой местности. Его композиция часто подчинена рекомендуемым маршрутам осмотра.
Обычно туристы пользуются буклетом-путеводителем или услугами гида. Но теперь они все чаще предпочитают надеть наушники и включить мобильное устройство с программой экскурсии. Во многих туристических центрах, гостиницах, музеях мира можно взять напрокат электронный гид.
Мультимедийный путеводитель, в отличие от обычного аудиогида, оснащен картой, фотографиями, гипертекстом, а также GPS-навигатором. Он не только расскажет о достопримечательностях, но и покажет дорогу. С таким гидом человек сможет получить гораздо больше информации и впечатлений, при этом он сам выбирает маршрут экскурсии.
1.1.2 Типы электронных путеводителей
Электронный путеводитель - широкое понятие. Он может иметь разные формы:
1) Аудиогид - воспроизводится на любом устройстве, поддерживающем mp3. Аудиоэкскурсия - это маршрут, состоящий из остановок, каждой из которых соответствует один трек.
2) Электронный буклет - на экране воспроизводится файл буклета, с картой и текстом (обычно в pdf-формате).
3) Интерактивный справочник - на экране воспроизводится интерфейс программы с доступом к карте и справочной информации.
4) Мультимедийный путеводитель - на карте размещены гипертекстовые ссылки, открывающие фотографии, описание, звуковой комментарий, видеоролик.
5) Мультимедийный навигатор (GPS-путеводитель) - определяет местонахождение экскурсанта, показывает дорогу и автоматически включает звуковой комментарий.
Следует различать так называемые «умные путеводители», которые сами могут определить, где находится человек, и путеводители с ручным управлением.
Под открытым небом используют путеводители, имеющие спутниковую навигацию. Сейчас действует американская система GPS и российская ГЛОНАСС, а к 2013 году должна появиться система Galileo, с еще более высокой точностью навигации. Однако сила сигнала спутниковой навигации очень мала - в помещениях GPS не действует.
Задача автоматического ориентирования внутри помещений решается одним из методов альтернативной навигации:
1) Беспроводные сети (WiFi). Принцип работы: в здании устанавливается сервер и беспроводные точки доступа (Wireless Access Point). Программа считывает через точки доступа информацию, хранящуюся в базе данных сервера. Плюсы: не надо хранить много информации, работает быстрее; базу данных можно обновлять централизованно. Минусы: дорого, сложная технология.
2) Навигация по мобильной связи (GSM). Местоположение определяется по близости к базовой станции сотовой связи.
3) Радиочастотная идентификация (RFID). Навигация ведется по специальным RFID-меткам. Это чипы, которые прикрепляются к объектам. Приемник считывает информацию с этих чипов. Такая система активно используется в логистике, на больших складах, в транспорте.
Очевидно, такие проекты требует немалых затрат, поэтому создаются путеводители с ручным управлением.
Электронный путеводитель может быть в виде интернет-сайта или программы.
Интернет-сайты или онлайн-путеводители обновляются быстрее и чаще, чем их аналоги, поэтому в них можно найти больше заслуживающей доверия информации, чем в книгах самого авторитетного издательства. На таких сайтах размещаются GPS-маршрутыё экскурсии, информация о достопримечательностях и их фотографии. Достоинством таких путеводителей является бесплатная информация, постоянные обновления, нет необходимости хранить много информации; недостатком - наличие доступа в Интернет, большие объемы загружаемой информации.
Программа устанавливается на мобильное устройство (КПК, смартфон, iPod, автонавигатор), персональный компьютер (ноутбук) или запускается с диска. Достоинством является автономность, приспособленность для конкретной цели и устройства. Недостатком - программа обычно платная, данные могут устаревать, не всегда хорошо устанавливается, бывают сбои.
В последнее время популярными становятся информационные сенсорные киоски с электронными системами навигации. Такие справочники-путеводители устанавливаются преимущественно в музеях, торговых, бизнес- и публичных центрах.
1.1.3 Предназначение мультимедийных путеводителей
Электронные путеводители могут выпускаться с конкретными целями:
- Для пеших экскурсий по городу.
- Для автомобильных туров.
- Для музеев, галерей, выставочных залов.
- Для музеев-заповедников и национальных парков.
- Для курортных зон.
- Для крупных развлекательных центров.
- Для соревнований по ориентированию.
- Для масштабных выставок, фестивалей и других мероприятий.
1.2 Применение электронного путеводителя для ГОУ ВПО «МГТУ им. Г.И. Носова»
Упомянутые выше путеводители, несмотря на их функциональность и достоинства, не отличаются регулярностью использования, так как, в большинстве случаев, нет необходимости многократного посещения одних и тех же городов, музеев и т.п. Однако следует задуматься о разработке аналогичных гидов для зданий, не являющихся достопримечательностями, но имеющих общественную значимость и отличающихся сложной архитектурой. В городе Магнитогорске, к таким объектам можно отнести Администрацию г. Магнитогорска, Альфа-Центр, поликлиники, другие вузы города, торговые комплексы и промышленные предприятия. Одним из таких объектов можно назвать и Магнитогорский государственный технический университет им. Г.И. Носова.
В настоящее время МГТУ - единый учебно-научный производственный комплекс, в котором не только готовят высококлассных специалистов, активно используя инновационные технологии в образовательной деятельности, но и выполняют важные для страны научные разработки. Здесь действует вузовско-академическая лаборатория новых металлургических технологий УРО РАН, региональная ветеринарно-бактериологическая лаборатория, открыта независимая испытательная лаборатория нефтепродуктов, организуется центр исследования материалов и металлоизделий и другие. К услугам студентов и преподавателей - центры информационных технологий, информационно-вычислительный и издательский, патентный отдел, 396 специализированных кабинетов, учебных мастерских, научных и творческих лабораторий, 24 компьютерных класса.
В его структуру входят 11 факультетов: архитектурно-строительный, горных технологий и транспорта, химико-металлургический, энергетический, автоматики и вычислительной техники, механико-машиностроительный, технологий и качества, экономики и права, факультет повышения квалификации и профессиональной переподготовки специалистов, заочный, факультет послевузовского профессионального образования. Как высшее учебное заведение с полным циклом образовательных услуг МГТУ имеет разветвленную систему довузовского образования, в составе которой подготовительные курсы, школа довузовского образования, многопрофильный и архитектурный лицеи. Послевузовскую профессиональную подготовку осуществляют аспирантура (23 научные специальности), докторантура (5 научных специальностей), факультет послевузовского профессионального образования.
Оценив значимость, популярность и вместе с тем сложную структуру описанного объекта, целесообразным становится создание путеводителя-справочника по Магнитогорскому государственному техническому университету им. Г.И. Носова («Гид по МГТУ»). Данный программный продукт позволит наглядно представить схему коридоров ВУЗа, быстро найти нужную аудиторию и оптимальный маршрут между двумя аудиториями, получить справочную информацию по основным объектам МГТУ.
«Гид по МГТУ» будет полезен для абитуриентов, студентов этого ВУЗа, преимущественно первокурсников, преподавательского состава, управляющего и обслуживающего персонала.
Выводы по главе 1
Создание программного продукта «Гид по МГТУ» позволит легче и быстрее ориентироваться среди коридоров и корпусов ВУЗа. Это исключит лишние перемещения по зданиям и высвободит часть времени для повторения учебного материала, что должно привести к повышению успеваемости студентов. Кроме того, данный программный продукт послужит помощником для абитуриентов.
2. Постановка задачи и выбор метода ее решения
2.1 Постановка задачи для разработки программного обеспечения
Необходимо создать программу, позволяющую наглядно представить схему коридоров ВУЗа, быстро найти нужную аудиторию и оптимальный маршрут между двумя аудиториями, получить справочную информацию по основным объектам МГТУ. Реализовать два режима два режима представления пользователю запрашиваемой информации: упрощенный режим (режим карты) и фоторежим. Предусмотреть возможность работы с картой: масштабирование, перемещение по карте, перемещение между этажами ВУЗа.
Информационное обеспечение программы «Гид по МГТУ» - перечень аудиторий, информация о взаимном расположении, справочная информация, набор графических планов, набор фотографий - должно быть достаточным для эффективного выполнения функций создаваемой программы, а также обеспечивать возможность расширения информационных массивов с учетом перспектив развития. Вся информация должна быть достоверной на момент создания программного продукта и периодически обновляться.
В результате работы программы, в зависимости от запроса пользователя, выводится следующая информация:
- оптимальный маршрут между двумя аудиториями;
- местоположение запрашиваемой аудитории;
- информация о выбранном объекте.
В состав программы «Гид по МГТУ» входят следующие компоненты:
- компонент хранения данных об аудиториях;
- компонент предоставления справочной информации;
- компонент поиска оптимального маршрута;
- компонент визуализации.
Для эксплуатации программного продукта «Гид по МГТУ» определены следующие роли:
- администратор;
- пользователь.
Основной обязанностью администратора является поддержка достоверности информации, предоставляемой программой, то есть работа над уточнением и расширением базы справочника по мере необходимости. Администратор должен обладать достаточным уровнем квалификации для поддержки и модернизации программного продукта.
Пользователи программы должны иметь опыт работы с персональным компьютером на базе операционных систем Microsoft Windows на уровне рядового пользователя и свободно осуществлять базовые операции в стандартных приложениях Windows.
Для работы с программой не требуется покупка лицензий на программное обеспечение сторонних производителей. Базовой программной платформой является операционная система Microsoft Windows.
Перечень необходимой документации для сопровождения программы «Гид по МГТУ»:
- описание организации информационной базы;
- каталог баз данных;
- руководство пользователя;
- руководство программиста.
Описания и иные текстовые документы на машинных носителях подготавливаются редактором Microsoft Word системы Windows.
2.2 Выбор алгоритма поиска оптимального маршрута
Для поиска оптимального маршрута используется теория графов. Взаимное расположение аудиторий удобно представить в виде графа, вершинами которого являются аудитории, а ребрами - наличие соединения между ними.
2.2.1 Графы. Основные понятия и определения
Графы могут рассматриваться как модели программ, данных и процессов. Они служат удобной структурой данных для представления объектов обработки информации. Расширение традиционного круга задач, решаемых на ЭВМ (перевод текста, распознавание речи, составление расписаний, игровые программы, экспертные и информационные системы и т.д.), за последние несколько десятков лет превратили комбинаторику и теорию графов в основной инструмент решения огромного числа задач.
Граф - это совокупность объектов со связями между ними. Объекты представляются как вершины, или узлы графа, а связи - как дуги, или рёбра. Для разных областей применения виды графов могут различаться направленностью, ограничениями на количество связей и дополнительными данными о вершинах или рёбрах. Геометрический способ задания графа изображен на рисунке 1.
Граф, в котором направление линий не выделяется (все линии являются ребрами), называется неориентированным; граф, в котором направление линий принципиально (линии являются дугами) называется ориентированным.
Рисунок 1 - Геометрический способ представления графа
Две вершины называются смежными, если они соединены ребром (дугой). Смежные вершины называются граничными вершинами соответствующего ребра (дуги), а это ребро (дуга) - инцидентным соответствующим вершинам.
Цепью называется множество ребер (в неориентированном графе), которые можно расположить так, что конец (в этом расположении) одного ребра является началом другого. Другое определение: цепь - последовательность смежных вершин. Простая цепь - цепь, в которой ни одно ребро не встречается дважды. Элементарная цепь - цепь, в которой ни одна вершина не встречается дважды. Длиной цепи называется число ребер цепи (или сумма длин ее ребер, если последние заданы).
Если любые две вершины графа можно соединить цепью, то граф называется связным. Если граф не является связным, то его можно разбить на связные подграфы, называемые компонентами. Подграфом называется часть графа, образованная подмножеством вершин вместе со всеми ребрами, соединяющими вершины из этого множества.
Рассмотрим несколько способов машинного представления графов.
Матрица смежности - квадратная матрица nЧn, элемент aij которой равен единице, если ребро (i, j) V, и нулю, если ребро (i, j) V, i, j X. X - конечное множество вершин, V - конечное множество ребер, n - число вершин. Недостатком являются требования к памяти.
Матрица инциденций для ребер графа - прямоугольная матрица nЧm, элемент rij которой равен единице, если вершина i инцидентна ребру j, и нулю в противном случае, i = 1..n, j = 1..m, m - число ребер.
Списки инцидентности: каждой вершине i X ставится в соответствие список вершин, соединенных ребрами с вершиной i. Для неориентированного графа каждое ребро (i, j) будет представлено дважды: в списке для i и в списке для j.
Пример представления неориентированного графа с помощью списков инцидентности приведен на рисунке 2. Отметим, что для неориентированных графов каждое ребро представлено в списках инцидентности дважды.
Рисунок 2 - Представление графа с помощью списков инцидентности
Число ячеек памяти, необходимое для представления графа с помощью списков инцидентности, будет, очевидно, иметь порядок m+n.
2.2.2 Алгоритмы поиска кратчайшего пути
Путь между двумя вершинами называется кратчайшим, если его стоимость минимальна среди стоимостей всех возможных путей между этими двумя вершинами. Между парой вершин, очевидно, может быть несколько кратчайших путей одинаковой стоимости. Кратчайшего пути между двумя вершинами может не существовать в случаях, когда они лежат в разных компонентах.
Существует много различных алгоритмов, в основе которых лежит систематический перебор вершин графа.
Поиск в ширину
Основная идея поиска в ширину - у вершины i просматриваются и помещаются в очередь сразу все ее новые «соседи», после чего i становится использованной и удаляется из очереди.
Так как мы находим сразу всех соседей, поиск, как волна от источника, равномерно распространяется во все стороны. Поэтому, в очереди, сначала находятся все вершины, удаленные от начальной вершины на расстояние одного ребра, через некоторое время - все вершины, удаленные на расстояние двух ребер и т.д. Если длины ребер не заданы, то путь, найденный таким образом, будет кратчайшим.
Недостатком данного алгоритма является то, что поиск идет равномерно во всех направлениях, вместо того, чтобы быть направленным в сторону цели.
Алгоритм поиска с возвратом
Опишем общую схему алгоритма с возвратом, позволяющего значительно сократить число шагов в алгоритмах полного перебора всех возможностей. Чтобы применить этот метод, искомое решение должно иметь вид последовательности (x1, x2, ..., xn).
Основная идея алгоритма состоит в том, что мы строим решение, начиная с пустой последовательности длины 0. Имея частичное решение (x1, x2, ..., xi), мы стараемся найти такое допустимое значение xi+1, относительно которого мы не можем сразу заключить, что (x1, x2, ..., xi+1) нельзя расширить до полного решения (либо (x1, x2, ..., xi+1) уже является решением). Если такое предполагаемое, но еще не использованное решение xi+1 существует, то мы добавляем его к нашему частичному решению и продолжаем процесс для последовательности (x1, x2, ..., xi+1). Если его не существует, то мы возвращаемся к нашему частичному решению (x1, x2, ..., xi-1) и продолжаем наш процесс, отыскивая новое, еще не использованное допустимое значение xi - отсюда название «алгоритм с возвратом».
Мы предполагаем также, что существует некоторая простая функция, которая произвольному частичному решению (x1, x2, ..., xi) ставит в соответствие значение P(x1, x2, ..., xi) (истина либо ложь) таким образом, что если P(x1, x2, ..., xi) = ложь, то последовательность (x1, x2, ..., xi) нельзя расширить до решения.
Если P(x1, x2, ..., xi) = истина, то мы говорим, что значение xi допустимо (для частичного решения (x1, x2, ..., xi-1)), но это не означает, что (x1, x2, ..., xi-1) обязательно расширяется до полного решения. Этот процесс можно записать в виде:
{
k = 1;
while ( k>0 )
if ( существует еще неиспользованный элемент y, такой что
P(X[1],X[2],...,X[k-1],y)
{
X[k] = y; //Элемент y использован.
if ((X[1],X[2],...,X[k]) является целочисленным решением) {
cout << (X[1],X[2],...,X[k]);
k++;
}
}
else
//Возврат на более короткое частичное решение; все элементы
//вновь становятся неиспользованными.
k -= 1;
}
Приведем рекурсивный вариант схемы алгоритма с возвратом:
AP (k)
//Генерирование всех решений, являющихся расширением
//последовательности X[1],X[2],...,X[k-1].
//Массив X - глобальный.
{
for (y, такого, что P(X[1],X[2],...,X[k-1])) {
X[k] = y;
if (X[1],X[2],...,X[k] есть целочисленное решение) {
cout << X[1],X[2],...,X[k];
AP(k+1);
}
}
Генерировать все решения можно вызовом AP(1). В рекурсивном варианте «возврат» является частью механизма рекурсии и не появляется в явном виде.
В случае поиска оптимального маршрута на графе, ребра которого имеют неотрицательные веса, перебор с возвратом можно значительно ускорить, немного изменив общую схему алгоритма.
Каждому решению (и полному, и частичному) приписывается стоимость (целевая функция). Учитывая область применения данного алгоритма, можно предварительно вычислить начальное максимальное значение целевой функции. Известно, что при продолжении решения стоимость может только увеличиваться. Это свойство позволяет отбрасывать любое частичное решение в процессе поиска, если его цена больше цены ранее вычисленного решения. Таким образом, мы избавляем себя от генерации всех заведомо неоптимальных продолжений, т.е. обрубаем целое поддерево на дереве поиска.
Также стоит проверять на допустимость просматриваемую вершину в зависимости от заданных условий поиска.
2.2 Выбор базы данных
Для работы программы необходима информация об аудиториях, связях между ними, связях между фотографиями аудиторий и коридоров для перемещения по ВУЗу. Для ее хранения было принято разработать базу данных.
2.2.1 Понятие базы данных. Функциональная пригодность
База данных - информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов с одинаковым набором свойств или поименованную совокупность структурированных данных.
На уровне физической модели электронная база данных представляет собой файл или их набор в формате TXT, CSV, Excel, DBF, XML либо в специализированном формате конкретной СУБД.
Современные базы данных - один из тех объектов в сфере информатизации, от которых иногда требуется особенно высокое качество и наличие возможности его оценки.
В зависимости от области применения, приоритет при оценке качества может отдаваться различным конструктивным характеристикам: надежности и защищенности применения (финансовая сфера), удобству использования малоквалифицированными пользователями (социальная сфера), эффективности использования ресурсов (сфера материально-технического снабжения). Однако практически во всех случаях сохраняется некоторая роль других конструктивных показателей качества - для каждого из них необходимо оценивать его приоритет для конкретной сферы применения.
В нашем случае основными характеристиками, обеспечивающими функциональную пригодность базы данных, являются:
- корректность или достоверность данных;
- практичность (применимость);
- мобильность.
Корректность или достоверность данных - это степень соответствия данных об объектах в базе данных реальным объектам в данный момент времени. Сюда же можно отнести и объем базы данных - относительное число записей описаний объектов или документов, доступных для хранения и обработки, по сравнению с полным числом реальных объектов во внешней среде.
Практичность (применимость) определяет пригодность и полезность применения базы данных для определенных пользователей. В эту группу показателей входят характеристики, отражающие функциональную понятность, удобство освоения, системную эффективность и простоту использования данных. Наличие этих характеристик говорит о правильной организации базы данных. Некоторые из них можно оценивать экономическими показателями - затратами труда и времени специалистов на реализацию определенных функций взаимодействия с данными.
Понятность зависит от качества документации и субъективных впечатлений потенциальных пользователей. Простота использования - возможность удобно и комфортно эксплуатировать базу данных и манипулировать данными. Изучаемость может определяться трудоемкостью и длительностью подготовки пользователя.
Мобильность баз данных, как и программ, можно характеризовать в основном длительностью и трудоемкостью их инсталляции, адаптации при переносе на иные аппаратные и операционные платформы.
2.2.2 База данных, используемая в программном продукте «Гид по МГТУ»
Текст является универсальным средством представления информации. В связи с тем, что сейчас на всех платформах байты имеют размер 8 бит и существует стандарт кодирования символов, текстовый формат является переносимым. Т.е. текст, набранный на одной платформе, практически без труда прочитается на другой.
Для хранения необходимой информации в программе используются обычные текстовые файлы. Такие файлы содержат текст без форматирования, поэтому чтобы использовать их в качестве файла базы данных необходимо структурировать его содержимое таким образом, чтобы можно было разделить его на записи (строки), а каждую запись - на поля (столбцы). Текстовые файлы с правильной структурой делятся на два типа:
1) Файлы с разделителями. В таком файле каждая запись занимает отдельную строку, а поля отделяются одним знаком разделителя. В качестве разделителя можно использовать любой знак, который не входит в значения полей, например, знак табуляции, точку с запятой, запятую, пробел и т. д.
2) Файлы с фиксированной длиной записей. В таком файле каждая запись занимает отдельную строку, а длина полей остается постоянной во всех записях. Если фактическая длина значения поля меняется, короткие значения должны быть дополнены пробелами.
В данном случае используется текстовые файлы обоих типов, а записи располагаются построчно. Этот вариант является наиболее оптимальным для реализуемого программного продукта. Определяющим фактором послужило то, что в процессе работы не происходит изменение базы данных.
Кроме того, зная все форматы свих данных и методы работы с ними, можно самостоятельно перенести приложение с данными на любые платформы, включая те, где нет еще никаких систем управления базами данных (СУБД).
Очевидно еще одно преимущество перед полноценной базой данных - простота реализации, легкость редактирования и просмотра. Для создания требуется лишь обычный текстовой файл, который можно создать с помощью генератора отчетов или обычного редактора. Тогда как для доступа к данным под управлением СУБД нужен клиент этой СУБД, имеющий соединение с самой СУБД, и знание языка этого клиента. Стоит отметить, что СУБД это не только отдельный программный продукт, требующий инсталляции и сопровождения, но и, в некоторых случаях, оплаты за ее использование.
Одним из вариантов мог выступить язык XML (eXtensible Marckup Language, расширяемый язык разметки) - это язык для описания сложных документов. Он во многом похож на ТХТ и под него есть множество библиотек, облегчающих работу. Однако, для нашего случая синтаксис XML избыточен, а размер XML документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных. Эта избыточность XML может повлиять на эффективность приложения.
Текстовые файлы обладают и рядом недостатков. В первую очередь, это медленный поиск записей, поскольку поиск в массиве данных происходит путём последовательного перебора всех его записей. Помимо этого существуют проблемы при совместном доступе к файлу, возможности по масштабированию сильно ограничены, отсутствует возможность установки различных уровней доступа к данным. Для данного программного продукта данные недостатки не являются критическими.
Несмотря на «примитивность» таких текстовых баз данных, мощные системы управления базами данных позволяют импортировать подобные файлы и преобразовывать их в «настоящие» базы данных. Поэтому на начальном этапе данные можно хранить в текстовом файле, а потом, когда такая система появится, данные не пропадут и будут успешно импортированы.
2.3 Выбор формата графического материала
Одной из основных функций программы «Гид по МГТУ» является наглядное представление пользователю запрашиваемой аудитории и оптимального маршрута, причем вывод осуществляется в двух режимах: режиме карты и фоторежиме. Для реализации этой функции необходимо наличие графического материала - планов этажей и фотографий коридоров ВУЗа.
В программе используются изображения двух форматов:
- планы этажей - в формате bmp;
- фотографии коридоров и аудитории ВУЗа - в формате jpeg.
Рассмотрим преимущества и недостатки этих форматов.
Как известно, традиционным и самым широко применяемым графическим форматом в операционных системах Windows является формат BMP. Он поддерживается всеми графическими редакторами, работающими под управлением этой операционной системы. Этот формат проектировался в основном для упрощения программирования и поэтому до сих пор поддержка других графических форматов в Win API представлена очень слабо.
Его преимуществом является очень быстрый вывод изображений, основным недостатком - огромные размеры файлов. Причина этому - поддержка форматом лишь простейшего RLE-сжатия. При таком сжатии последовательность повторяющихся величин (в нашем случае - набор бит для представления видеопикселя) заменяется парой - повторяющейся величиной и числом её повторений.
Если учесть необходимость включения в приложение большого числа достаточно крупных графических изображений, то становится понятным желание использования приложением других графических форматов (таких как GIF или JPEG).
Формат JPEG на сегодняшний день является одним из наиболее распространенных. Он основан на сжатии изображений с потерей качества, но полноцветные изображения (с цветовой глубиной 24 бит/пиксель) получаются достаточно малыми по объему. К тому же при небольшом масштабировании их качество не особо резко ухудшается. Этот формат идеален для изображений с использованием любого большого количества цветов и оттенков. Однако, для изображений с малым количеством цветов (256 и меньше) совершенно не подходит, так как алгоритм кодирования искажает и цвета, и сам рисунок. И если на фотографии это практически незаметно, то на рисунке с небольшим количеством цветов видны артефакты вокруг краёв. Они выражаются как «грязь» вокруг контуров, а также в виде искажения цвета - это результат кодирования графического файла в не предназначенный для него формат.
Оценив особенности этих форматов, было принято использовать карты в формате bmp, а фотографии коридоров и аудитории ВУЗа в формате jpeg.
Выводы по главе 2
Взаимное расположение аудиторий было принято представить в виде графа, а в качестве алгоритма поиска оптимального маршрута был выбран алгоритм с возвратом.
Для хранения необходимой информации об аудиториях и связях между ними используются обычные текстовые файлы в формате txt.
В качестве наиболее оптимальных форматов для используемого графического материала были выбраны: формат bmp для карт, формат jpeg для фотографий коридоров и аудиторий ВУЗа.
3. Разработка программного обеспечения для Интерактивного гида по ГОУ ВПО «МГТУ им. Г.И. Носова»
3.1 Функциональные схемы работы программы
Основной задачей программного продукта «Гид по МГТУ», как видно из рисунка 3, является предоставление пользователю информации по Магнитогорскому государственному техническому университету им. Г.И. Носова.
Рисунок 3 - Функциональная схема работы программного продукта «Гид по МГТУ»
Реализация поставленной задачи состоит из четырех этапов согласно рисунку 4. Данные, введенные пользователем, проверяются на корректность, обрабатываются в соответствии с запросом и выводятся на экран.
На рисунке 5 приведена функциональная схема обработки данных, полученных от пользователя. В зависимости от типа запроса происходит одно из трех действий: поиск оптимального маршрута и определение координат аудиторий, входящих в него, поиск аудитории, выбор информации об объекте из базы данных. Результат этого действия выводится на экран.
Рисунок 4 - Функциональная схема моделирования работы программного продукта «Гид по МГТУ»
Рисунок 5 - Функциональная схема обработки данных в программном продукте «Гид по МГТУ»
3.2 Компоненты программы
В состав программы «Гид по МГТУ» входят следующие компоненты:
- компонент хранения данных;
- компонент предоставления справочной информации;
- компонент поиска оптимального маршрута;
- компонент визуализации.
Взаимодействие компонентов программы можно представить в виде схемы, изображенной на рисунке 6.
Размещено на http://www.allbest.ru/
Рисунок 6 - Схема взаимодействия компонентов программы
3.2.1 Компонент хранения данных
Компонент хранения данных предназначен для хранения информации об аудиториях, связях между ними, связях между фотографиями аудиторий и коридоров для перемещения по ВУЗу и отображения маршрута в фоторежиме.
База данных представлена набором текстовых файлов, что позволяет легко редактировать данные с помощью любого текстового редактора, не устанавливая каких-либо других программ.
Текстовый файл представляет собой последовательность строк; каждая строка соответствует одной записи и имеет строго определенный формат. Поля разделяются пробелом или символом «!».
Информация о местоположении аудиторий хранится в файле Audiences.txt и включает следующие поля фиксированной длины:
- порядковый номер аудитории;
- номер графического плана;
- координаты на плане.
Информация о взаимном расположении аудиторий хранится в файле Friends.txt и представляет собой набор пар смежных аудиторий. С точки зрения теории графов текст данного файла является списком инцидентности.
Справочная информация об аудиториях хранится в файле AudiencesInfo.txt и включает следующие поля:
- порядковый номер;
- тип аудитории;
- название аудитории;
- дополнительная информация.
Порядковые номера типов аудиторий и их названия содержатся в файле Types.txt.
Информация о связях между всеми фотографиями аудиторий и коридоров хранится в файле AudiencesImage.txt, каждая строка которого соответствует номеру фотографии и содержит следующие поля:
- номер текущей фотографии;
- номер фотографии для отображения при перемещении вперед;
- номер фотографии для отображения при повороте направо;
- номер фотографии для отображения при повороте налево.
Для отображения маршрута в фоторежиме также необходимо знать координаты аудиторий на фотографиях. Эта информация содержится в файле ImageXY.txt, имеющем следующие поля:
- номер фотографии;
- координаты точки для начала рисования пути;
- координаты аудиторий на фотографии для отображения маршрута;
- координаты для отображения указателей.
При работе с картой существует возможность при щелчке правой кнопкой мыши на изображении любой аудитории получить информацию о ней. Для реализации этой возможности в файле AudiencesOblast.txt хранятся координаты точек, ограничивающих область каждой аудитории. Каждая запись такого файл содержит следующий поля:
- номер графического плана при отображении карты;
- номер аудитории;
- ограничивающие координаты по оси х;
- ограничивающие координаты по оси у.
3.2.2 Компонент поиска оптимального маршрута
Для поиска оптимального маршрута используется теория графов. Взаимное расположение аудиторий удобно представить в виде графа, вершинами которого являются аудитории, а ребрами - наличие соединения между ними. Граф хранится в виде списков инцидентности. Длина ребра между аудиториями на одном этаже вычисляется, исходя из их координат, на разных этажах вес ребра равен 1000. Для решения данной задачи направление ребер не имеет значения, поэтому граф является неориентированным. Поиск осуществляется на основе алгоритма с возвратом, при этом среди всех решений отбирается маршрут минимальной длины.
Найдя первое решение, запоминаем его стоимость в OptCost. Прежде, чем пытаться продолжать дальше текущее частичное решение, проверяем, имеет ли смысл это делать. Если любое его продолжение будет заведомо больше текущего минимального решения (OptCost), то производим возврат к предыдущему частичному решению. Помимо этого водятся дополнительные ограничения, о которых более подробно будет сказано ниже. Таким образом, мы избавляем себя от генерации всех заведомо неоптимальных продолжений.
Для удобной работы с данными объекты имеют тип Audience (Аудитория) со следующими полями:
struct Audience {
char number[5]; // номер аудитории
int plan; // номер плана
int x; // координата х на плане
int y; // координата у на плане
FriendAudi *firstfr; // указатель на начало списка соседок
bool DOP; // флаг доступности аудитории
Audience *next; // следующая аудитория
};
Также введен тип FriendAudi для удобного представления списка смежных аудиторий.
struct FriendAudi {
char number[5]; // номер соседней аудитории
int weight; // вес ребра
FriendAudi *next; // следующая соседняя аудитория
};
Компонент поиска оптимального маршрута реализован в виде класса Guide.
Атрибуты класса Guide:
- Audience *audbeg - список аудиторий;
- char numbeg - номер начальной аудитории;
- char numend - номер конечной аудитории;
- Audience *X - текущий путь;
- Audience *OptX - оптимальный путь;
- unsigned int cost - длина текущего пути;
- unsigned int OptCost - длина оптимального пути.
Опишем основные методы класс Guide.
Функции, позволяющие работать со списком аудиторий, образующих оптимальный путь: void addAudiPath(char*) - добавление аудитории в путь, void delAudiPath() - удаление аудитории из пути, void copyPath() - копирование пути.
Функция void KOMMI(char*), реализующая алгоритм с возвратом приведена в листинге 2.1.
Листинг 2.1 - Функция void KOMMI(char*), реализующая алгоритм с возвратом
void KOMMI(char *num1) { // алгоритм поиска (Коммивояжера)
FriendAudi *y;
Audience *p = audbeg;
while(p!=NULL && strcmp(p->number,num1))
p = p->next;
y = p->firstfr;
while(y != NULL) {
// проверяем, допустима ли аудитория для добавления в путь
if(onFloorDop(y)) {
// определяем вес ребра, которое хотим добавить
if(p->number[0]=='L' && y->number[0]=='L')
// объект назван аудиторией, но фактически не является ей
// это просто точка рядом с лестницей, о чем говорит буква L
// расстояние равно 1000
y->weight = 1000;
else if(p->number[0]=='S' && y->number[0]=='S')
y->weight = 0;
else {
Audience *fr = audbeg;
while(fr!=NULL && strcmp(fr->number,y->number))
fr = fr->next;
if(p->x == fr->x)
y->weight = abs(p->y - fr->y);
else if(p->y == fr->y)
y->weight = abs(p->x - fr->x);
else y->weight = 0;
}
if(cost+y->weight < OptCost) {
if(!strcmp(y->number,numend)) {
addAudiPath(y->number);
copyPath();
OptCost = cost + y->weight;
delAudiPath();
} else {
Audience *q = audbeg;
while(q!=NULL && strcmp(q->number,y->number))
q = q->next;
if(q->DOP) {
addAudiPath(y->number);
q->DOP = false;
cost += y->weight;
KOMMI(y->number);
delAudiPath();
q->DOP = true;
cost -= y->weight;
}
}
}
}
y = y->next;
}
}
Учитывая область применения, имеет смысл перед поиском маршрута вычислять начальное максимально возможное значение OptCost. Это значение вычисляется в функции void setOptCost(char *, char *) следующим образом: определяется самый длинный путь по второму этажу и определяется максимальное число лестниц, необходимых для достижения искомой аудитории.
Помимо того, что отсекаются все частичные решения, стоимость которых превышает стоимость минимального найденного решения, имеет смысл проверять на допустимость каждую просматриваемую вершину. Эта проверка осуществляется в функции bool onFloorDop(FriendAudi*).
Допустимость устанавливается согласно следующим правилам:
- Если начальная и конечная аудитории находятся на втором этаже, а текущая аудитория - на другом, то данная аудитория недоступна для добавления в оптимальный маршрут.
- Если начальная и конечная аудитории находятся на втором этаже или ниже, то любая аудитория, находящаяся выше второго этажа, недоступна.
- Если начальная и конечная аудитории находятся на втором этаже или выше, то любая аудитория, находящаяся ниже второго этажа, недоступна.
Благодаря введенным ограничениям удается значительно сократить время поиска оптимального маршрута.
Кроме функций, отвечающих за поиск и формирование оптимального пути, реализованы следующие функции:
- bool isAudi(char* ) - проверка, существует ли аудитория с номером num;
- Audience* getSpaudi() - получение списка аудиторий;
- void addFriend(Audience *,char *) - добавление аудитории «соседки»;
- void getData() - получение информации об аудиториях;
- void findPath(char *, char *) - поиск оптимального пути;
- Audience* getOptPath() - получение ссылки на начало оптимального пути;
- Audience* findAudi(char *) - поиск аудитории;
- void fullCBox(TComboBox*) - заполнение объекта типа TComboBox.
3.2.3 Компонент визуализации
Данный компонент обеспечивает:
- наглядное представление пользователю пути, полученного в ходе работы компонента поиска оптимального маршрута;
- наглядное представление пользователю местоположения запрашиваемой аудитории;
- вывод схематического плана для просмотра с возможностью перемещения и масштабирования;
- вывод фотографий коридоров и аудиторий с возможностью осуществления навигации по ВУЗу.
В программе предусмотрено два режима представления пользователю запрашиваемой информации: обычный режим (режим карты) и фоторежим.
3.2.3.1 Реализация режима карты
Обычный режим (режим карты) является режимом по умолчанию. Для данного режима компонент визуализации содержит набор графических планов этажей ВУЗа. План каждого из этажей разбит на 12 частей одинакового размера. Все планы имеют формат bmp и хранятся в папке plan. Имена планов определяются согласно правилу: первая цифра номера соответствует номеру корпуса в структурном комплексе университета; вторая - номеру этажа, третья и четвертая - расположению при выводе на экран для формирования единого изображения.
Эта часть компонента визуализации реализована в виде класса Map.
Атрибуты класса Map:
- TImage *map11, *map12, *map13, *map14, *map21, *map22, *map23, *map24, *map31, *map32, *map33, *map34 - части плана, номера говорят об их расположении;
- TImage *curMap - текущая карта;
- Audience *optPath, *audi - оптимальный путь;
- int myfloor, char mymash - текущий этаж и масштаб;
- bool fldraw - переменная, принимающая положительное значение непосредственно в процессе вывода оптимального маршрута на экран.
Опишем основные методы класса Map.
Функция загрузки планов текущего этажа LoadPicture().Для установки и получения текущего этажа введены функции setFloor(int _floor) и getFloor().
Функции масштабирования/перемещения карты - ResizeAllPicture(int k), setMash(char m, TComboBox *mbox) и MovAllPicture(int dx, int dy). Начальные параметры карты высчитываются исходя из разрешения монитора, при этом определяется, какая из сторон является главной, чтобы изображение полностью поместилось в область вывода формы. Это связано с различными коэффициентами соотношения сторон монитора. В дальнейшем, масштабирование карты происходит таким образом, чтобы пропорции изображения оставались неизменным.
Стоит учитывать, что в совокупности планы образуют единую карту, поэтому масштабирование и перемещение всех частей должно осуществляться одновременно. При увеличении или уменьшении изображения недостаточно только изменения масштаба - после произведения данных действий должна осуществляться «привязка» планов друг к другу, чтобы сохранить целостность изображения.
Функция «выстраивания» всех планов относительно центральной точки BuildCentrPicture (int top, int left, int height, int width). Параметрами, передаваемыми в функцию, являются координаты центральной точки, ширина и высота изображения. Исходя из них, высчитываются координаты top и left всех частей так, чтобы сохранялось целостное восприятие плана всего этажа здания.
Функция отображения аудитории на плане showAudi() (см. листинг 2.2). Запрашиваемая аудитория, если она найдена, отмечается на плане крестиком красного цвета и все изображение центрируется относительно ее координат. Одновременно может быть отмечена только одна аудитория. Номер этой аудитории автоматически отображается в строке состояния программы в формате: Аудитория: Номер аудитории
Подобные документы
Основные типы электронных путеводителей, предназначение их мультимедийной разновидности. Применение электронного путеводителя для ГОУ ВПО "МГТУ им. Г.И. Носова". Выбор алгоритма поиска оптимального маршрута. Функциональные схемы работы программы.
дипломная работа [3,7 M], добавлен 13.04.2014Анализ проектирования интерфейса программы. Выбор и назначение визуальных компонентов. Изучение экранных форм приложения. Модули, процедуры, функции проекта и их назначение. Листинг программного кода. Результаты работы автоматизированного продукта.
курсовая работа [1,9 M], добавлен 11.12.2017Требования к пользовательскому интерфейсу программного продукта. Выбор инструментальных средств разработки программы. Описание функциональной схемы, модульной структуры, структурной схемы. Технология разработки справочной системы программного продукта.
дипломная работа [2,7 M], добавлен 12.05.2016Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Разработка спецификации программного обеспечения и на ее основе кода программного продукта. Отладка программы "трассировкой", ее тестирование и оптимизация.
курсовая работа [501,4 K], добавлен 07.12.2016Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.
отчет по практике [296,1 K], добавлен 19.04.2015Разработка программы, осуществляющей контроль за своевременностью обновления программного обеспечения с помощью рассылки электронных писем. Анализ требований к системе; выбор метода решения, алгоритма, выбор языка программирования, описание программы.
дипломная работа [5,6 M], добавлен 29.06.2011Создание программы, которая позволяет автоматизировать процесс формирования в заводской базе документа "Накладная на отпуск материала на сторону" на основании приходного ордера на материалы. Описание блок-схемы алгоритма и листинга программного продукта.
курсовая работа [1,4 M], добавлен 17.10.2011Понятие и ключевое отличие распределенной разработки программного обеспечения, его достоинства и недостатки. Концептуальное решение и выбор типа разработки. Особенности программного обеспечения с открытым исходным кодом. Идея и развитие Open Source.
курсовая работа [97,7 K], добавлен 14.12.2012Требования к функциям и задачам, выполняемым системой "Подбор кредита ОАО "Россельхозбанк". Проектирование архитектуры программного продукта. Структурная схема программного продукта. Описание компонент программного обеспечения. План менеджмента проекта.
курсовая работа [684,0 K], добавлен 03.05.2015Разработка системы бережливого производства на ООО "Нижегородские моторы", создание программного обеспечения для станка с ЧПУ FMS-3200. Технология решения задачи, функциональные возможности и структура программы. Язык программирования электроавтоматики.
отчет по практике [555,3 K], добавлен 27.05.2014