создать приложение калькулятор
создать приложение калькулятор, использовать компонент TMainMenu
для создания верхнего меню, использовать форму AboutBox
для создания идентификатора приложения. Применить округление чисел.
Текст файлов .cpp:
//------------------- kalc.cpp ----------------------------
#include
#include
#pragma hdrstop
#include "kalk.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "kalk_about.h"
TForm1 *Form1;
double X,Y; // Регистры калькулятора
int vtor=0; /* Признак начала ввода второго числа. Принимает значение истина,
если необходимо начать ввод второго числа, ложь - в всех остальных случаях */
int toch=0; /* Признак десятичной точки, если число на индикаторе содержит
десятичную точку, то признак принимает значение истина и ложь, если число
не содержит точки */
int oper=0; // Номер выбранной операции
char s1[18]; // Будет использована для преобразования числа в строку символов
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void vivod()
{
Y = X;
Y = ceil(1000*Y)/1000;
gcvt(Y,15,s1);
Form1->Edit1->Text=s1;
}
//------------------------------
void __fastcall TForm1::btn1Click(TObject *Sender)
{
// Если на индикаторе 0 или окончен набор первого числа, то замещаем надпись на
// индикаторе
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text=btn1->Caption;
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+btn1->Caption;
// иначе дописываем цифру в конец числа
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn2Click(TObject *Sender)
{
// Если на индикаторе 0 или окончен набор первого числа, то замещаем надпись на
// индикаторе
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text= "2"; //btn2->Caption;
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+"2"; //btn2->Caption;
// иначе дописываем цифру в конец числа
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn3Click(TObject *Sender)
{
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text= "3";
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+"3";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn4Click(TObject *Sender)
{
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text= "4";
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+"4";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn5Click(TObject *Sender)
{
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text= "5";
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+"5";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn6Click(TObject *Sender)
{
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text= "6";
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+"6";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn7Click(TObject *Sender)
{
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text= "7";
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+"7";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn8Click(TObject *Sender)
{
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text= "8";
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+"8";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn9Click(TObject *Sender)
{
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text= "9";
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+"9";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btn0Click(TObject *Sender)
{
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text= "0";
vtor=0;
toch=0;
}
else
Edit1->Text=Edit1->Text+"0";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnTochClick(TObject *Sender)
{
if ((Edit1->Text=="0")||( vtor==1 ))
{
Edit1->Text="0.";
vtor=0;
toch=1;
}
else
if (toch==0)
{
Edit1->Text=Edit1->Text+ "."; //Button_toch->Caption;
toch=1;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnPlusClick(TObject *Sender)
{
String s; // Строка будет использована для преобразования строки в число
s=Edit1->Text;
vtor=1;
X=atof(s.c_str()); // Преобразование строки к вещественному числу
Y=X;
oper=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnMinusClick(TObject *Sender)
{
String s; // Строка будет использована для преобразования строки в число
s=Edit1->Text;
vtor=1;
X=atof(s.c_str()); // Преобразование строки к вещественному числу
Y=X;
oper=2;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnRavnoClick(TObject *Sender)
{
String s; // Будет использована для преобразования строки в число символов
s=Edit1->Text;
X=atof(s.c_str());
if (oper==1)
{ X=X+Y; }
if (oper==2)
{ X=Y-X; }
if (oper==3)
{ X=Y*X; }
if (oper==4)
{
if (X==0)
Edit1->Text="Деление на ноль";
else
X = Y/X;
}
vivod();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnMnojClick(TObject *Sender)
{
String s; // Строка будет использована для преобразования строки в число
s=Edit1->Text;
vtor=1;
X=atof(s.c_str()); // Преобразование строки к вещественному числу
Y=X;
oper=3;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnClearClick(TObject *Sender)
{
Edit1->Text= "0";
vtor=0;
toch=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
AboutBox->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnDelClick(TObject *Sender)
{
String s; // Строка будет использована для преобразования строки в число
s=Edit1->Text;
vtor=1;
X=atof(s.c_str()); // Преобразование строки к вещественному числу
Y=X;
oper=4;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnThClick(TObject *Sender)
{
String s; // Строка будет использована для преобразования строки в число
char s1[18];// Будет использована для преобразования числа в строку символов
double buf1,buf2;
s=Edit1->Text;
// vtor=1;
X=atof(s.c_str()); // Преобразование строки к вещественному числу
Y=X;
buf1 = exp(Y); buf2 = exp(-Y);
X = ( buf1 - buf2)/(buf1 + buf2);
// округляю до 3 цифр после запятой
vivod();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnCthClick(TObject *Sender)
{
String s; // Строка будет использована для преобразования строки в число
char s1[18];// Будет использована для преобразования числа в строку символов
double buf1,buf2;
s=Edit1->Text;
// vtor=1;
X=atof(s.c_str()); // Преобразование строки к вещественному числу
Y=X;
buf1 = exp(Y); buf2 = exp(-Y);
X = ( buf1 + buf2)/(buf1 - buf2);
vivod();
}
//---------------------------------------------------------------------------
//------------- kalk_about.cpp --------------------------------
#include
#pragma hdrstop
#include "kalk_about.h"
//---------------------------------------------------------------------
#pragma resource "*.dfm"
TAboutBox *AboutBox;
//---------------------------------------------------------------------
__fastcall TAboutBox::TAboutBox(TComponent* AOwner)
: TForm(AOwner)
{
}
//---------------------------------------------------------------------
void __fastcall TAboutBox::OKButtonClick(TObject *Sender)
{
AboutBox->Visible = false;
}
//---------------------------------------------------------------------------
Упакованные файлы проекта
|