Хелпикс

Главная

Контакты

Случайная статья





Label4->Caption = ;



Label4->Caption = "";

}

 

Пример выполнения:

 


 

Задача №4 Сопротивление:

Блок-схема:

Текст программы:

// щелчок на кнопке Вычислить

void fastcallTForml::ButtonlClick(TObject *Sender)

{

floatrl,r2,r;

rl = StrToFloat(Editl->Text);

r2 = StrToFloat(Edit2->Text);

/* Переключатели RadioButtonl и RadioButton2

зависимые, поэтому о типе соединения можно

судить по состоянию одного из них */

±£ ( RadioButtonl->Checked )

{

// выбран переключатель "последовательно"

г = rl + г2;

ela*

/ / выбран переключатель "параллельно"

// при вычислении сопротивления возможно

// исключение EInvalidOp

t r y

{

г = ( r l * r2) / (rl + r 2 ) ;

}

catch( EInvalidOp &e)

{

ShowMessage("Необходимо задать величину"

"сопротивлений");

return;

Label4->Caption = FloatToStrF(r, ffGeneral, 6,2) + " Ом";

}

II щелчок на переключателе "последовательно"

void fastcall TForml::RadioButtonlClick(TObject *Sender)

{

Label4->Caption = "";

// щелчок на переключателе "параллельно"

void fastcall TForml::RadioButton2Click(TObject *Sender)

{

Label4->Caption = "";

}

Пример выполнения:

 


 

Задача № 5 Кафе:

Блок-Схема:


 

Текст программы:

floatsurnm; // сумма заказа

// конструктор формы

fastcallTForml::TForml(TComponent* Owner)

: TForm(Owner)

// сделать недоступным переключатель "соус"

CheckBox2->Enabled = false;

// щелчок на переключателе "Биг-Мак"

void fastcallTFoml: :CheckBoxlClick(TObject *Sender)

{

if( CheckBoxl->Checked )

{

/* переключатель был сброшен,

пользователь установил его */

summ += 54;

// сделать доступным переключатель "соус"

CheckBox2->Enabled = true;

}

else

{

/* переключатель был установлен,

пользователь сбросил его */

summ -= 54;

// сбросить и сделать недоступным переключатель "соус"

if(CheckBox2->Checked)

CheckBox2->Checked = false;

CheckBox2->Enabled = false;

// отобразить измененную сумму в поле

Labell->Caption = FloatToStrF(summ,ffCurrency,6,2);

// щелчок на переключателе "соус"

void faetcallTForml::CheckBox2Click(TObject *Sender)

if( CheckBox2->Checked)

summ +=10.5;

•la*

summ -= 10.5;

Labell->Caption = FloatToStrFtsumm,ffCurrency,6,2);

// щелчок на переключателе "картошка"

void faetcallTForml::CheckBox3Click(TObject *Sender)

if( CheckBox3->Checked)

summ += 18.5;

•la*

summ -= 18.5;

Labell->Caption = FloatToStrF(summ,ffCurrency,6,2);

// щелчок на переключателе "Кока-Кола"

void faetcallTForml::CheckBox4Click(TObject *Sender)

{

if( CheckBox4->Checked)

sum += 14;

summ -= 14;

Labell->Caption = FloatToStrF(summ,ffCurrency,6,2)

// щелчок на кнопке OK

void fastcallTForml::ButtonlClick(TObject *Sender)

{

if( (CheckBoxl->Checked)&& (CheckBox2->Checked)&&

(CheckBox3->Checked)&&(CheckBox4->Checked) )

/* пользователь заказам полный набор

предоставить скидку 5% */

summ = summ * 0.95;

ShowMessage("Вам предоставляется скидка 5%.\п"

"Сумма заказа: " + FloatToStrF(summ, ffCurrency, 6,2) +

" руб.");

}

else

if( (CheckBoxl->Checked)||

(CheckBox3->Checked)||

(CheckBox4->Checked))

ShowMessage("Сумма заказа: " +

FloatToStrF(summ,ffGeneral,6,2)+ " руб.");

elseShowMessage("Вы ничего не заказали");

}

Пример выполнения:

 


 

Задача № 6 Электроэнергия:

Блок-схема:

Текст программы:

// конструктор формы

fastcall TForml::TForml(TComponent* Owner)

: TForm(Owner)

{

/ * задать, что событие KeyPress

для компонентов Edit2 и Edit3

обрабатывает функция EditKeyPress */

Edit2->0nKeyPress = EditKeyPress;

Edit3->0nKeyPress = EditKeyPress;

/ * чтобы процедура обработки события KeyPress могла

определить, в каком поле пользователь нажал клавишу,

запишем в свойство Tag каждого компонента Edit

целую константу */

Editl->Tag = 1;

Edit2->Tag = 2;

26 Часть 1. Примеры и задачи

Edit3->Tag = 3;

// нажатие клавиши в поле редактирования

void fastcall TForml::EditKeyPress(TObjееt *Sender,

char &Key)

TEdit * Edit; // компонент Edit

Edit = (TEdit*)Sender;

/* теперь ed - это компонент Edit, в поле которого

пользователь нажал клавишу */

/* Реакция компонентов на нажатие всех клавиш,

за исключением <Enter> одинаковая. */

if ( Key == VK_RETURN) // нажате клавиша <Enter>

switch (Edit->Tag) {

case 1 : /* клавиша нажата в поле Editl

переместить курсор в поле Edit3 */

Edit2->SetFocus() ; break;

case 2 : /* клавиша нажата в поле Edit2

переместить курсор в поле Edit3 */

Edit3->SetFocus() ; break;

case 3 /* клавиша нажата в поле Edit3

сделать активной кнопку Вычислить */

Buttonl->SetFocusО ; break;

}

return;

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

(Key == VK_BACK))

// цифра или <>Backspace>

return;

if ((Key == ',') || (Key == '.'))

{

Key = DeciinalSeparator;

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

Key = 0;

return;

i f ( Key == VK_BACK )

r e t u r n ;

// остальные символы запрещены

Key = 0;

// щелчок на кнопке Вычислить

void fastcall TForml::ButtonlClick(TObject *Sender)

{

float prior, curr; // предыдущее и текущее показания

// счетчика

float tariff; // тариф - цена 1 кВт/час

float summ; // сумма к оплате

prior = StrToFloat(Editl->Text);

curr = StrToFloat(Edit2->Text);

tariff = StrToFloat(Edit3->Text);

// проверить исходные данные

if ( curr < prior)

MessageDlg("Текущее значение показания счетчика не"

" может быть меньше предыдущего.",

mtWarning, TMsgDlgButtons() « mbOK,0);

return;

}

summ = (curr - prior) * tariff;

Label4->Caption = "Сумма к оплате: " +

FloatToStrF(summ, ffCurrency, 6,2)

}

Пример выполнения:

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.