Об’єктно-орієнтоване програмування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2008
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Інформаційні технології
Група:
ПІ-11

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій Кафедра ПЗ Звіт з лабораторної роботи №5 за курсом “Об’єктно-орієнтоване програмування” Львів 2008 Лабораторна робота №5 Тема: Перевантаження функцій і операцій. Дружні функції Мета: навчитися перевантажувати функції та операції, а також працювати з дружніми функціями; зрозуміти основні властивості та правила роботи з ними. Варіант №10 Виконання роботи 1.Постановка задачі. Написати програму алгоритмічною мовою С++ згідно із завданням, отриманим від викладача відповідно до варіанту. Реалізувати заданий класовий тип із заданими методами, використовуючи механізм перевантаження функцій та операцій, а також значення параметрів за замовчуванням. Написати фрагмент програми з використанням класового типу та заданих методів. Завдання: Трикутник на координатній площині [p1;p2;p3] Конструктор повинен визначати довільний або рівносторонній трикутник в центрі координат. Визначення периметра. Перевантажити операції ==, виводу <<, вводу >>, а також дружню операцію += для переміщення трикутника на [dx; dy].   2.Текст програми. Файл: Main.cpp #include <vcl.h> #include <iostream.h> #include <conio.h> #include "Triangle.h" #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused void main() {float Ax2,Ay2,Bx2,By2,Cx2,Cy2,P2; float Ax1,Ay1,Bx1,By1,Cx1,Cy1,P1; Triangle T2,T1; printf("Vvedit' koordynaty pershoho trykutnyka: A(x,y),B(x,y),C(x,y)\n"); cin >> T2; printf("Vvedit' koordynaty druhoho trykutnyka: A(x,y),B(x,y),C(x,y)\n"); cin >> T1; P2=T2.GetPerum(); printf("Perymetr 1 trykutnyka %f\n",P2); P1=T1.GetPerum(); printf("Perymetr 2 trykutnyka %f\n",P1); if (T2==T1) printf("Trykutnyky odnakovi\n"); else printf("Trykutnyky rizni\n"); if (T2.GetOzn()==1) printf("Trykutnyk 1 rivnostoronnij\n"); else printf("Trykutnyk 1 NE rivnostoronnij\n"); if (T1.GetOzn()==1) printf("Trykutnyk 2 rivnostoronnij\n"); else printf("Trykutnyk 2 NE rivnostoronnij\n"); float Z2[2],Z1[2]; printf("Vyznachte zsuv 1 trykutnyka (x,y): "); scanf("%f%f",&Z2[0],&Z2[1]); T2 += Z2; printf("\nVyznachte zsuv 2 trykutnyka (x,y): "); scanf("%f%f",&Z1[0],&Z1[1]); T1 += Z1; cout << T2; cout << T1; getch(); } //--------------------------------------------------------------------------- Файл: Triangle.cpp #include <math.h> #include "Triangle.h" #pragma hdrstop //--------------------------------------------------------------------------- float Triangle::GetPerum() {float P; AB=sqrt(pow((B[0]-A[0]),2)+pow((B[1]-A[1]),2)); BC=sqrt(pow((C[0]-B[0]),2)+pow((C[1]-B[1]),2)); AC=sqrt(pow((A[0]-C[0]),2)+pow((A[1]-C[1]),2)); P=AB+BC+AC; return P; }; //--------------------------------------------------------------------------- int Triangle::operator ==(Triangle &T1) {if ((T1.A[0]-A[0])==(T1.A[1]-A[1])==(T1.B[0]-B[0])==(T1.B[1]-B[1])==(T1.C[0]-C[0])==(T1.B[1]-B[1])) return 1; else return 0; }; //--------------------------------------------------------------------------- int Triangle::GetOzn() {if (AB==BC==AC) Ozn=1; else Ozn=0; return Ozn; }; //--------------------------------------------------------------------------- void operator +=(Triangle &TT,float *P) {TT.A[0]=TT.A[0]+*P; TT.A[1]=TT.A[1]+*(P+1); TT.B[0]=TT.B[0]+*P; TT.B[1]=TT.B[1]+*(P+1); TT.C[0]=TT.C[0]+*P; TT.C[1]=TT.C[1]+*(P+1); }; //--------------------------------------------------------------------------- void operator >> (istream &in,Triangle &T1) {in >> T1.A[0] ; in >> T1.A[1] ; in >> T1.B[0] ; in >> T1.B[1] ; in >> T1.C[0] ; in >> T1.C[1] ; }; //--------------------------------------------------------------------------- void operator << (ostream &out,Triangle&T1) {out << T1.A[0] << " "; out << T1.A[1] << " "; out << T1.B[0] << " "; out << T1.B[1] << " "; out << T1.C[0] << " "; out << T1.C[1] << " "; out << "\n"; }; //--------------------------------------------------------------------------- #pragma package(smart_init) Файл: Triangle.h #ifndef TriangleH #define TriangleH #include <iostream.h> //--------------------------------------------------------------------------- class Triangle {protected: float A[2],B[2],C[2]; float AB,BC,AC; int Ozn; public: float GetPerum(); int operator ==(Triangle &T1); int GetOzn(); friend void operator +=(Triangle &TT,float *P); friend void operator <<(ostream &out,Triangle &T); friend void operator >>(istream &in,Triangle &T); }; //--------------------------------------------------------------------------- #endif 3.Протокол роботи програми.   Висновок: на цій лабораторній роботі я навчитися перевантажувати функції та операції, а також працювати з дружніми функціями, зрозумів основні властивості та правила роботи з перевантаженням функцій та операцій, а також особливості роботи дружніх функцій.
Антиботан аватар за замовчуванням

31.03.2013 15:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!