АННОТАЦИЯ
Целью представленной работы является разработка программы “Поиск кратчайшего пути”, которая создает лабиринт и находит кратчайший путь его прохождения.
1.4 Требования к программной документации
Программная документация должна состоять из:
хорошо прокомментированного текста программы;
общего функционального описания;
краткого описания составляющих программу функций;
схем, иллюстрирующих проект и словесного их описания;
5) руководства пользователя.
1.5 Технико-экономические показатели
Создание бесплатной альтернативы существующим на сегодня программам подобного профиля;
Быстрота вычислений.
1.6 Стадии и этапы разработки
Техническое задание
Плановые сроки начала и окончания работы:
Начало: 15.02.07
Окончание: 01.03.07
Эскизный проект
Начало: 01.03.07
Окончание: 22.03.07
Технический проект
Начало: 22.03.07
Окончание: 12.04.07
Рабочий проект
Начало: 12.04.07
Окончание: 17.05.07
Ввод в эксплуатацию
Начало: 17.05.07
Окончание: 24.05.07
1.7 Порядок контроля и приёмки
Испытание должно проводиться совмесно с заказчиком и разработчиком в соответствии с “Программой и методикой испытаний “.
2. Эскизный проект
2.1 Контекстная диаграмма
Входными данными должны быть координаты вершин многоугольника. Координаты рациональней не вводить, потому что это будет очень длительный процесс, а смоделировать программу так чтобы пользователь мог перемещать курсор по сетке лабиринта и нажатием клавиш расставлять комнаты или двери. Выходными данными являются изображение лабиринта и результат поиска пути. Потоки входных и выходных данных можно увидеть на контекстной диаграмме .
При работе с данной программой необходимо наличие трёх главных компонентов : пользователь, компьютер и программа (рис.2.1).
Рисунок 2.1 - Контекстная диаграмма
Пользователь получает от программы результат - кратчайший путь в лабиринте, который получился после обработки введённых данных - координат дверей и комнат. Результат программы при необходимости может быть сохранён.
2.2 Словарь данных
Лабиринт - множество комнат, соединённых между собой дверьми.
Комната - символически изображенный квадрат, заданный в лабиринте.
Дверь -устройство, соединяющее комнаты.
Данные редактирования - изменение лабиринта, т.е. ввод комнат и дверей, а также их удаление.
Результат - Кратчайший путь в лабиринте.
2.3 Диаграмма состояний
Рисунок 2.3 - Диаграмма состояний
Состояние 0 - загрузка программы - начальное состояние, в котором находится программа после загрузки. В этом состоянии пользователь может ознакомиться с управлением или выйти из программы.
Состояние 1 - создание лабиринта - состояние, в котором формируется лабиринт.
Состояние 2 - ввод комнаты - в этом состоянии пользователь может ввести комнату.
Состояние 3 - ввод двери - в этом состоянии пользователь может ввести дверь.
Состояние 4 - удаление комнаты - в этом состоянии пользователь (при необходимости) может удалить существующую комнату.
Состояние 5 - удаление двери - в этом состоянии пользователь (при необходимости) может удалить существующую дверь.
Состояние 6 - сохранение лабиринта - пользователю предоставляется возможность сохранить лабиринт.
Состояние 7 - загрузка лабиринта - пользователю предоставляется возможность загрузить, ранее сохраненный, лабиринт.
2.4 Построение модели пользовательского интерфейса
Для удобства ввода, редактирования и удаления элементов лабиринта, необходимо создать удобный, дружественный интерфейс.
При запуске программы на экране появляется сетка, в которой будет вводиться лабиринт. В каждой клеточке может находиться комната или дверь. По сетке передвигается курсор, который управляется с помощью клавиш <> - вверх, <> - вниз, <> - вправо, <> - влево он определяет положение комнаты или двери. На экране постоянно присутствует меню подсказки, которое помогает пользователю ориентироваться. В нём указывается клавиши, с помощью которых пользователь может задать лабиринт. Например, при помощи клавиши <к> происходит ввод комнаты, при этом комната отображается в виде точки зелёного цвета, при помощи клавиши <д> происходит ввод двери, которая не рисуется а просто соединяет комнаты и представляет собой две перекрещивающиеся линии, т.е. можно соединять сразу несколько дверей в комнатах и рисовать лабиринт в трёх или в четырёх направлениях. При помощи клавиши <я> можно редактировать лабиринт т. е. удалять вершины или рёбра.
После ввода лабиринта в левом верхнем углу экрана выдаётся приглашение: “Введите вход в лабиринт ” после чего ожидается выбор одной из комнат в лабиринте, с помощью клавиш управления курсром и клавиши <Enter>, при этом выдаётся пиглашение: “Введите выход из лабиринта”. После выбора выхода программа выдаёт сообщение: “Кратчайший путь найден ” - в том случае, если он найден или “пути нет ” - если пути не существует. Если кратчайший путь найден, то он будет показан на графе в виде подсветки красным цветом. Далее предлагается выйти из программы путём нажатия клавиши <Esc> или начать ввод нового лабиринта нажав при этом любую клавишу. При этом существует клавиша <c> и <з> соответственно для сохранения лабиринта или загрузки уже существующего.
3 Технический проект
3.1 Диаграмма потоков данных
Программа имеет 4 основных процесса, отражающие основные функции программы:
Рисунок 3.1 - Диаграмма 1-го уровня
Страницы: 1, 2, 3, 4