МИНОБРНАУКИ РОССИИ
Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Южный федеральный университет»
Факультет |
РАДИОТЕХНИЧЕСКИЙ |
|
Кафедра |
|
МИКРОПРОЦЕССОРНЫХ СИСТЕМ |
Отчет по лабораторной работе №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.