Курсовая работа: Объектно-ориентированная разработка программ
2. Практическая часть: Разработать форму и интерфейс приложений, реализовать
алгоритмы решения задач на языке Delphi
2.1
Программа «Треугольники» определяет, может ли быть построен прямоугольный
треугольник по заданным длинам сторон а,b,с и выводит соответствующее
сообщение
2.2. В
заданных массивах А и В поменять местами максимальные элементы. Вывести на
экран преобразованные массивы.
2.3. Разместить на форме объект “Shape”( эллипс) и кнопку “Button” с названием «Цвет формы». При
запуске (выполнении) программы при нажатии на кнопку выводится стандартное
диалоговое окно выбора цвета и цвет формы изменяется соответственно.
Для решения этой задачи,
мы разработаем форму и интерфейс приложений на языке Delphi. Разработаем форму, которая будет основным меню для
решения поставленных задач. Вызова форм colorshape, parray и тugol,
которые будут реализовывать задачи. Программа построенна на модальных окнах.
Анализ технического
задания и постановка задачи проектирования.
Так, согласно заданию,
программа должна быть реализована в среде Delphi и должна выполнять следующие функции:
- вывод на экран информации о задании
и назначении программы;
- ввод пользователем значений, определяющих параметры;
-
проверка
полученного от пользователя значения и вывод результатов работы программы;
Составим следующий
алгоритм:
1. По запуску программы вывести диалоговое
окно с выбором программ которые нужно выполнить.
2. Программа треугольник при запуске
запрашивает у пользователя значение сторон и выводит сообщение о возможности
построения прямоугольного треугольника.
3. В заданных массивах А и В поменять
местами максимальные элементы. Вывести на экран преобразованные массивы.
4. Программа цвет формы выводит
пользователю диалоговое окно, меняет цвет формы и фигуры при нажатии кнопку
соответственно.
Наиболее важными свойствами формы (всего их 38) являются:
Caption – заголовок, указывающий
наименование формы;
Color – цвет фона формы;
Height – высота окна формы в пикселях;
Left – смещение по горизонтали в пикселях
левого верхне
Top – смещение по вертикали в пикселях
левого верхнего
Width – ширина окна формы в пикселях.
BorderStyle - тип рамки;
Font - шрифт и его атрибуты;
Icon - пиктограмма для изображения
свернутой формы;
Visible - задает видимую или невидимую
форму;
Для создания интерфейса
можно использовать базовые компоненты к ним можно отнести:
Label — поле вывода текста;
Edit — поле ввода/редактирования текста;
Button — командная кнопка;
GroupBox – рамка группы
CheckBox — «флажок», независимая кнопка
выбора;
RadioGroup – рамка группы переключателей
RadioButton – радиокнопка , «переключатель»,
ListВox — список выбора;
Combo Box— комбинированный список выбора.
Для построения данного
приложения, применялись следующие свойства формы из всех возможных:
Caption заголовок, указывающий наименование формы;
Color цвет фона формы;
Height высота окна формы в пикселях;
Left смещение по горизонтали в пикселях левого верхне
Top смещение по вертикали в пикселях левого верхнего
Width ширина окна формы в пикселях.
BorderStyle - тип рамки;
Font - шрифт и его атрибуты;
Icon - пиктограмма для изображения свернутой формы;
Visible - задает видимую или невидимую форму;
Position - задает расположение формы при выполнении приложения
Событий, которые могут
произойти с каким-либо элементом управления не так уж и много. Для кнопки,
например, есть два основных события: 1) – одинарный щелчок мышью на ней (click), 2) – двойной щелчок мышью на ней (double click). Программист, если необходимо реакция на нажатие
кнопки (а иначе зачем она нужна?), должен написать процедуру-обработчик
сообщения (Event handler), вызывающую определенные ответные действия.
Визуальный Компонент TLabel представляет собой статический текст
и применяется для идентификации других объектов приложения. Он располагается
рядом с полями редактирования, флажками, переключателями и помогает
пользователю сориентироваться в их назначении. Обычно компонент TLabel события не обрабатывает.
Визуальный Компонент TEdit позволяет пользователю ввести с
клавиатуры строку символов, или вывести в их поле редактирования. При
вводе-выводе данных изменяется значение свойства Text компонента типа TEdit. Заметим, что введенный текст будет типа string, и выводимый текст должен быть типа string. Для преобразования строки символов
в число и обратно существуют специальные функции, например, некоторые из них:
1) StrToInt(Text_String)
– преобразует строку Text_String в целое число (конечно, если она
состоит из символов, которые соответствуют цифрам, иначе, преобразование
бессмысленно);
2) IntToStr(Number_Integer)
– преобразует целое число Number_Integer в строку эквивалентных символов;
·
Листинг программы
содержится в приложении А.
·
Результат
тестового запуска приведен в приложении В.
·
Программа
разработана с использованием языка 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); //
запрещаем отображать символ
Страницы: 1, 2, 3, 4 |