windows窗体应用问题
我想做一个计算器,使用VS2010 C++的windows窗体应用来做,我先在Form1.h里定义了两个个全局变量:static double tmp=0; static int state=0;//1为+,2为-,3为*,4为/tmp用于暂存得数,state用于指明上一次运算的类型,之后我又在public ref class Form1里面写了:
程序代码:
private: void judge() { double t; t=Convert::ToDouble(this->text->Text); switch(state) { case 0: { tmp=t; } case 1: { tmp+=t; } case 2: { tmp-=t; } case 3: { tmp*=t; } case 4: { tmp/=t; } } }数字键:(以1为例)
private: System::Void b1_Click(System::Object^ sender, System::EventArgs^ e) { this->text->Text+="1"; }加号:
程序代码:
private: System::Void bplu_Click(System::Object^ sender, System::EventArgs^ e) { judge(); state=1; this->text->Text=""; }等号:
程序代码:
private: System::Void bequ_Click(System::Object^ sender, System::EventArgs^ e) { judge(); state=0; this->text->Text=Convert::ToString(tmp); tmp=0; }在我运行程序的时候,我先点“1”的按钮(b1),文本框(text)里显示“1”,然后我点“+”(bplu),文本框内清空,之后我再点“2”的按钮(b2),文本框(text)里显示“2”,我再按“=”按钮(bequ),文本框内就显示“1”。这就不对了。
tmp只能记录第一次输入的数(第一次按加减乘除之前的那个数),judge()里的计算似乎只有tmp=t;执行了,请问这是为什么?