Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
По Суслову.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆
  1. Специфікації програмного забезпечення

Объекты Которые принимают участие в программе:

Пользователь вводит количество вершин графа, а так же указывает начальную вершину графа. Программа вычисляет путь посещения всех вершин неориентированного графа с максимальным весом всего пути.

     Процессы и действия:

Пользователь вводит Необходимые исходные данные в форму и запускает программу. Программное обеспечение считывает Введенный данные, создает неориентированный граф с заданным количеством вершин.

Пусть:

• Вершина А - Руководитель предприятия;

• Вершина В - главный бухгалтер;

• Вершина D - логист;

• Вершина С - главный механик;

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

Алгоритм нахождения веса путей:

Создаем массив всех возможных комбинаций обхождения графа из начальной вершины. (Вершины - A, B, C, D; Начальная - A; ABCD, ABDC, ACBD, ACDB, ADCB, ADBC)

Подсчитываем вес каждого пути, Суммируя вес каждого ребра.

Перебором по ассоциативно щиты (Путь: вес) находим самое максимальное значение веса и запоминай его ключ.

Входные и выходные данные, а так же их организация:

Пользователь вводит в экранную форму (рисунок 1), через запятую, вершины графа. Максимальное количество - 10 именем вершины должна появятся буква английского алфавита. Из введенных вершин пользователей должен указать название начальной вершины.

Рисунок 1 - Экранная форма для ввода входных значений.

Результат работы программы будет выведен в поле под меткой «Результат» (Рисунок 1).

  1. Тестування ПЗ з об’єктно-орієнтованою архітектурою

3.1. Структура програмного забезпечення

Рисунок 2 - DFD діаграма програмного забезпечення із структурною архітектурою

Словник даних:

@ ІМ'Я = Вихідні дані

@ ТИП = Груповий, зовнішній, дискретний потік даних

@ БНФ = <Вказує, що користувач ввів дані> | <2 {Символу англійського алфавіту} + (Символ початкової вершини)>

@ ІМ'Я = Вершини графа і початкова вершина

@ ТИП = Груповий, внутрішній, дискретний потік даних

@ БНФ = <Вказує, що користувач ввів коректні дані> | <2 {Символу англійського алфавіту} + (Символ початкової вершини)>

@ ІМ'Я = Вершини графа

@ ТИП = Простий, внутрішній, дискретний потік даних

@ БНФ = <Вказує, що користувач ввів коректні дані> | <2 {Символу англійського алфавіту}>

@ ІМ'Я = Вага ребер

@ ТИП = Простий, внутрішній, дискретний потік даних

@ БНФ = <Вказує, що кожної пари вершин графа було згенеровано ребро і вирахуваний вага> | <2 {Вершина ребра} 2 + Вага ребра>

@ ІМ'Я = Шляхи графа

@ ТИП = Простий, внутрішній, дискретний потік даних

@ БНФ = <Вказує, що були згенеровані всілякі шляхи проходження графа> | <1 {Шлях проходження графа}>

@ ІМ'Я = Шляхи графа і вага ребер

@ ТИП = Груповий, внутрішній, дискретний потік даних

@ БНФ = <Вказує, що згенеровані шляху графа і ваги ребер> | <"Вага ребер" + "Шляхи графа">

@ Ім'я = Вага Шляхів

@ ТИП = Простий, внутрішній, дискретності Потік даніх

@ БНФ = <Вказує, що ваги шляхів вирахувані> | <1 {Шлях графа} + Сума ребер колії>

@ ІМ'Я = Шлях з максимальною вагою

@ ТИП = Простий, відкритий, дискретний потік даних

@ БНФ = <Вказує, що система визначила найкращий шлях> | <1 {Шлях графа} 1 +1 {Вага шляхів} 1>