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

PR2.Tyutterin_Yakov_Z1411

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

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ

ОЦЕНКА

ПРЕПОДАВАТЕЛЬ

Канд. техн. наук

 

С. А. Чернышев

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ПРАКТИЧЕСКОЙ РАБОТЕ №2

Поведенческие шаблоны проектирования GoF

по дисциплине: Технологии программирования

РАБОТУ ВЫПОЛНИЛ

 

 

 

 

 

СТУДЕНТ гр. №

Z1411

 

 

Я. Н. Тюттерин

 

 

 

 

 

 

 

номер группы

подпись, дата

 

инициалы, фамилия

Студенческий билет №

2022/4886

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Практическая работа № 2. Поведенческие шаблоны проектирования GoF

Цель работы: познакомиться с основными способами реализации поведенческих шаблонов проектирования GoF.

Вариант 18.

Задание 4. Разработайте консольное приложение, которое позволяет выполнять и отменять операции (сложение, вычитание, умножение, деление). Используйте шаблон Команда. Обязательные для реализации классы и их методы: Calculator - класс калькулятора; Command - абстрактный класс команды с методами execute() и undo(); AddCommand, SubtractCommand, MultiplyCommand, DivideCommand - конкретные команды для выполнения арифметических операций, наследующиеся от Command.

Рисунок 1 - Абстрактный класс команд

Рисунок 2 - Команда сложения

Рисунок 3 - Команда деления

Рисунок 4 - Команда умножения

Рисунок 5 - Команда вычитания

Рисунок 6 - Тип перечисления для доступных команд

Рисунок 7 - Реализация калькулятора

Рисунок 8 - Тесты калькулятора (1/2)

Рисунок 9 - Тесты калькулятора (1/2)

Задание 13. Разработайте консольное приложение, которое моделирует работу светофора. Приложение должно управлять состоянием светофора, позволяя ему переключаться между красным, желтым и зеленым цветами. Используйте шаблон Состояние. Обязательные для реализации классы и их методы: Traf ficLight - класс, представляющий светофор (метод change_state изменяет состояние светофора, get_state возвращает текущее состояние светофора); TrafficLightState - абстрактный класс состояния светофора с абстрактным методом switch_state. RedState, YellowState, GreenState - конкретные классы состояний,

реализующие метод switch_state.

Enum, представляющий цвета светофора, представлен на рисунке 1.

Рисунок 1 - Цвета светофора

Рисунок 2 - Реализация TrafficLightState для зеленого

Рисунок 3 - Реализация TrafficLightState для красного

Рисунок 4 - Реализация TrafficLightState для желтого

Рисунок 5 - Абстрактный класс для состояний светофора

Рисунок 6 - Класс, реализующий светофор(1/2)

Рисунок 7 - Класс, реализующий светофор(2/2)

Рисунок 8 - Тесты для светофора (1/2)

Рисунок 9 - Тесты для светофора (2/2)

Соседние файлы в предмете Технологии программирования