Лабораторные Егоров / 0361_ЦукановаПА_№7
.pdfМИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГГОСУДАРСТВЕННЫЙКИЙ
ЭЛЕКТРОТЕХУНИВЕРСИТЕТЧСКЙ «ЛЭТИ»ИМ.В.И.УЛЬЯНОВА(ЛЕНИНА)
КафедраИнформационныхсистем
ОТЧЕТ попрактическойработе№7
подисциплине«Объектно-ориентированноепрограммирование»
Студентыгр.0361 |
|
Семенова.А. Е |
|
|
ЦукановаП.А. |
||
Преподаватель |
|
|
ЕгоровС.С. |
Санкт-Петербург
2023
Задание на практическую. работу
РазработатьGUIприложение, выполняющеефункцизуализациию ориентированного, задаваемогографа матрицей, представленнойсмежости в виде , файластруктуру которого . требуетНа.1рися разработать представленмакетдиаграммыклассовприложения, которыйтребуется реализоватьприложении.
Рисунок1Диаграмма– классов Основной функциейИнтерфейсное" объекта" являетсяклассаокно
выборфайла, которыйсодержитданныеобориентировграфе. нномПри чтениифайла необходимо проверить корректность данных и в случае
обнаруженияошибки необходимо сформировать соответствующее сообщение пользователю.При корректности данных создается объект класса "Ориентированный",устанавливаютсяграф(еслинеобходи)связимоежду новымобъектомисуществующими, послеч гографотображаетсяв соответствующокне(объемкт "классаОкнопредставления").Примерграфа
вида графа с четырьмя вершинами2. представлен на рисунке
Рисунок2–Пример 4графавершинамис
При выборе в интерфейседругого( )другогостарыйфайла графа должензаменятьсяновыйиперерисовыватьсяна.
|
Спецификация классов |
|
КлассTDraw |
|
|
Поля: |
|
|
|
|
|
Наименование |
Тип видимостиОбласть |
|
|
|
|
Graph |
TGraph |
private |
|
|
|
Методы:
TDraw();
Конструкторклассапоумолчанию,областьвидимости–public.
TDraw(TGraph);
Конструкторкласса.Позволяетполучматьризвводацу,область видимости—public.
void draw (QPainter*, QRect, QColor);
Отрисовыграфвокнеыетприложения,областьвидимости–public.
void drawLines (QPointF*, QPainter*, int i, int j, qreal);
Отрисовываетлиниимеждуузламиграфа,областьвидимости–public.
bool isConnected (int i, int j);
Проверяетсоединенточекiиj,областьвидимости–public.
КлассTGraph
Поля:
Наименование |
Тип видимостиОбласть |
|
|
|
|
adjMatrix |
TMatrix<int> |
private |
|
|
|
dim |
int |
private |
|
|
|
Методы:
TGraph();
Конструкторклассапоумолчанию,областьвидимости—public.
int getElement(int, int);
Геттер элемента матрицы, областьсмежностивидимости—public.
void draw (QPainter*, QRect, QColor);
Отрисовыграфвокнеыетприложения,областьвидимости–public.
int getDim();
Геттерразмерностиматрсмежностицы,областьвидимости—public.
void setGraph(QString);
Считывграизетффайлаиз писывгравфматрицуетсмежности, областьвидимости—public.
КлассTMatrix
Поля:
Наименование |
Тип видимостиОбласть |
|
|
|
|
dim |
int |
protected |
|
|
|
defaultMatrix |
vector<vector<number>> |
protected |
|
|
|
Методы:
number getElement(int i, int j);
Геттерэлеменматарицы,областьвидимости–public.
number getDimension();
Геттерразмерностиматр,областьцывидимости–public.
void setElement(number el, int i, int j);
Сеттерэлеменматарицы,областьвидимости–public.
void setDimension(int d1);
Сеттерразмерностиматр,областьцывидимости–public.
КлассTWindow
Поля:
Наименование |
Тип видимостиОбласть |
|
|
|
|
graphWindow |
TDraw |
private |
|
|
|
Методы:
TWindow(TDraw, QWidget *parent = 0);
Конструкторкласса,областьвидимости—public.
~TWindow();
Деструкткласса,орбластьвидимости—public.
void browse();
Ищетфайлсграф, открываетмего, акжесоздаетновокное сизображеданногоиемграфа,областьвидимости—public.
void paintEvent(QPaintEvent*);
Отрисовываетокноприложения,областьвидимости—protected.
Диаграмма классов
Рисунок3–Диаграммаклассов
Описание контрольного примера с исходными и ожидаемыми (расчетными)данными
Для проверки работоспособности программы был взят граф с четырьмя вершинами, изображение графа 4показано. на рисунке
Рисунок4–Графсчетырьмяузлами
Послебылэтоговыбранфайлграфаспятьюузлами(рисунок5).
Выбранный граф отобразился на(рисунокэкранев новом окне приложения
6).
Рисунок5–Выборфайласграфом
Рисунок6Граф– с пятью вершинами
На рисун7покеазано содержаниефайла графа с пятью. вершинами
Рисунок7Содержание– файла с пятью вершинами