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

9373_8_5

.pdf
Скачиваний:
0
Добавлен:
20.06.2023
Размер:
1.05 Mб
Скачать

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

ОТЧЕТ

по практической работе №5

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

Студент гр. 9373

 

Заболотников М.Е.

Студентка гр. 9373

 

Петрова С.В.

Преподаватель

 

 

Егоров С.С.

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

2022

Постановка задачи.

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

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

Для того, чтобы выполнить данную работу, необходимо было модифицировать исходную программу, то есть поработать с серверной и клиентской частями программы. Что было сделано?

1.В клиентской части произошли следующие существенные изменения:

Укласса TInterface (в соответствующем .h-файле) появились два новых атрибута: QRadioButton *i_mode и QRadioButton *r_mode, которые будут отвечать за кнопки выбора режима работы с целыми числами и с рациональными соответственно.

2.В серверной части:

a) В файле tpolinom.h был класс TPolinom был обёрнут в шаблон класса template <class number> для того, чтобы потом программа понимала,

счем мы работаем – с целыми числами (TPolinom <int>) или с

рациональными (TPolinom <TRational>). То же самое произошло и

со всем методами этого класса.

b)Были переопределены операции ввода и вывода для целых чисел.

c)Была переработана функция void TApplication::recieve(QByteArray msg) так, чтобы она работала и в режиме целых чисел, и в режиме рациональных. Для этого было создано перечисление типа modes с

атрибутами I_MODE и R_MODE. Здесь же были добавлены проверка

на ошибки ввода и защита от неверных значений.

Далее приведём диаграмму классов для клиентской и серверной частей

(рис. 1 и рис. 2 соответственно):

2

Рисунок 1 – Диаграмма классов для клиентской части

Рисунок 2 – Диаграмма классов для серверной части

3

Тесты работы программы.

Чтобы продемонстрировать исправную работу программы, проведём несколько тестов.

Рассмотрим полином 369 2 03 − 1. Работать будем в целых числах. Для программы это означает, что мы как бы "отбрасываем" знаменатели, то есть получаем полином 36 2 − 1.

1. Подставляем = 1, должны получить 35:

Ответ верный.

2. Корни у полинома есть, но они не целые ( = ± 16):

Ответ верный.

3. Вывод классической и канонической формы этого полинома:

4

Как видим, результаты получились корректные.

Теперь "вернём" знаменатели и поработаем с полиномом 369 2 03 − 1. В

теории должен быть следующий набор результатов:

a)(1) = 3;

b)= ± 12;

c)Классическая форма: 4 2 − 1;

d)Каноническая форма: 4 ( − 12) ( + 12).

Практические результаты представлены ниже:

a)

b)

5

c) d)

Из рисунков понятно, что программа справляется со своими задачами н отлично.

Проверка на ошибки в вводе данных:

Результат верный, так как знаменатель дроби не может равняться нулю.

Выводы.

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

рациональными. Создание шаблона классов позволило осуществить реализацию

6

такого выбора. Программа успешно прошла все тесты, дав положительные

результаты.

7