МИНОБРНАУКИ РОССИИ
Федеральное государственное автономное образовательное
учреждение высшего профессионального образования
«Южный федеральный университет»
Факультет |
РАДИОТЕХНИЧЕСКИЙ |
Кафедра |
МИКРОПРОЦЕССОРНЫХ СИСТЕМ |
Отчет по лабораторной работе №2
по дисциплине:
«Объектно-ориентированное программирование».
На тему: «Разработка классов».
Выполнил: студент группы Р-102 |
В.Г.Горчаков |
|
|
Проверил:доцент каф. МПС |
М.И.Ледовской |
Таганрог 2013 г.
Цель работы:
Продолжить изучение принципов ООП и его преимуществ, научиться объявлять собственные классы, экземпляры классов, создавать методы.
Задание 9:
1. Разработайте класс Truncated_Cone (усеченный конус, в основаниях – круги), который содержит: закрытые переменные r, R – радиусы кругов-оснований, L – образующая усеченного конуса, H – высота конуса; метод Set_Init для инициализации указанных переменных, методы Get_So, Get_Sb, Get_Sp вычисляющие и возвращающие значения площадей основания, боковой и полной поверхностей конуса по формулам соответственно
Sосн1 = r 2, Sосн2 = R2, Sбок = L(R+r), Sполн = Sосн1 +Sосн2+ Sбок ,
а также метод, обеспечивающий вывод полученных значений площадей.
2. Разработайте программу, которая создает и инициализирует объект разработанного класса, вычисляет и выводит значения указанных площадей.
Выполнение работы:
Компонент
|
Свойство |
Событие |
Обработчик |
Label1 |
нет |
нет |
нет |
Label2 |
нет |
нет |
нет |
Button1 |
|
OnClick |
Button1Click |
SG |
ColCount=2 DefaultColWeight=210 FixedCols=1 FixedRows=0 goEditing=true RowCount=4 |
нет |
нет |
SG2 |
ColCount=2 DefaultColWeight=210 FixedCols=1 FixedRows=0 RowCount=4 |
нет |
нет |
Form1 |
нет |
OnCreate |
FormCreate |
Класс |
TCone |
Метод |
Get_Sb |
Метод |
Get_Sp |
Метод |
Get_So1 |
Метод |
Get_So2 |
Метод |
Resultshow |
Метод |
Set_init |
Переменная |
Тип |
R1 |
real |
R2 |
Real |
L |
Real |
H |
real |
Рис.1 - Окно разработанного приложения
Unit.pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
SG: TStringGrid;
Label2: TLabel;
SG2: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
var
Truncated_Cone:TCone;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
r1,r2,l,h:real;
begin
l:=strtofloat(SG.Cells[1,0]);
h:=strtofloat(SG.Cells[1,1]);
r1:=strtofloat(SG.Cells[1,2]);
r2:=strtofloat(SG.Cells[1,3]);
Truncated_Cone:=TCone.Set_init(r1,r2,l,h);
Truncated_Cone.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Caption:='Введите значения';
Form1.Label2.Caption:='';
SG.Cells[0,0]:='Образующая';
SG.Cells[0,1]:='Высота';
SG.Cells[0,2]:='Радиус малого основания';
SG.Cells[0,3]:='Радиус большого основания';
SG.Cells[1,0]:='0';
SG.Cells[1,1]:='0';
SG.Cells[1,2]:='0';
SG.Cells[1,3]:='0';
SG2.Cells[0,0]:='Площадь малого основания:';
SG2.Cells[0,1]:='Площадь большего основания:';
SG2.Cells[0,2]:='Площадь боковой поверхности:';
SG2.Cells[0,3]:='Полная площадь:';
end;
end.
Unit2.pas
unit Unit2;
interface
uses Unit1,SysUtils, Dialogs;
type
TCone=class(TObject)
private
r1,r2,l,h:real;
{ Private declarations }
protected
{ Protected declarations }
public
function Get_Sb:real;
function Get_Sp:real;
function Get_So1:real;
function Get_So2:real;
procedure Resultshow;
constructor Set_init(a,b,c,d:Real);
{ Public declarations }
published
{ Published declarations }
end;
implementation
constructor TCone.Set_init(a,b,c,d:real);
begin
inherited Create;
if (a<0)or (b<0) or(c<0) or (d<0) then
begin
Showmessage('Ошибка!');
d:=0;
a:=0;
b:=0;
c:=0;
end
else
begin
r1:=a;
r2:=b;
l:=c;
h:=d;
Resultshow;
end;
end;
function TCone.Get_So2:real;
begin
Get_So2:=pi*r2*r2;
end;
function TCone.Get_So1:real;
begin
Get_So1:=pi*r1*r1;
end;
function TCone.Get_Sb:real;
begin
Get_Sb:=pi*l*(r2+r1);
end;
function TCone.Get_Sp:real;
begin
Get_Sp:=Get_So1+Get_So2+Get_Sb;
end;
procedure TCone.Resultshow;
begin
Form1.Label2.Caption:='Готово!';
Form1.SG2.Cells[1,0]:=floattostr(Get_So1);
Form1.SG2.Cells[1,1]:=floattostr(Get_So2);
Form1.SG2.Cells[1,2]:=floattostr(Get_Sb);
Form1.SG2.Cells[1,3]:=floattostr(Get_Sp);
end;
end.
Project2.dpr
program Project2;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas';
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Рис. 2 – Результат работы приложения
Вывод: изучил принципы создания класса, объектов, методов в инструментальной среде Delphi 7. Изучил основные свойства объектов среды программирования Delphi 7.