//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "calculator.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
typedef struct //定义构造函数,将表示复数、
{
float real; //复数的实部
float imag; //复数的虚部
} cpxNum;
cpxNum Number1, Number2;
String TheReal="0", TheImag="0";
int Oper=0; //定义运算符
int JudgeReal=1; //判断当前输入的是实部还是虚部
int JudgeNum=0; //判断当前输入的是Number1还是Number2
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+1;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+1;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+2;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+2;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+3;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+3;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+4;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+4;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+5;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+5;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+6;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+6;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+7;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+7;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+8;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+8;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+9;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+9;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button0Click(TObject *Sender)
{
if(Oper==5)
{
TheReal="";
TheImag="0";
Oper=0;
Change->Enabled=true;
}
ButtonAC->Enabled=true;
if(JudgeReal)
{
if(TheReal==0) TheReal="";
TheReal=TheReal+0;
}
else
{
if(TheImag==0) TheImag="";
TheImag=TheImag+0;
}
Edit1->Text=TheReal+" + "+TheImag+'i';
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ChangeClick(TObject *Sender)
{
JudgeReal=0;
Change->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PlusClick(TObject *Sender)
{
Number1.real=StrToFloat(TheReal);
Number1.imag=StrToFloat(TheImag);
TheReal="0";
TheImag="0";
Edit1->Text=TheReal+" + "+TheImag+'i';
JudgeNum=1;
JudgeReal=1;
Change->Enabled=true;
Plus->Enabled=false;
Minus->Enabled=false;
Multiply->Enabled=false;
Divide->Enabled=false;
Oper=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MinusClick(TObject *Sender)
{
Number1.real=StrToFloat(TheReal);
Number1.imag=StrToFloat(TheImag);
TheReal="0";
TheImag="0";
Edit1->Text=TheReal+" + "+TheImag+'i';
JudgeNum=1;
JudgeReal=1;
Change->Enabled=true;
Plus->Enabled=false;
Minus->Enabled=false;
Multiply->Enabled=false;
Divide->Enabled=false;
Oper=2;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MultiplyClick(TObject *Sender)
{
Number1.real=StrToFloat(TheReal);
Number1.imag=StrToFloat(TheImag);
TheReal="0";
TheImag="0";
Edit1->Text=TheReal+" + "+TheImag+'i';
JudgeNum=1;
JudgeReal=1;
Change->Enabled=true;
Plus->Enabled=false;
Minus->Enabled=false;
Multiply->Enabled=false;
Divide->Enabled=false;
Oper=3;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DivideClick(TObject *Sender)
{
Number1.real=StrToFloat(TheReal);
Number1.imag=StrToFloat(TheImag);
TheReal="0";
TheImag="0";