![]() |
|
![]() |
|
Тема: | Шаблон класів |
Мета роботи: | Ознайомитись з принципами створення шаблонів класів |
Завдання: | 1. Ознайомитись з теоретичною частиною даної теми. 2. Розробити структуру шаблону класу відповідно Завдання 1. 3. Розробити програму з використанням шаблону класу обробки простих даних відповідно Завдання 1 для заданих типів даних. 4. Розробити 2-3 тести для перевірки правильності роботи розробленої програми. 5. Оформити звіт до лабораторної роботи. |
Варіант |
Об’єкт |
Вигляд |
Інформація |
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();
//...
}