Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет "Львівська політехніка"
Інститут комп`ютерних наук та інформаційних технологій
Кафедра ПЗ
Звіт
З лабораторної роботи № 6
за курсом “Об`єктно – орієнтовне програмування ”
Тема: Наслідуванням класів з використанням віртуальних функцій
Мета: Створити об’єкти для роботи з класами згідно завдання, використовуючи наслідування, абстрактні класи, віртуальні функції. Роботу з похідними об’єктами здійснювати через вказівник типу базового класу.
Завдання:
Робота з об’єктами типу транспортні засоби: трамвай, тролейбус, автомобіль, літак.
Текст програми:
Головна функція
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Tramv B;
Plane A;
Trol D;
Car C;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
B.SetW(StrToFloat(Edit1->Text));
Edit4->Text=FloatToStr(B.GetW());
B.SetL(StrToFloat(Edit2->Text));
Edit5->Text=FloatToStr(B.GetL());
B.SetWid(StrToFloat(Edit3->Text));
Edit6->Text=FloatToStr(B.GetWid());
B.SetH(StrToFloat(Edit7->Text));
Edit8->Text=FloatToStr(B.GetH());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
A.SetW(StrToFloat(Edit9->Text));
Edit12->Text=FloatToStr(A.GetW());
A.SetL(StrToFloat(Edit10->Text));
Edit13->Text=FloatToStr(A.GetL());
A.SetWid(StrToFloat(Edit11->Text));
Edit14->Text=FloatToStr(A.GetWid());
A.SetH(StrToFloat(Edit15->Text));
Edit16->Text=FloatToStr(A.GetH());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
D.SetW(StrToFloat(Edit17->Text));
Edit20->Text=FloatToStr(D.GetW());
D.SetL(StrToFloat(Edit18->Text));
Edit21->Text=FloatToStr(D.GetL());
D.SetWid(StrToFloat(Edit19->Text));
Edit22->Text=FloatToStr(D.GetWid());
D.SetH(StrToFloat(Edit23->Text));
Edit24->Text=FloatToStr(D.GetH());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
C.SetW(StrToFloat(Edit25->Text));
Edit28->Text=FloatToStr(C.GetW());
C.SetL(StrToFloat(Edit26->Text));
Edit29->Text=FloatToStr(C.GetL());
C.SetWid(StrToFloat(Edit27->Text));
Edit30->Text=FloatToStr(C.GetWid());
C.SetH(StrToFloat(Edit31->Text));
Edit32->Text=FloatToStr(C.GetH());
}
Клас
//---------------------------------------------------------------------------
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
class Transport
{
private:
float W,L,Wid;
int M;
public:
void SetW(float c) {W=c;}
void SetL(float c) {L=c;}
void SetWid(float c) {Wid=c;}
void SetM(int c) {M=c;}
float GetW() const
{
return W;}
float GetL() const
{return L;}
float GetWid() const
{return Wid;}
float Get() const
{return M;}
};
//-----------------------------------------------------------------------------
class Tramv : public Transport
{
private:
float H;
public:
void SetH(float c) {H=c;}
float GetH() const
{return H;}
};
//-----------------------------------------------------------------------------
class Plane : public Transport
{
private:
float H;
public:
void SetH(float c) {H=c;}
float GetH() const
{return H;}
};
//-----------------------------------------------------------------------------
class Trol : public Transport
{
private:
float H;
public:
void SetH(float c) {H=c;}
float GetH() const
{return H;}
};
//-----------------------------------------------------------------------------
class Car : public Transport
{
private:
float H;
public:
void SetH(float c) {H=c;}
float GetH() const
{return H;}
};
//---------------------------------------------------------------------------
#endif
Результат роботи програми.
Висновок: У ході лабораторної роботи я навчився створювати різні типи наслідування та використовувати їх на практиці.