Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
calculator 2.doc
Скачиваний:
58
Добавлен:
05.03.2016
Размер:
402 Кб
Скачать
☆

Void Calculate(tEdit *Edit1, cCalc *Tc, char cd)

{

if (Tc->d=='e') Edit1->Text="Error!";

else

{

if (!Tc->end)

{

if (Tc->d==cd || Tc->d=='\0')

{

Tc->d=cd;

if (Tc->a1 && !Tc->b1 && !Tc->flag)

{

Edit1->Text=FloatToStr(Tc->Action(StrToFloat(Edit1->Text)));

Tc->flag=true;

}

else if (!Tc->a1 && !Tc->b1)

{

Edit1->Text=FloatToStr(Tc->Action(StrToFloat(Edit1->Text)));

Tc->flag=true;

}

}

else

{

if (!Tc->flag)

{

Edit1->Text=FloatToStr(Tc->Action(StrToFloat(Edit1->Text)));

Tc->a1=Tc->flag=true;

Tc->b1=false;

Tc->a=StrToFloat(Edit1->Text);

}

Tc->d=cd;

}

}

else if (!Tc->flag)

{

Tc->d=cd;

Tc->b1=Tc->end=false;

Tc->a1=Tc->flag=true;

Tc->a=StrToFloat(Edit1->Text);

}

}

}

Void Numbers(tEdit *Edit1, cCalc *Tc, char num)

{

if (Tc->d=='e') Edit1->Text="Error!";

else

{

if (Tc->flag || (Tc->point==false && Edit1->Text=="0,"))

{

Edit1->Clear();

Tc->flag=false;

Tc->point=false;

}

Edit1->Text=Edit1->Text+num;

}

}

TForm1 *Form1;

cCalc *Tc= new cCalc;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//============================================================

//======================' + '====================================

void __fastcall TForm1::Button13Click(TObject *Sender)

{

Calculate(Edit1, Tc,'+');

}

//======================' - '====================================

void __fastcall TForm1::Button14Click(TObject *Sender)

{

Calculate(Edit1, Tc,'-');

}

//======================' * '====================================

void __fastcall TForm1::Button15Click(TObject *Sender)

{

Calculate(Edit1, Tc,'*');

}

//======================' / '====================================

void __fastcall TForm1::Button16Click(TObject *Sender)

{

Calculate(Edit1, Tc,'/');

}

//======================' Mod '==================================

void __fastcall TForm1::Button25Click(TObject *Sender)

{

Calculate(Edit1, Tc,'%');

}

//======================' Div '==================================

void __fastcall TForm1::Button26Click(TObject *Sender)

{

Calculate(Edit1, Tc,'d');

}

//======================' x^y '==================================

void __fastcall TForm1::Button29Click(TObject *Sender)

{

Calculate(Edit1, Tc,'^');

}

//===============================================================

//==========================================================

//========================' 1 '==================================

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Numbers(Edit1, Tc, '1');

}

//========================' 2 '==================================

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Numbers(Edit1, Tc, '2');

}

//========================' 3 '==================================

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Numbers(Edit1, Tc, '3');

}

//========================' 4 '==================================

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Numbers(Edit1, Tc, '4');

}

//========================' 5 '==================================

void __fastcall TForm1::Button6Click(TObject *Sender)

{

Numbers(Edit1, Tc, '5');

}

//========================' 6 '==================================

void __fastcall TForm1::Button7Click(TObject *Sender)

{

Numbers(Edit1, Tc, '6');

}

//========================' 7 '==================================

void __fastcall TForm1::Button8Click(TObject *Sender)

{

Numbers(Edit1, Tc, '7');

}

//========================' 8 '==================================

void __fastcall TForm1::Button9Click(TObject *Sender)

{

Numbers(Edit1, Tc, '8');

}

//========================' 9 '==================================

void __fastcall TForm1::Button10Click(TObject *Sender)

{

Numbers(Edit1, Tc, '9');

}

//========================' 0 '==================================

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if (Tc->point) Numbers(Edit1, Tc, '0');

else if (StrToFloat(Edit1->Text)>0) Numbers(Edit1, Tc, '0');

}

//===============================================================

//========================BeakSpace==============================

void __fastcall TForm1::Button18Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

else

{

if (Edit1->Text.Length()==1 ||

(Edit1->Text.Length()==2 && Edit1->Text.operator [](1)=='-'))

{

Edit1->Text="0,";

Tc->point=false;

}

else

if (Edit1->Text.Length()==4 && Edit1->Text.operator [](1)=='-' &&

Edit1->Text.operator [](2)=='0' && Edit1->Text.operator [](3)==',')

{

Edit1->Text="0,";

Tc->point=false;

}

else

if (Edit1->Text.operator [](Edit1->Text.Length())==',' &&

Edit1->Text!="0,")

{

Tc->point=false;

Edit1->Text=Edit1->Text.Delete(Edit1->Text.Length(),1);

}

else

if (Edit1->Text!="0,") Edit1->Text=Edit1->Text.Delete(Edit1->Text.Length(),1);

}

}

//===============================================================

//========================' +/- '================================

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]