вася

Ласкаво просимо в аудиторію №18

 

 

Лабораторні роботи з дисципліни:
“ Технологія створення програмних продуктів "

Лабораторна робота №13

 Тема: Шаблон класів
 Мета роботи: Ознайомитись з принципами створення шаблонів класів
 Завдання: 1. Ознайомитись з теоретичною частиною даної теми.
2. Розробити структуру шаблону класу відповідно Завдання 1.
3. Розробити програму з використанням шаблону класу обробки простих даних відповідно Завдання 1 для заданих типів даних.
4. Розробити 2-3 тести для перевірки правильності роботи розробленої програми.
5. Оформити звіт до лабораторної роботи.

 

Завдання 1.

Варіант

Об’єкт

Вигляд

Інформація

1.                 

Дельтоїд

S – площа

x – на малюнку

y – на малюнку

2.                 

Зрізана піраміда

S – площа поверхні

V – об’єм

s – площа перерізу по діагоналі

3.                 

Зрізана сфера

S – площа поверхні

V – об’єм

s – площа перерізу по діагоналі

4.                 

Зрізаний конус

S – площа поверхні

V – об’єм

s – площа перерізу по діагоналі

5.                 

Квадрат

S – площа вписаного кола

Р – з малюнку

R – радіус описаного кола

6.                 

Кільце

l1 – довжина кола1

l2 – довжина кола2

S - площа

7.                 

Коло

d - діаметр

S - площа

l – довжина

8.                 

Конус

S – площа поверхні

V – об’єм

s – площа перерізу по діагоналі

9.                 

Куб

S – площа поверхні

V – об’єм

U – діагональ

10.            

Паралелепіпед

S – площа поверхні

V – об’єм

U – діагональ

11.            

Паралелограм

S – площа

h – висота

β – кут ABС

12.            

Піраміда

S – площа поверхні

V – об’єм

r – вписаного кола в основу

13.            

Правильна піраміда

S – площа поверхні

V – об’єм

α – кут на малюнку

14.            

Правильна призма

S – площа поверхні

V – об’єм

U – діагональ

15.            

Правильний n-кутник

S – площа

p – на малюнку

α – на малюнку

16.            

Призма

S – площа поверхні

V – об’єм

U – діагональ

17.            

Прямокутний трикутник

СP – висота

r -радіус вписаного кола

B – кут в градусах

18.            

Прямокутник

S – площа описаного кола

r – половина діагоналі

α – кут ACB

19.            

Рівнобедрений прямокутний трикутник

S – площа

P - півпериметр

A – кут в градусах

20.            

Рівнобедрений трикутник

CP – висота

R -радіус описаного кола

R - радіус вписаного кола

21.            

Рівносторонній трикутник

AP – висота

R -радіус описаного кола

BP - бісектриса

22.            

Рівностороння трапеція

S – площа

h – висота

α – кут DAB

23.            

Ромб

S – площа вписаного кола

α – кут DAB

β – кут ABC

24.            

Сегмент

l – периметр сегменту

S - площа

t - довжина хорди

25.            

Сегмент сфери

S – площа поверхні

V – об’єм

s – площа перерізу по діагоналі

26.            

Сектор

l – довжина дуги

S - площа

t - довжина хорди

27.            

Сфера

S – площа поверхні

V – об’єм

s – площа перерізу по діагоналі

28.            

Трапеція

S – площа

h – висота

α – кут ADС

29.            

Трикутник

S – площа

γ - кут C в градусах

α – кут A в градусах

30.            

Циліндр

S – площа поверхні

V – об’єм

s – площа перерізу по діаметру

Приклад виконання

#include <iostream>

#include <math.h>

#include <string>

using namespace std;

template <class T>

class Point

{

protected:

            T x, y;

public:

            Point();

            Point(T k, T g);

            Point(const Point<T>& p);

//...

            void setx(T t) { x = t; }

            void sety(T t) { y = t; }

            void plus(const Point<T>& p);

            void displayin();

            virtual void displayout();

};

template <class T> Point<T>::Point()

{

            x = 5;

            y = 5;

}

template <class T> Point<T>::Point(T k, T g)

{

            x = k;

            y = g;

}

template <class T> Point<T>::Point(const Point<T>& p)

{

            x = p.x;

            y = p.y;

}

template <class T> void Point<T>::plus(const Point<T>& p)

{

            x = x + p.x;

            y = y + p.y;

}

template <class T> void Point<T>::displayin()

{

            cout << "enter point\n";

            cin >> x >> y;

}

template <class T> void Point<T>::displayout()

{

            cout << "Point(" << x << "," << y << ")\n";

}

int main()

{

            int x, y;

            Point<float> a;

            a.displayin();

            a.displayout();

            cout << "copy constructor test: ";

            Point<float> b(a);

            b.displayout();

            cout << "enter x,y:\n";

            cin >> x >> y;

            a.setx(x);

            a.sety(y);

            cout << "setter test: ";

            a.displayout();

            cout << "parameter constructor test: ";

            Point<float> c(x, y);

            c.displayout();

            cout << "adding points result: ";

            a.plus(b);

            a.displayout();

//...

}