Лаба 2
.pdfМинистерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)
ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ
Отчет по лабораторной работе №2 по дисциплине «Технологии и методы программирования»
Студенты гр. 711-2:
_______А.А. Калинин
_______Е.П. Толстолес
__.__.2023
Руководитель
преподаватель каф. КИБЭВС
_______ Б.С. Лодонова
__.__.2023
Томск 2023
Введение
Целью работы является изучение основных паттернов проектирования и их реализация на практике согласно варианту 6: Телефон. Атрибуты: номер,
баланс. Операции: позвонить, ответить на звонок, завершить разговор,
пополнить баланс. Состояния: ожидание, звонок, разговор.
Задачи:
Ознакомиться с краткими теоритическими сведениями;
Выбрать необходимый паттерн для решения задачи;
Составить UML диаграмму классов для решения задачи;
Написать программу реализовывая паттерн согласно варианту;
Составить отчет согласно ОС ТУСУР 01-2021.
2
2 ХОД РАБОТЫ
В качестве паттерна выбран State (состояние).
На рисунке 2.1 представлена UML диаграмма классов согласно варианту
6.
Рисунок 2.1 – UML диаграмма
Код программы представлен в приложении А.
3
Заключение
В ходе лабораторной работы были изучены основные паттерны проектирования их реализация на практике согласно варианту 6.
Отчет составлен согласно ОС ТУСУР 2021.
4
ПРИЛОЖЕНИЕ А
(обязательное)
Код программы
class Program
{
static void Main()
{
var check = new Wating(); var call = new Call();
var end = new Talk(); call.AnswerCall(); end.EndCall();
}
}
class Check
{
public int number; public double balance;
public void BuyMinutes()
{
balance++;
}
}
class Stateline : Check
{
public static bool LineIsBusy = false; public static void Update()
5
{
if (LineIsBusy is true)
{
LineIsBusy = false;
}
else
{
LineIsBusy = true;
}
}
}
class Wating : Stateline
{
public void Call()
{
Stateline.Update();
}
}
class Talk : Stateline
{
public void EndCall()
{
Stateline.Update();
}
}
class Call : Stateline
{
6
public void AnswerCall()
{
Stateline.Update();
}
public void EndCall()
{
Stateline.Update();
}
}
7