
oop_4
.pdfМИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРТСВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ В.И. УЛЬЯНОВА (ЛЕНИНА) Кафедра информационной безопасности
ПРАКТИЧЕСКАЯ РАБОТА №3 По дисциплине «Объектно-ориентированное программирование»
Санкт-Петербург
2023
ЗАДАНИЕ
НА ПРАКТИЧЕСКУЮ РАБОТУ
Исходные данные: добавить к предыдущему приложению серверную часть. Приложение должно иметь серверную и клиентскую часть, причем клиентское приложение должно выполнять следующие функции:
-не прямое обращение объекта интерфейс к объектам полинома и рационального числа, а формирование сообщения, состоящего из вида запроса (что от них надо) и параметров запроса (какие данные для этого есть);
-получать ответ на запрос не напрямую, а опять-таки через ответное сообщение;
-транслировать сообщения объекта интерфейс в сеть и обратно (новая функция)
Асерверное приложение должно выполнять следующие функции:
-получать и принимать сообщения из сети (коммуникатор);
-преобразовывать полученные сообщения к виду, позволяющему обращаться к объектам полинома и рационального числа;
-преобразовывать его в ответное сообщение для интерфейса клиентского приложения.
Содержание пояснительной записки:
Титульный лист, лист задания на практическую работу, содержание,
теоретическое введение, решение поставленной задачи, вывод, список использованных источников.
2
СОДЕРЖАНИЕ
ЗАДАНИЕ ...................................................................................................... |
2 |
НА ПРАКТИЧЕСКУЮ РАБОТУ ................................................................. |
2 |
СОДЕРЖАНИЕ ............................................................................................. |
3 |
ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ ................................................................. |
4 |
РЕШЕНИЕ ПОСТАВЛЕННОЙ ЗАДАЧИ................................................... |
5 |
ВЫВОД......................................................................................................... |
15 |
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ .................................. |
16 |
3

ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ
Практическая работа выполняется на языке программирования Java.
Имеется программа-сервер, содержащая в себе интерфейс и функцию отправки данных по порту 10000. Помимо этого, имеется клиентская программа. Ее необходимо запускать до того, как обратится сервер, но если не запустить клиентскую программу до того как программа-сервер создаст запрос
(отправит матрицу на обработку) ошибки не будет, программа сообщит в консоль о том, что для дальнейшей работы должен быть запущен сервер.
Программа-сервер отсылает автогенерируемую матрицу (или введенную пользователем с помощью "Enter values") через порт 10000 на программу-
клиент, которая обрабатывает матрицу в соответствии с выбранной функцией и затем по этому же порту 10000 возвращает результат работы той или иной функции.
Блок схема работы программы:
4
РЕШЕНИЕ ПОСТАВЛЕННОЙ ЗАДАЧИ
При запуске программы появляется стартовое окно (рисунок 1). Далее в верху стартового окна пользователь должен будет создать матрицу определенной размерности (ввести число размерности в поле и нажать
“create”) (рисунок 2). Если пользователь решит пропустить этап создания матрицы, а сразу начнет работу с ней, то произойдет ошибка, и пользователь увидит надпись “You must create matrix first” (рисунок 3). Если пользователю надо ввести в матрицу собственные значения, необходимо нажать “Enter values”. Будет создано новое окно, в котором пользователь может ввести значения матрицы (рисунок 4). Если пользователь нажмет “Transpose”,
матрица будет транспонирована, а результат транспонирования выведется в промежутке между вводом значения и выбором действий с матрицей (рисунок
5). Кнопка “Display matrix” выводит матрицу пользователю (рисунок 6). Для нахождения определителя матрицы достаточно нажать на “DET” (рисунок 7).
Если пользователю необходимо узнать ранг матрицы, ему достаточно нажать на “Rank” (рисунок 8). Для выхода из программы, необходимо нажать “EXIT” (рисунок 9).
5

Рисунок 1. Стартовое окно
6

Рисунок 2. Создание матрицы
7

Рисунок 3. Ошибка создания матрицы
8

Рисунок 4. Ввод значений
9

Рисунок 5. Транспонирование
10