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) – функция прорисовывает путь.

 

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

 

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


Информация о работе «Поиск кратчайшего пути в лабиринте»
Раздел: Информатика, программирование
Количество знаков с пробелами: 35148
Количество таблиц: 5
Количество изображений: 6

Похожие работы

Скачать
4340
0
0

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

Скачать
72097
2
0

... набором типовых подсхем - Автоморфизм графов конструктивное перечисление структурных изомеров для производных органических соединений синтез тестов цифровых устройств 2.2. Нахождение кратчайших путей в графе   Начальные понятия Будем рассматривать ориентированные графы G = <V, E>, дугам которых приписаны веса. Это означает, что каждой дуге <u, ...

Скачать
44292
8
0

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

Скачать
12427
1
0

... конечной клетки, клетки принадлежащие разным линиям (например, «c1» и «b6»). Введем несколько обязательных клеток, так, чтобы они влияли на построение оптимального маршрута. Выбор маршрута передвижения в лабиринте с посещением обязательных клеток Схему лабиринта можно найти в приложении пояснительной записки Введите название начальной клетки = d1 Введите название конечной клетки = b6 Сколько ...

0 комментариев


Наверх