Спецификация - TxAnton/SummerPractise GitHub Wiki

SummerPractise

Проект "Визуализация алгоритма A* поиск кратчайшего пути в графе"

Спецификация

  • Входные данные: На вход алгоритму подается ориентированный взвешанный граф. Каждая вершина в графе имеет буквенное обозначение ("a", "b", "c"...), каждое ребро имеет неотрицательный вес. В качестве эвристической функции следует взять близость символов, обозначающих вершины графа, в таблице ASCII.

  • Выходные данные: На каждом шаге выполнения алгоритма отображается текущее графическое представление заданного графа и вычисление эвристической функции.

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

  1. Добавить вершину: после нажатия на данную кнопку, в рабочей области появляется вершина графа. Образовавшейся вершине пользователь должен дать имя.
  2. Соеденить вершины: после нажатия на данную кнопку и выбора пары вершин, которые должны быть соединены, в рабочей области появляется ребро графа. Для построенного ребра пользователь должен задать вес.
  3. Перемещение: позволяет менять положение вершины внутри рабочей области.
  4. Удалить: нажатие данной кнопки позволяет удалить выбранный элемент графа.
  5. Загрузить: позволяет пользователю загрузить исходные данные для работы алгоритма.
  6. Сохранить: позволяет сохранить текущее состояние графа.
  7. Вперед: нажатие данной кнопки позволяет посмотреть следующий шаг работы алгоритма.
  8. Назад: нажатие данной кнопки позволяет посмотреть предыдущий шаг работы алгоритма.

План разработки:

  1. Прототип: демонстрация окна пользовательского интерфейса программы без функционала. Срок выполнения: к 6 июля
  2. Итерация 1: написан код для работы алгоритма. Реализована кнопка, отвечающая за отрисовку графа. Срок выполнения: к 8 июля
  3. Итерация 2: исправлены возможные недочеты в коде алгоритма. Реализованы кнопки пользовательского интерфейса, отвечающие за модификацию текущего состояние графа. Срок выполнения: к 10 июля
  4. Итерация 3: написан код, для демонстрации пошаговой работы алгоритма. Срок выполнения: к 11 июля
  5. Финальная версия программы: исправлены возможные недочеты проекта, написан отчет. Срок выполнения: к 12 июля

Позиции разработчиков:

  • Архитектура программы: Сырцова Екатерина
  • Реализация: Ишанина Людмила
  • Визуализация: Ларин Антон