Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Турчин Д.Е. - Архитектура ИС. Практикум 2014 (И...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.42 Mб
Скачать

5.3. Порядок выполнения работы

Данная лабораторная работа предполагает выполнение следующих этапов:

  1. Изучить методические указания к лабораторной работе.

  2. Разработать библиотеку классов, которая содержит указанные классы (табл. 5.1), задействованные в шаблоне Адаптер. Для адаптера объектов атрибуты класса должны быть реализованы как автоматические свойства, а для шаблона Адаптер классов – как защищённые поля.

  3. Разработать библиотеку классов, которая должна содержать класс-фасад и заданный набор классов (табл. 5.2). В фасаде необходимо задать ссылки на другие классы библиотеки.

  4. Добавить в решение консольное приложение, которое для реализованных шаблонов играет роль клиента. Продемонстрировать работу в консольном приложении работу шаблонов проектирования.

  5. Оформить и защитить отчет по лабораторной работе.

Таблица 5.1

Варианты заданий для разработки приложения с использованием шаблона Адаптер

вар.

Тип адаптера

Требуемый интерфейс

Адаптируемый класс

1, 13

Объектов

+ CalculateDp(T0 : int, dT : int) : double – Определить изменение давления при заданной начальной температуре T0 и изменении температуры dT;

+ ModifMass(dm : double) : void – изменить массу газа в баллоне на величину dm;

+ GetData() : string – возвращает строку с данными об объекте

Баллон с газом.

Атрибуты:

Volume : double – объём баллона, м3;

Mass : double – масса газа, кг;

Molar : double – молярная масса газа, кг/моль.

Операции:

+ GetPressure(T : int) : double – определить давление в баллоне при заданной температуре газа T;

+ AmountOfMatter() : double – определить количество вещества;

+ ToString() : string – возвращает строку с данными об объекте.

2, 14

Классов

+ ModifVolume(dV : double) : void – изменить объём баллона на величину dV;

+ GetDp(T0 : int, T1 : int) : double – Определить изменение давления при изменении температуры с T0 до T1;

+ Passport() : string – возвращает строку с данными об объекте.

3, 15

Объектов

+ ModifLength(dl : double) : void – изменить длину подвеса маятника на величину dl;

+ GetFreq() : double – Определить частоту колебаний;

+ Passport() : string – возвращает строку с данными об объекте

Математический маятник

Атрибуты:

a : double – амплитуда колебаний;

d : double – длина нерастяжимой нити;

m : int – масса маятника;

Операции:

+ X(t : int): double – определить смещение маятника в момент времени t;

+ CalculateT() : double – Определить период колебаний;

+ ToString() : string – возвращает строку с данными об объекте

4, 16

Классов

+ ModifMass(dm : int) : void – изменить массу маятника на величину dm;

+ CalculateW() : double – определить циклическую частоту колебаний;

+ GetData() : string – возвращает строку с данными об объекте

5, 17

Объектов

+ Translate(double dx, double dy) : void – переместить объект на величину dx по оси X и на dy по оси Y;

+ GetGravForce(int m, double r, double a) : double – определить силу гравитационного взаимодействия с объектом массы m и полярными координатами r и a;

+ Passport() : string – возвращает строку с данными об объекте.

Астероид

Атрибуты:

m : double – масса;

x : double – координата X;

y : double – координата Y.

Операции:

+ Distance(x : double, y : double) : double – определить расстояние от астероида до объекта с координатами x и y;

+ Fg(m : int, r : double) : double – определить силу взаимодействия с объектом массы m, расположенного на расстоянии r от данного объекта;

+ ToString() : string – возвращает строку с данными об объекте.

6, 18

Классов

+ Move(double dr, double a) : void – переместить объект на расстояние dr в направлении, задаваемом углом a;

+ CalculateFgrav(int m, double x, double y) : double – определить силу гравитационного взаимодействия с объектом массы m и координатами x и y;

+ GetData() : string – возвращает строку с данными об объекте.

7, 19

Объектов

+ CalculateW(u : int) : double – определить электрическую энергию конденсатора при известном напряжении u между обкладками;

+ ModifS(dS : double) : void – изменить площадь обкладок конденсатора на величину dS;

+ GetData() : string – возвращает строку с данными об объекте.

Плоский конденсатор

Атрибуты:

s : double – площадь обкладки конденсатора;

d : double – расстояние между обкладками;

eps : double – диэлектрическая проницаемость среды между обкладками.

Операции:

+ Capacity() : double – определить ёмкость конденсатора;

+ GetCharge(u : int) : double – определить заряд на обкладках конденсатора при известном напряжении u;

+ ToString() : string – возвращает строку с данными об объекте.

8, 20

Классов

+ GetW(u : int) : double – определить электрическую энергию конденсатора при известном напряжении u между обкладками;

+ ModifD(dD : double) : void – изменить расстояние между обкладками конденсатора на величину dD;

+ Passport() : string – возвращает строку с данными об объекте.

9, 21

Объектов

+ CalculateW() : double – определить циклическую частоту колебаний;

+ ModifA(dA : double) : void – изменить амплитуду колебаний на величину dA;

+ Passport() : string – возвращает строку с данными об объекте.

Пружинный маятник

Атрибуты:

a : double – амплитуда колебаний;

k : double – жёсткость пружины;

m : int – масса маятника.

Операции:

+ ElasticForce(t : int) : double – определить силу упругости в момент времени t;

+ GetFreq() : double – определить частоту колебаний;

+ ToString() : string – возвращает строку с данными об объекте.

смещение от положения равновесия

10, 22

Классов

+ ModifMass(dM : double) : void – изменить массу маятника на величину dM;

+ CalculateT() : double – Определить период колебаний;

+ GetData() : string – возвращает строку с данными об объекте.

11, 23

Объектов

+ Move(dx : double, dy : double) : void – переместить объект на величину dx по оси X и на dy по оси Y;

+ CalculateForce(q : double, r : double, a : double) : double – определить силу электростатического взаимодействия с точечным зарядом q, имеющим полярные координаты r и a;

+ GetData() : string – возвращает строку с данными об объекте.

Точечный электрический заряд

Атрибуты:

q : double – заряд;

x : double – координата X;

y : double – координата Y.

Операции:

+ F(m : int, r : double) : double – определить силу взаимодействия с объектом массы m, расположенного на расстоянии r от данного объекта;

+ R(double x, double y) : double – определить расстояние от данного заряда до точки с координатами x и y;

+ ToString() : string – возвращает строку с данными об объекте.

12, 24

Классов

+ Translate(double dr, double a) : void – переместить объект на расстояние dr в направлении, задаваемом углом a;

+ GetElectrForce(int q, double x, double y) : double – определить силу электростатического взаимодействия с точечным зарядом q, расположенном в координатах x и y;

+ Passport() : string – возвращает строку с данными об объекте.

Таблица 5.2

Варианты заданий для разработки приложения с использованием шаблона Фасад

вар.

Данные для разработки приложения на основе шаблона Фасад

1, 7, 13, 19

Расчёт страхового взноса за недвижимость.

Классы (типы недвижимости): квартира, таун-хаус, коттедж.

Параметры: срок страхования, жилплощадь (м2), число проживающих, год постройки здания, износ здания (%).

2, 8, 14, 20

Расчёт ежедневной нормы потребления килокалорий.

Классы (Тип телосложения): Астеник, Нормостеник, Гиперстеник.

Параметры: Рост, Вес, Возраст, Пол, Группа физической активности (низкая, средняя и высокая активность).

3, 9, 15, 21

Расчёт стоимости туристической путевки:

Классы (виды путевок): пляжный отдых, экскурсия, горные лыжи.

Параметры: длительность, страна, гостиница (число звезд), рацион питания (двухразовый, трехразовый, всё включено).

4, 10, 16, 22

Расчёт ОСАГО.

Классы (типы автотранспортных средств): легковой автомобиль, грузовой автомобиль, автобус.

Параметры: срок договора, лицо (физическое, юридическое), стаж водителя, регион.

5, 11, 17, 23

Расчёт стоимости покупаемого легкового автомобиля.

Классы (марки автомобилей): марка1, марка2, марка3 (придумать самостоятельно).

Параметры: год выпуска, объем двигателя, цвет, комплектация (минимальная, средняя, максимальная).

6, 12, 18, 24

Расчёт срока строительства здания.

Классы (типы зданий): жилое здание, общественное здание, промышленное здание.

Параметры: строительный объем здания (м3), занимаемая площадь (м2), период строительства (лето, зима, весна-осень), геологические условия (простые, средние, сложные).