Лабораторная работа 3

Проект «Фунты-килограммы»

Написать проект Фунты-килограммы, форма которой приведена на рис. 2, который позволяет пересчитать вес из фунтов в килограммы. Проект проектировать так, чтобы пользователь мог ввести в поля редактирования только правильные данные (числа) и кнопка «Пересчет» стала доступной только в том случае, если пользователь ввел исходные данные.

Компоненты: Label1 и Label2, Edit1, Button1 и Button2. Задайте свойства компонентов согласно рисунку. Затем Напишите обработчики событий согласно приведенных ниже.

 

Обработчик кода, который делает кнопку «Пересчет» недоступным до ввода данных в поле редактирования Edit1

void _fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)

{

Button1->Enabled = False;

}

Обработчик, который проверяет, вводится в поле Text  компонента Edit1 число или другой символ

void         _fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)

{

if ((Key >= '0') && (Key <= '9'))

 return;

if (Key == DecimalSeparator)

{

if ((Edit1->Text).Pos(DecimalSeparator) != 0)

Key = 0;                                     

return;

}

if (Key == VK_BACK)

 return;

if (Key == VK_RETURN)

{

Button1->SetFocus();

return;

}

Key = 0;                                     

}

 

Обработчик, который проверяет, введены ли данные в поле Text  компонента Edit1. Если да, то кнопка «Пересчет» становится доступной.

void _fastcall TForm1::Edit1Change(TObject *Sender)

{

if ( (Edit1->Text) .Length() == 0)

Button1->Enabled = False;

else

Button1->Enabled = True;

Label2->Caption = "";

}

Обработчик для кнопки «Пересчет»

void _fastcall TForm1::Button1Click(TObject *Sender)

{

double funt;

double kg; 

funt =  StrToFloat(Edit1->Text);

kg = funt * 0.4995;

Label2->Caption = FloatToStrF(funt,ffGeneral,5,2) +" ф. - это " +FloatToStrF(kg,ffGeneral,5,2) + " кг";

}

Задачи для самостоятельной работы

1. Скидка

Напишите программу вычисления стоимости покупки с учетом скидки. Скидка предоставляется, если сумма превышает 1000 руб., а также в выходные дни. Рекомендуемый вид формы приведен на рис. 1. В результате щелчка на кнопке Скидка в поле компонента Label должно появляться сообщение, информирующее о предоставлении скидки, и итоговая сумма с учетом скидки. Информацию о том, является ли день выходным, программа должна получать на основе анализа текущей даты

Рис. 1. Форма программы Скидка

2. Доход по вкладу

Напишите программу вычисления дохода по вкладу в банке. Доход вычисляется по формуле: Д = С * (СР / 360) * (СТ / 100), где: С - сумма вклада; СР - срок вклада (количество дней); СТ - процентная ставка (годовых). Рекомендуемый вид формы приведен на рис. 2.

Рис. 2. Форма программы Доход по вкладу