бер gt;
lt; Стартова вершина gt;
Кількість вершин не може перевищувати величини заданої програмістом (у нашому випадку 1000) і бути менше 2.
Значення стартовою вершини не може перевищувати значення кількості вершин і бути менше нуля.
Опис масивів в програмі наведено в таблиці 5.1.
Таблиця 5.1. Позначення та опису масивів
№Імя массіваРазмерность массіваОпісаніе массіва1edgeEmax - Максимальна кількість ребер в графеДля зберігання даних про ребрах2dVmax - максимальна кількість вершин в графе.Для зберігання значень найкоротших шляхів
Опис змінних в програмі наведено в таблиці 5.2.
Таблиця 5.2. Опис змінних.
№Імя переменнойТіп переменнойОпісаніе переменной1 NintКолічество вершін2 VmaxintРазмер масиву або максимальну кількість вершін3 EmaxintМаксімальное кількість ребер4 u, vintВершіни ребра5 successboolІспользуется при перевірки правильності ввода6 i, jint Счетчікі7 WintВес ребра8 EIntКолічество ребер9 StartIntСтартовая вершіна10 in, outifstrеamОб'екти для роботи з файлами
5. Програмна реалізація алгоритму розв'язання задачі і її опис
У програмній реалізації алгоритму на Microsoft Visual Studio 2013 потрібно включити наступні бібліотеки:
stdafx.h - Включається файл для стандартних системних включаються файлів або включаються файлів для конкретного проекту, які часто використовуються, але не часто змінюються.
iostream - Об'єктно-орієнтована ієрархія класів, де використовується і множинне, і віртуальне успадкування. У ній реалізована підтримка для файлового введення/виводу даних вбудованих типів.
У реалізації програми також будуть потрібні нижчеперелічені функції і методи: - функція виведення в командний рядок
cin - функція зчитування з командного строкі.clear - функція очищення потоку
_ flushall - функція очищення буфера- функція перевірки правильності введення
Програмна реалізація алгоритму представлена ??в додатку A.
6. Розробка системи тестів та налагодження програми
Тести чорного ящика
Для проектування тестів програми методами чорного ящика за допомогою еквівалентного роздроблення вхідних/вихідних даних на області (класи) еквівалентності складений список ситуацій, кожна з яких повинна створюватися хоча б одним тестом. Тестові ситуації наведені в таблиці 7.1, в дужках вказані їх номери.
Таблиця 7.1. Області вхідних/вихідних даних тестів програми
Вхідні і вихідні параметриДопустімие значеніяНедопустімие значеніяКолічество вершин, n2 ... Vmax (1) lt; 2 (2), gt; Vmax (3), не цифра (4) Вага ребра, w - 100000 ... 1000000 ( 5) Не цифра (6), lt;- 100000 (7), gt; 1000000 (8) Стартова вершина, start0 ... n (9) lt; 1 (10), gt; n (11), що не цифра (12)
Для створення перерахованих тестових ситуацій розроблені тести, представлені в таблиці 7.2. Вхідні і вихідні дані тестів по можливості вибиралися ближче до кордонів класів еквівалентності.
Таблиця 7.2. Тести чорного ящика для налагодження програми
№ тестаВходние дані Вихідні данние№ сітуацій1 2 5 6 4 2 24 01, 5, 92 1 001 5 3 червня ... Значення введено невірно. Повторіть ввод3, 5, 93 1 червня 35 ... Значення введено невірно. Повторіть ввод2, 5, 94 G 4 червня ... Значення введено невірно. Повторіть ввод4, 5, 95 3 травня 1000000000 ... Значення введено невірно. Повторіть ввод8, 1, 5, 96 5 6 - 1000000000 ... Значення введено невірно. Повторіть ввод7, 1, 5, 97 4 вересня f x ... Значення введено невірно. Повторіть ввод6, 1, 5, 98 6 Лютий 3 5 8 3Значеніе введено невірно. Повторіть ввод11, 1, 5, 99 6 Лютий 3 5 8 0Значеніе введено невірно. Повторіть ввод10, 1, 5, 910 2 червня 3 5 8 0Значеніе введено невірно. Повторіть ввод12, 1, 5, 9
Тести білого ящика
Розроблені тести методом білого ящика за критеріями охоплення основних шляхів виконання алгоритму підпрограм. У програмі є складові умови. Тому використаний критерій комбінаторного покриття умов (див. Таблицю 7.3).
Таблиця 7.3. Комбинаторное покриття умов тестами чорного ящика
З таблиці 7.3 видно, що тести чорного ящика забезпечують повне комбинаторное покриття всіх ситуацій, тому немає необхідності в тестах білого ящика.
Висновок
Алгоритм знаходить найкоротші шляхи від однієї вершини графа до всіх інших. Умова задачі - знаходження най...