Объектно-ориентированная разработка программ
· Листинг программы содержится в приложении А.
· Результат тестового запуска приведен в приложении В.
· Программа разработана с использованием языка Delphi.
Приложение А
Листинг программ:
unit tmain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm1 }
>TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
uses Tugol, parray, colorshape;
{ TForm1 }
procedure TForm1.Button1Click(Sender: Tobject);
begin
Form1.Hide; // закрыть объект 1
Form2.ShowModal; // открыть объект 2
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Hide;
Form3.ShowModal; // открыть объект 3
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Hide;
Form4.ShowModal; // открыть объект 4
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Form1.Close; // закрыть объект 1
end;
initialization
{$I tmain.lrs}
end.
unit Tugol;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm2 }
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: char);
procedure Edit2KeyPress(Sender: TObject; var Key: char);
procedure Edit3KeyPress(Sender: TObject; var Key: char);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
uses tmain;
{ TForm2 }
procedure TForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Form1.Show;
end;
procedure TForm2.Button1Click(Sender: TObject);
var a,b,c,max,min,srd:integer; //переменные для сторон прямоугольника и вычислений
begin
// преобразование строковых значений в числовые
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
c:=StrToInt(Edit3.Text);
//Находим максимальную по длине стророну
max:=a;
if b>max then max:=b;
if c>max then max:=c;
// Находим минимальную по длине сторону
min:=a;
if b<min then min:=b;
if c<min then min:=c;
// Находим среднию по длине сторону
srd:=a+b+c-min-max;
if (sqr(max)=sqr(srd)+sqr(min)) then //Проверяем теорему Пифагора a2 + b2 = c2
Showmessage('Это прямоугольный треугольник!'
+' Стороны в порядке возрастания их длины: '
+IntToStr(min)+' '
+IntToStr(srd)+' '
+IntToStr(max))
else ShowMessage('Это не может быть прямоугольный треугольник!');
end;
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: char);
begin
case key of
'0' '9': ; //можно вводить только цифры
',': ; //или дробный числа
#8 : ; // клавиша Back Space
#13 : Edit2.SetFocus ; // клавиша Enter, и переход на другое окно ввода
// Остальные символы - запрещены !
else key := Chr(0); // запрещаем отображать символ
end;
end;
procedure TForm2.Edit2KeyPress(Sender: TObject; var Key: char);
begin
case key of
'0' '9': ; //можно вводить только цифры
',': ; //или дробный числа
#8 : ; // клавиша Back Space
#13 : Edit3.SetFocus ; // клавиша Enter, и переход на другое окно ввода
// Остальные символы - запрещены !
else key := Chr(0); // запрещаем отображать символ
end;
end;
procedure TForm2.Edit3KeyPress(Sender: TObject; var Key: char);
begin
case key of
'0' '9': ; //можно вводить только цифры
',': ; //или дробный числа
#8 : ; // клавиша Back Space
#13 : Button1.SetFocus ; // клавиша Enter, и переход на кнопку вычисления
// Остальные символы - запрещены !
else key := Chr(0); // запрещаем отображать символ
end;
end;
initialization
{$I tugol.lrs}
end.
unit parray;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
Grids, StdCtrls;
type
{ TForm3 }
TForm3 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
const
size = 6;
var
Form3: TForm3;
a:array [1 size] of integer;
b:array [1 size] of integer;
max_a,max_b,buf:integer;
i:integer;
implementation
uses tmain;
{ TForm3 }
procedure TForm3.FormShow(Sender: TObject);
begin
with StringGrid1 do
for i:=1 to size do
begin
Cells[i-1,0]:='';
Cells[i-1,1]:='';
end;
with StringGrid2 do
for i:=1 to size do
begin
Cells[i-1,0]:='';
Cells[i-1,1]:='';
end;
for i := 1 to size do
begin
a[i] := 1 + Random(99); // заполняем массив случайными числами
b[i] := 1 + Random(99); // заполняем массив случайными числами
end;
Label7.Visible:=False;
Label8.Visible:=False;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
with StringGrid1 do
for i:=1 to size do
begin
Cells[i-1,0]:=IntToStr(a[i]);
Cells[i-1,1]:=IntToStr(b[i]);
end;
max_a :=1;
max_b :=1;
for i:=2 to size do
begin
if a[i] > a[max_a] then max_a := i;
if b[i] > b[max_b] then max_b := i;
end;
Label7.Visible:=True;
Label7.Caption:='Максимальный элемент массива А :'+IntToStr(a[max_a])
+#13+'Номер элемента в массиве А :'+ IntToStr(max_a)
+#13+'Максимальный элемент массива В :'+IntToStr(b[max_b])
+#13+'Номер элемента в массиве В :'+ IntToStr(max_b);
buf:= a[max_a];
a[max_a]:= b[max_b];
b[max_b]:= buf;
with StringGrid2 do
for i:=1 to size do
begin
Cells[i-1,0]:=IntToStr(a[i]);
Cells[i-1,1]:=IntToStr(b[i]);
end;
max_a :=1;
max_b :=1;
for i:=2 to size do
begin
if a[i] > a[max_a] then max_a := i;
if b[i] > b[max_b] then max_b := i;
end;
Label8.Visible:=True;
Label8.Caption:='Максимальный элемент массива А :'+IntToStr(a[max_a])
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
- Разработка графического редактора
- Расчет и исследование динамических показателей и показателей качества двухконтурных систем автоматического управления
- Классификация и характеристика видов, методов и средств защиты информации
- Обработка ошибок в коде программ РНР
- Разработка программы по обработке числовой информации
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности