48078 (Поиск кратчайшего пути в лабиринте), страница 2

2016-07-30СтудИзба

Описание файла

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

Онлайн просмотр документа "48078"

Текст 2 страницы из документа "48078"


команда


координаты



команда


Рисунок 3.2 – Детализация процесса “Ввод лабиринта и его редактирование”

3.2 Словарь данных

Лабиринт – множество комнат, соединённых между собой дверьми.

Комната – символически изображенный квадрат, заданный в лабиринте.

Дверь –устройство, соединяющее комнаты.

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

Команда ввод комнаты – нажатие пользователем клавиши .

Команда ввод двери - нажатие пользователем клавиши .

Команда удаление - нажатие пользователем клавиши .

Команда сохранение - нажатие пользователем клавиши .

Команда выход - нажатие пользователем клавиши .

Координаты – численное значение, определяющее положение объекта в лабиринте.

Карта поля – двумерный массив, который содержит координаты всех комнат и дверей.

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

3.3 Спецификация процессов

Процесс 1 Ввод лабиринта и его редактирование.

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

Вход: координаты комнат и дверей

Выход: лабиринт

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

Процесс 1.1 Ввод комнаты

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

Вход: ввод комнаты

Выход: код и координаты комнаты

Процесс 1.2 Ввод двери

Вход: ввод двери

выход:код и координаты двери

Процесс 1.3 Удаление комнаты или двери

Процесс удаления записывает в структуру лабиринта код 0, по заданным координатам, что обозначает пустое место, т.е. комната или дверь была удалена из лабиринта.

Вход:удаление

Выход:код и координаты

Процесс 2 Поиск пути

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

Вход: структура лабиринта

Выход: кратчайший путь в лабиринте.

Процесс 4 Отображение лабиринта

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

Вход: координаты комнат и дверей

Выход: изображение лабиринта

Процесс 3 Сохранение введенных данных в файле

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

Вход: структура лабиринта

Выход: файл с сохраненной структурой лабиринта

Процесс 3 Считывание данных из файла

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

Вход: файл с сохраненной структурой лабиринта

Выход: структура лабиринта

3.4 Определение формы представления входных и выходных данных

Входные данные:

Это последовательность символов, вводимая пользователем с клавиатуры.

Выходные данные:

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

Команды:

загрузка лабиринта

сохранение лабиринта

создание комнаты

создание двери

удаление комнаты или двери

выход

3.5 Разработка структуры программы

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


Модуль расчета кратчайшего пути лабиринта

Модуль сохранения и считывания структуры лабиринта

Рисунок 3.5.1 – Взаимодействие модулей

Модуль создания и прорисовки сетки лабиринта


Модуль ввода и корректировки входных данных





Модуль визуализации




3.6 Спецификация модулей

Модуль создания и прорисовки сетки лабиринта

Входные данные: отсутствуют

Выходные данные: карта поля

Функции: создание карты поля

Модуль ввода и корректировки данных

Входные данные: команды

Выходные данные: карта поля

Функции - ввод данных и предоставление пользователю возможности их редактирования.

Модуль считывания и сохранения структуры лабиринта

Входные данные: команды, карта поля

Выходные данные: карта поля , файл

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

Функции - считывание и сохранения структуры лабиринта.

Модуль визуализации

Входные данные: координаты комнат и дверей

Выходные данные: отсутствуют

Внешние эффекты: на экране монитора появляется лабиринт и путь прохождения.

Функции – вывод на экран монитора информации.

Модуль расчета кратчайшего пути лабиринта

Входные данные: карта поля

Выходные данные: карта прохождения

Функции – нахождение путей прохождения и поиск кратчайшего.

3.7 Переход к тексту программы

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

Написание программного кода будет проводиться с использованием среды программирования Borland C++.

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

4 Рабочий проект

4.1 Программирование и отладка программы

Исходя из требований к программному обеспечению, программа кодировалась в среде программирования Borland C++ для функционирования в операционной системе Windows 9x. (Смотрите приложение В)

4.2 Тестирование программы

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

Предложенное ПО тестировалось как во время разработки, так и после её завершения.

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

Заключение

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

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

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

ПРИЛОЖЕНИЕ А

(обязательное)

Описание программы

Общие сведения

Наименование программы: “Поиск кратчайшего пути”

Для функционирования программы необходима Операционная Система Windows 9x.

Кодировка производилась в среде программирования Borland C++.

Функциональное назначение

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

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

Программа имеет главную функцию main, которая описана в файле sapr_kyrsovik.cpp, с которой начинается выполнение программы. Также программа имеет библиотечные функции, которые описаны в заголовочном файле head.h. Заголовочный файл содержит все остальные функции, используемые в пограмме. Программа имеет структуру с именем Lab, которая содержит двухмерный массив карты лабиринта (Мар[MY][MX]) и двухмерный массив карты прохождения (Put[MY][MX]). В эту структуру производится запись координат комнат и дверей лабиринта.

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

int Grin(struct Lab *P)

Она выполняет:

инициализацию графики: очищается экран, включается графический режим

рисует сетку лабиринта

инициализацию масивов структуры P

void Rasstan(struct Lab *P) – функция расставляет комнаты и двери на карте поля, а также удаляет их, это реализуется с помощью клавиш управления курсором (< > - вверх, < > - вниз, < > - вправо, < > - влево) и клавиш специального назначения (например, при помощи клавиши происходит ввод комнаты, при помощи клавиши происходит ввод двери, при помощи клавиши можно удалять комнаты или двери). Эта функция вызывает дополнительные две функции:

void vyvod(int x, int y) – функция рисует рамочку белого цвета, служащую курсором для расстановки и удаления комнат и дверей а также служащую для ввода входа и выхода в лабиринте.

void maska (int x, int y) – функция скрывает(закрашивает) курсор.

void Vvod(struct Lab *P, int *x1, int *y1, int *x2,int *y2) – функция запрашивает ввести вход в лабиринт, после чего с помощью клавиш управления курсором и клавиши Enter функция считывает вход, далее функция запрашивает ввести выход.

int Find(struct Lab *P, int x1, int y1, int x2,int y2) – выполняет поиск пути.

void Puty(struct Lab *P, int x1, int y1, int x2,int y2) – функция прорисовывает путь.

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

Необходимы следующие технические средства:

486 DX-4 100 MHz процессор и выше;

8 Мб ОЗУ и выше;

Монитор, мышь и клавиатура.

Вызов и загрузка

Вызов программы осуществляется посредством запуска файла sapr_kyrsovik.exe. Программа занимает 40 байт.

Входные данные

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

чтобы ввести комнату необходимо нажать клавишу ;

чтобы ввести дверь необходимо нажать клавишу ;

чтобы удалить комнату или дверь необходимо нажать клавишу .

Выходные данные

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

ПРИЛОЖЕНИЕ Б

(справочное)

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5075
Авторов
на СтудИзбе
455
Средний доход
с одного платного файла
Обучение Подробнее