ПРОЕКТ ПРИЛОЖЕНИЯ№ 2. ЗАДАЧА ОБ ОБМЕНЕ ВАЛЮТЫ
Объекты: поля редактирования, переключатели и их свойства. Программирование ветвлений
Цель работы: Создать форму с названием «Обмен валюты» для моделирования соответствующих операций обменного пункта. Применить поля редактирования (Edit) и переключатели (ltadioButton, радиокнопка), а также кнопки для выполнения вычислений и выхода из программы ( на рис. 1).
Окно программы :
Код программы : | Комментарии к программе |
unit Unit1; | Заголовок модуля |
interface | Раздел декларации процедур и функций |
uses | Список использованных модулей |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; | |
type | Описание классов и типов объекта TFORM1 |
TForm1 = class(TForm) | |
RadioButton1: TRadioButton; | Компонента переключатель |
RadioButton2: TRadioButton; | Компонента переключатель |
Label1: TLabel; | Компонента метка |
Label2: TLabel; | Компонента метка |
Button1: TButton; | Компонента кнопка |
Button2: TButton; | Компонента кнопка |
Label4: TLabel; | Компонента метка |
Label5: TLabel; | Компонента метка |
Edit1: TEdit; | Поле ввода |
Edit3: TEdit; | Поле ввода |
Edit2: TEdit; | Поле ввода |
Edit4: TEdit; | Поле ввода |
Button3: TButton; | Компонента кнопка |
Button4: TButton; | Компонента кнопка |
procedure RadioButton2Click(Sender: TObject); | Заголовок процедуры-метода , которая выполняется при щелчке по компоненте переключатель RadioButton2 |
procedure Button2Click(Sender: TObject); | Заголовок процедуры – метода, которая выполняется при щелчке по кнопке Button2 |
procedure Button1Click(Sender: TObject); | Заголовок процедуры , которая выполняется при щелчке по кнопке Button1 |
procedure RadioButton1Click(Sender: TObject); | Заголовок процедуры-метода , которая выполняется при щелчке по компоненте переключатель RadioButton1 |
procedure Button3Click(Sender: TObject); | Заголовок процедуры , которая выполняется при щелчке по кнопке Button3 |
procedure Label4Click(Sender: TObject); | Заголовок процедуры , которая выполняется при щелчке по метке Label4 |
procedure Button4Click(Sender: TObject); | Заголовок процедуры , которая выполняется при щелчке по кнопке Button1 |
private | Раздел частные объявления |
{ Private declarations } | |
public | Раздел общедоступные объявления |
{ Public declarations } | |
end; | Конец описания типа Tform1 |
var | Описание глобальных переменных |
Form1: TForm1; | Основная форма |
kurs1, kurs2, summa : real; cod : integer; ed : string[9]; | Значение введенного курса 1-долара, курса2-рублей, и итоговая сумма Значение правильного преобразования строки в число, используется в процедурах Val (Edit3.Text, summa, cod); Текстовое значение вычисленной суммы SUMMA, используется при выводе Edit4.Text := ed; |
implementation | Раздел описаний процедур и функций |
uses Unit2; | Подключение второго модуля |
{$R *.dfm} | Добавление файла с описанием формы |
procedure TForm1.RadioButton2Click(Sender: TObject); | Заголовок процедуры |
begin | Начало процедуры |
Label4.Caption := 'р'; | В содержимое метки Label4 выводится символ 'р' |
Edit3.SetFocus; | Передается управление компоненте EDIT3 |
end; | Конец тела процедуры |
procedure TForm1.Button2Click(Sender: TObject); | Заголовок второй процедуры |
begin | Начало процедуры |
Close ; | Метод закрытие окна формы, приводит к завершению работы программы |
end; | Конец тела процедуры |
procedure TForm1.Button1Click(Sender: TObject); | Заголовок процедуры |
begin | Начало процедуры |
Val (Edit1.Text, kurs1, cod); | Процедура преобразование строкового типа данных Edit1.Text в числовой kurs1, признак успешного перевода- cod |
Val (Edit2.Text, kurs2, cod); | Процедура преобразование строкового типа данных Edit12.Text в числовой kurs1, признак успешного перевода- cod |
Val (Edit3.Text, summa, cod); | Процедура преобразование строкового типа данных Edit3.Text в числовой kurs1, признак успешного перевода- cod |
if RadioButton2.Checked = True then summa:= summa * kurs2 else summa := summa * kurs1; | Оператор условия, реализующий разветвляющийся алгоритм - альтернатива |
summa:=summa-summa/100; | Вычисляется сумма денег с вычетом 1% |
Str(summa:9:2, ed); Edit4.Text := ed; | Процедура преобразования числового значения Summa в текстовое Ed |
end; | Конец тела процедуры |
procedure TForm1.RadioButton1Click(Sender: TObject); | И так далее по всем командам модуля |
begin | |
Label4.Caption := 'п'; | |
Edit3.SetFocus; | |
end; | |
procedure TForm1.Button3Click(Sender: TObject); | |
begin | |
Edit1.Text:=' '; | |
Edit2.Text:=' '; | |
edit3.Text:=' '; | |
Edit4.Text:=' '; | |
end; | |
procedure TForm1.Label4Click(Sender: TObject); | |
begin | |
if RadioButton2.Checked=false then | |
begin | |
Label4.Caption:='п'; | |
RadioButton1.Checked:=False; | |
RadioButton2.Checked:=True; | |
end | |
else | |
begin | |
Label4.Caption:='р'; | |
RadioButton1.Checked:=True; | |
RadioButton2.Checked:=False; | |
end; | |
end; | |
procedure TForm1.Button4Click(Sender: TObject); | |
begin | |
Form1.hide; | |
Form2.Show; | |
end; | |
end. |
Самостоятельная работа.
Задача 2.1.Вставьте в созданную форму ещё одну кнопку для очистки полей денежных сумм. Выполните программу и убедитесь в правильности ее работы.
Подсказка. Для объектов Edit3, Edit4 в процедуре обработки события нажатия на кнопку очистки используйте команду присваивания их свойствам Text пустой строки (‘ ‘) .
Решение: Добавить на форму третью кнопку Button3, и написать текст процедуры по событию ONCLICK
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Text:=' ';
Edit2.Text:=' ';
edit3.Text:=' ';
Edit4.Text:=' ';
end;
Задача 2.2.Обеспечьте появление подсказки «Введите курс купли» и «Введите курс продажи» после перемещения указателя мыши к полям Editl и Edit2 соответственно (см. п. 24).
Решение:
В окне Object Inspector выбрать свойство Hint и вписать текст подсказки
И так далее по заданию ( не забудьте , если не знаете как выполнить задание оставьте свободное место после текста задания)
Приложение1.