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

Лаба 2

.pdf
Скачиваний:
2
Добавлен:
01.12.2023
Размер:
266.5 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра комплексной информационной безопасности электронновычислительных систем (КИБЭВС)

ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ

Отчет по лабораторной работе №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

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