DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Звіт з лабораторної роботи №7

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

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

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

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Об’єктно-орієнтоване програмування
Група:
ПІ-11

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

Міністерство науки і освіти України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій кафедра програмного забезпечення Звіт з лабораторної роботи №7 з дисципліни “Об’єктно-орієнтоване програмування ” Тема: Наслідуванням класів з використанням віртуальних функцій Завдання Створити об’єкти для роботи з класами згідно завдання, використовуючи наслідування, абстрактні класи, віртуальні функції. Роботу з похідними об’єктами здійснювати через вказівник типу базового класу. Варіанти Робота з плоскими фігурами: трикутник, квадрат, коло. Для даних об’єктів, базовим класом являється клас “ плоска фігура ”. Необхідно використати віртуальні функції для обчислення площ і визначення належності точок фігурам. Необхідно ввести N точок Pi(x, y), N>= 3 Вивести назви і площі фігур, яким належать введені точки Pi(x, y) Відсортувати фігури в порядку спадання значень їх площ. Текст програми //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include<math.h> #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; class Fihyru { public: virtual double square(int,int,int,int,int,int,int,int){return 0;} void sort(double Spr,double Str,double Sel); }; class Priamokytnuk :public Fihyru { public: int x1,x2,x3,y1,y2,y3; double Spr; double square(int x1,int x2,int x3,int y1,int y2,int y3,int,int); }; class Trukytnuk :public Fihyru { public: int x1,x2,x3,y1,y2,y3; double Str; double square(int x1,int x2,int x3,int y1,int y2,int y3,int,int); }; class Elips:public Fihyru { public: int x1,x2,x3,x4,y1,y2,y3,y4; double Sel; double square(int x1,int x2,int x3,int x4,int y1,int y2,int y3,int y4); }; double Priamokytnuk::square(int x1,int x2,int x3,int y1,int y2,int y3,int,int) { double Sa,Sb,S; Sa=sqrt(pow((x1-x2),2)+pow((y1-y2),2)); Sb=sqrt(pow((x2-x3),2)+pow((y2-y3),2)); S=Sa*Sb; return S; } double Trukytnuk::square(int x1,int x2,int x3,int y1,int y2,int y3,int,int) { double Sa,Sb,Sc,ppr,S; Sa=sqrt(pow((x1-x2),2)+pow((y1-y2),2)); Sb=sqrt(pow((x2-x3),2)+pow((y2-y3),2)); Sc=sqrt(pow((x1-x3),2)+pow((y1-y3),2)); ppr=(Sa+Sb+Sc)/2; S=sqrt(ppr*(ppr-Sa)*(ppr-Sb)*(ppr-Sc)); return S; } double Elips::square(int x1,int x2,int x3,int x4,int y1,int y2,int y3,int y4) { double S,Sb,Sa; Sa=sqrt(pow((x1-x2),2)+pow((y1-y2),2)); Sb=sqrt(pow((x3-x4),2)+pow((y3-y4),2)); S=3.14*sqrt(pow(Sa,2)+pow(Sb,2))/2; return S; } void Fihyru::sort(double Spr,double Str,double Sel) { if((Spr>=Str)&&(Spr>=Sel)) { Form1->Label1->Caption=Form1->Label1->Caption+"Прямокутник S="+FloatToStr(Spr); if(Str>=Sel) { Form1->Label2->Caption=Form1->Label2->Caption+"Трикутник S="+FloatToStr(Str); Form1->Label3->Caption=Form1->Label3->Caption+"Еліпс S="+FloatToStr(Sel); } else { Form1->Label2->Caption=Form1->Label2->Caption+"Еліпс S="+FloatToStr(Sel); Form1->Label3->Caption=Form1->Label3->Caption+"Трикутник S="+FloatToStr(Str); } } else if((Str>=Spr)&&(Str>=Sel)) { Form1->Label1->Caption=Form1->Label1->Caption+"Трикутник S="+FloatToStr(Spr); if(Spr>=Sel) { Form1->Label2->Caption=Form1->Label2->Caption+"Прямокутник S="+FloatToStr(Str); Form1->Label3->Caption=Form1->Label3->Caption+"Еліпс S="+FloatToStr(Sel); } else { Form1->Label2->Caption=Form1->Label2->Caption+"Еліпс S="+FloatToStr(Sel); Form1->Label3->Caption=Form1->Label3->Caption+"Прямокутник S="+FloatToStr(Str); } } } //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {Label4->Caption="Введіть координати точок прямокутника:"; Label5->Caption="Введіть координати точок трикутника:"; Label6->Caption="Введіть координати точок еліпса:"; Label7->Caption="Відсортoвані фігури в порядку спадання значень їх площ"; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Fihyru M; Fihyru *pP=new Priamokytnuk; Fihyru *pT=new Trukytnuk; Fihyru *pK=new Elips; Priamokytnuk p; Trukytnuk t; Elips e; p.x1=StrToInt(Edit1->Text); p.y1=StrToInt(Edit2->Text); p.x2=StrToInt(Edit3->Text); p.y2=StrToInt(Edit4->Text); p.x3=StrToInt(Edit5->Text); p.y3=StrToInt(Edit6->Text); p.Spr=pP->square(p.x1,p.x2,p.x3,p.y1,p.y2,p.y3,0,0); t.x1=StrToInt(Edit7->Text); t.y1=StrToInt(Edit8->Text); t.x2=StrToInt(Edit9->Text); t.y2=StrToInt(Edit10->Text); t.x3=StrToInt(Edit11->Text); t.y3=StrToInt(Edit12->Text); t.Str=pT->square(t.x1,t.x2,t.x3,t.y1,t.y2,t.y3,0,0); e.x1=StrToInt(Edit13->Text); e.y1=StrToInt(Edit14->Text); e.x2=StrToInt(Edit15->Text); e.y2=StrToInt(Edit16->Text); e.x3=StrToInt(Edit17->Text); e.y3=StrToInt(Edit18->Text); e.x4=StrToInt(Edit19->Text); e.y4=StrToInt(Edit20->Text); e.Sel=pK->square(e.x1,e.x2,e.x3,e.x4,e.y1,e.y2,e.y3,e.y4); M.sort(p.Spr,t.Str,e.Sel); } //--------------------------------------------------------------------------- Результат виконання програми  Висновок: під час виконання лабораторної роботи ми вивчили наслідування класів з використанням віртуальних функцій
Антиботан аватар за замовчуванням

31.03.2013 13:38

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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