PR2.Tyutterin_Yakov_Z1411
.pdfМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
Канд. техн. наук |
|
С. А. Чернышев |
должность, уч. степень, звание |
подпись, дата |
инициалы, фамилия |
ОТЧЕТ О ПРАКТИЧЕСКОЙ РАБОТЕ №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)