Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет "Львівська політехніка"
Інститут комп`ютерних наук та інформаційних технологій
Кафедра ПЗ
EMBED PictPub.Image.8
Звіт
З лабораторної роботи № 6
за курсом “Об`єктно – орієнтовне програмування ”
Виконав
Студент групи ПІ-1
Львів 2008
Тема: Наслідуванням класів з використанням віртуальних функцій
Мета: Створити об’єкти для роботи з класами згідно завдання, використовуючи наслідування, абстрактні класи, віртуальні функції. Роботу з похідними об’єктами здійснювати через вказівник типу базового класу.
Завдання:
Робота з об’єктами типу транспортні засоби: трамвай, тролейбус, автомобіль, літак.
Текст програми:
Головна функція
#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
Результат роботи програми.
Висновок: У ході лабораторної роботи я навчився створювати різні типи наслідування та використовувати їх на практиці.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!