Скачиваний:
0
Добавлен:
28.12.2024
Размер:
202.94 Кб
Скачать

МИНОБРНАУКИ РОССИИ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)

Кафедра ИС

ОТЧЕТ

по лабораторной работе №3

по дисциплине «Объектно-ориентированное программирование»

Студенты гр.

Преподаватель Егоров С. С.

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

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

Рисунок 1- Диаграмма классов работы №3

Создать GUI приложение, реализующее функции перечисленные в описании работы №1, но на множестве рациональных чисел. Для этого требуется

Приложение должно включать основной модуль, модуль «interface», модуль «matrix», модуль «rational» и файл number.h:

При необходимости расширения функциональности класса «Квадратная матрица» следует только дополнить его протокол без каких-либо изменений уже существовавшей реализации.

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

Выполнение работы

Спецификация классов

Класс Matrix – класс, задающий по умолчанию единичную матрицу 3х3. Атрибуты класса:

data: тип array[array[number]], приватный, содержит числовые данные матрицы.

Методы класса:

getitem: публичный метод для доступа к элементам матрицы через оператор []. Возвращает строку матрицы по индексу.

Является «магическим» методом python, перегружающим оператор [].

get_number_of_rows: публичный метод, возвращающий число строк в матрице.

get_number_of_columns: публичный метод, возвращающий число столбцов в матрице.

get_minor: приватный вспомогательный метод для получения k- ого минора матрицы, принимает на вход число k, возвращает array[array[number]].

det_count: приватный рекурсивный метод для вычисления определителя матрицы, на вход получает array[array[number]], возвращает number.

det: публичный метод для нахождения определителя матрицы, возвращает number.

print: публичный метод для вывода матрицы на печать, ничего не принимает и не возвращает.

rank: метод для расчета ранга матрицы, возвращает ранг матрицы (integer).

transpose: метод для транспонирования матрицы, ничего не принимает и не возвращает, изменяет атрибут data .

set_data: метод для ввода новых данных в матрицу, на вход принимает array[array[number]], ничего не возвращает, изменяет атрибут data

Класс App - класс, отвечающий за работу пользователя с матрицей и отображение матрицы.

Методы класса:

show_command_menu: приватный метод, выводит меню команд на экран.

execute: публичный метод, запускает выполнение приложения. Создает объект матрицы, отображает меню команд, принимает выбор пользователя и выполняет соответствующие действия в цикле, пока пользователь не выберет выход из приложения.

Класс TComplex – класс, предназначенный для работы с комплексными

числами.

str: является «магическим» методом в python, перегружающим приведение

типа к строке, возвращает строковое представление комплексного числа, на вход

ничего не принимает, возвращает str.

abs: является «магическим» методом в python, перегружающим ф-ию abs(),

возвращает модуль комплексного числа типа float, на вход ничего не принимает.

eq: является «магическим» методом в python, перегружающим оператор ==,

проверяет равенство двух комплексных чисел, на вход ничего не принимает,

возвращает bool.

ne: является «магическим» методом в python, перегружающим оператор !=,

проверяет неравенство двух комплексных чисел, на вход ничего не принимает,

возвращает bool.

add: является «магическим» методом в python, перегружающим оператор +,

выполняет сложение двух комплексных чисел, на вход принимает второе

слагаемое, принадлежащее классу TComplex, возвращает объект класса TComplex.

mul: является «магическим» методом в python, перегружающим оператор *,

выполняет умножение двух комплексных чисел, на вход принимает второй

множитель, принадлежащий классу TComplex, возвращает объект класса

TComplex.

sub: является «магическим» методом в python, перегружающим оператор -,

выполняет вычитание двух комплексных чисел, на вход принимает второй

множитель, принадлежащий классу TComplex, возвращает объект класса

TComplex.

truediv: является «магическим» методом в python, перегружающим

оператор /, выполняет деление двух комплексных чисел, на вход принимает

делитель, принадлежащий классу TComplex, возвращает объект класса TComplex.

Класс TRational – класс, предназначенный для работы с рациональными числами.

eq: является «магическим» методом в python, перегружающим оператор ==,

проверяет равенство двух рациональных чисел, на вход ничего не принимает,

возвращает bool.

ne: является «магическим» методом в python, перегружающим оператор !=,

проверяет неравенство двух рациональных чисел, на вход ничего не принимает,

возвращает bool.

abs: является «магическим» методом в python, перегружающим функцию abs(),

возвращает модуль рационального числа, на вход ничего не принимает.

str: является «магическим» методом в python, перегружающим приведение

типа к строке, возвращает строковое представление рационального числа, на вход

ничего не принимает, возвращает str.

mul: является «магическим» методом в python, перегружающим оператор *,

выполняет умножение двух рациональных чисел, на вход принимает второй

множитель, принадлежащий классу TRational, возвращает объект класса

TRational.

add: является «магическим» методом в python, перегружающим оператор +,

выполняет сложение двух рациональных чисел, на вход принимает второе

слагаемое, принадлежащее классу TRational, возвращает объект класса TRational.

sub: является «магическим» методом в python, перегружающим оператор -,

выполняет вычитание двух рациональных чисел, на вход принимает второй

множитель, принадлежащий классу TRational, возвращает объект класса

TRational.

truediv: является «магическим» методом в python, перегружающим

оператор /, выполняет деление двух рациональных чисел, на вход принимает

делитель, принадлежащий классу TRational, возвращает объект класса TRational.

nod: вспомогательный метод, использующийся для поиска НОД, на вход ничего не принимает, возвращает целочисленное значение – НОД числителя и знаменателя.

reduce: вспомогательный метод для сокращения дроби. На вход ничего не принимает, возвращает сокращенную дробь.

gt: принимает на вход второе рациональное число, сравнивает их и возвращает bool. ??

Диаграмма классов

Рисунок 2 - диаграмма классов

Описание контрольных примеров с исходными и ожидаемыми данными

Пример 1. Определитель и ранг матрицы.

Исходные данные:

Ожидаемые данные:

Ранг = 2.

Результат:

Определитель:

Ранг:

Пример 2. Транспонирование матрицы.

Исходные данные:

Ожидаемые данные:

Результат:

Транспонированная матрица:

Вывод

В результате выполнения данной практической работы было разработано графическое приложение, которое реализует функционал, описанный в задании №1 для множества рациональных чисел. Был создан класс TRational в дополнение к уже существующим классам. Были реализованы и описаны методы класса. Была разработана диаграмма классов, отражающая взаимосвязи между созданными классами.

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