Добавил:
north memphis Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

oop_7

.pdf
Скачиваний:
0
Добавлен:
29.12.2024
Размер:
419.32 Кб
Скачать

МИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ В.И. УЛЬЯНОВА (ЛЕНИНА) Кафедра Информационной безопасности

ПРАКТИЧЕСКАЯ РАБОТА №7 По дисциплине «Объектно-ориентированное программирование»

Санкт-Петербург

2023

Задание

на практическую работу

Исходные данные: разработать GUI приложение, выполняющее функцию визуализации ориентированного графа, задаваемого матрицей смежности, представленной в виде файла, структуру которого требуется разработать. На рис.6 представлен макет диаграммы классов приложения,

который требуется реализовать в приложении. Основной функцией объекта класса "Интерфейсное окно" является выбор файла, который содержит данные об ориентированном графе. При чтении файла необходимо проверить корректность данных и в случае обнаружения ошибки необходимо сформировать соответствующее сообщение пользователю. Реализовать и отладить программу, удовлетворяющую сформулированным требованиям и заявленным целям. Разработать контрольные примеры и оттестировать на них программу. Оформить отчет, сделать выводы по работе.

СОДЕРЖАНИЕ

Задание на практическую работу

............................................................... 2

Теоретическое введение ...............................................................................

4

Решение поставленной задачи .....................................................................

5

Вывод............................................................................................................

13

Теоретическое введение

Разработать GUI приложение, выполняющее функцию визуализации ориентированного графа, задаваемого матрицей смежности, представленной в виде файла, структуру которого требуется разработать. На рис.1 представлен макет диаграммы классов приложения, который требуется реализовать в приложении.

Рисунок 1. Пример работы алгоритма

Решение поставленной задачи

Структура файла:

в качестве примера возьму набор из трех узлов, находящихся в файле-примере example.txt:

0:[1,0,1]

1:[0,1,0]

2:[1,0,1]

первое число (перед двоеточием) – это номер узла, после двоеточия идет массив "связей", где цифра "0" или "1" означает связь с узлом под номером индекса этой цифры. В случае пример можно заметить, что нулевой узел связан с нулевым узлом (сам с собой) и со вторым узлом, первый узел связан только с самим собой (то есть у него нет связей с другими), второй узел связан с нулевым и, разумеется, с самим собой. Таким образом будет картина,

показанная на рисунке 2.

При этом если хоть в одном из узлов, указана связь с другим, а у того, у которого с ним указана связь - нет, то связь все равно будет построена из расчета на то, что тот, кто создавал файл связей просто ошибся. Но если файл будет содержать что-то кроме структуры связей узлов, например посторонние символы или неправильную структуру, то пользователю будет выведено сообщение об ошибке чтения. Например, если вместо 0:[1,0,1] будет

0:[,0,1] , сообщение об ошибке будет выведено рисунок 3.

При запуске программы появляется главное окно, которое предлагает пользователю ввести путь к файлу (рис. 4). Если пользователь не выберет путь к файлу, то появится следующая ошибка (рис. 5). При успешном открытии файла будет выведено сообщение “Successfully opened” (рис. 6). После этого,

пользователь может вывести графы в виде рисунка (рис. 7). При рисовании нового графа, старый удаляется (рис. 8).

Рисунок 2. Пример работы

Рисунок 3. Ошибка чтения файла

Рисунок 4. Начальное окно

Рисунок 5. Ошибка открытия файла

Рисунок 6. Файл успешно открыт

Соседние файлы в предмете Объектно ориентированное программирование