问题描述
stringnum_First=null;//第一个数stringnum_Second=null;//第二个数stringnum_Result=null;//结果stringnum_Circle=null;//循环运算stringsymbol_Variable="0";//记录符号boolmode_Operation=true;//判断运算是否结束boolmode_Error=false;//判断是否出现运算错误boolmode_New=true;//判断是否需要输入新的数字privatevoidmethod_But_Num(stringnum)//数字键的方法{if(textBox1.Text=="0"||mode_Operation==true||mode_Error==true||mode_New==true){textBox1.Text="";num_Circle=null;}textBox1.Text+=num;mode_Operation=false;mode_Error=false;mode_New=false;}privatevoidmethod_But_Symbol(stringM)//运算符按键方法,为按键和方法提供一个接口{if(mode_Error==true){textBox1.Text="0";mode_Error=false;}elseif(num_First==null){num_First=textBox1.Text;mode_New=true;}else{if(num_Second==null&&mode_New==true){}else{method_Operation();mode_Operation=false;mode_New=true;}}symbol_Variable=M;}privatevoidmethod_Operation()//运算方法{switch(symbol_Variable){case"+":num_Second=textBox1.Text;try{num_Result=Convert.ToString(Convert.ToDecimal(num_First)+Convert.ToDecimal(num_Second));}catch(Exception){textBox1.Text="太大啦!";mode_Error=true;method_AllClean();return;}num_First=num_Result;num_Second=null;textBox1.Text=num_Result;break;case"-":num_Second=textBox1.Text;num_Result=Convert.ToString(Convert.ToDecimal(num_First)-Convert.ToDecimal(num_Second));num_First=num_Result;num_Second=null;textBox1.Text=num_Result;break;case"*":num_Second=textBox1.Text;try{num_Result=Convert.ToString(Convert.ToDecimal(num_First)*Convert.ToDecimal(num_Second));}catch(Exception){textBox1.Text="太大啦!";mode_Error=true;method_AllClean();return;}num_First=num_Result;num_Second=null;textBox1.Text=num_Result;break;case"/":num_Second=textBox1.Text;if(num_Second=="0"){textBox1.Text="除数不能为零";method_AllClean();return;}else{num_Result=Convert.ToString(Convert.ToDecimal(num_First)/Convert.ToDecimal(num_Second));num_First=num_Result;num_Second=null;textBox1.Text=num_Result;}break;default:break;}}privatevoidmethod_AllClean()//全部清除{num_First=null;num_Second=null;num_Result=null;num_Circle=null;symbol_Variable="";mode_Operation=true;mode_Error=false;mode_New=true;}privatevoidbutton1_Click(objectsender,EventArgse)//按数字键事件{method_But_Num(((Button)sender).Text);}privatevoidbutton10_Click(objectsender,EventArgse)//小数点事件{if(mode_Operation==true||mode_Error==true||mode_New==true){textBox1.Text="0.";}else{if(textBox1.Text.IndexOf(".")>0){}else{textBox1.Text+=".";}}mode_Operation=false;mode_New=false;}privatevoidbutton12_Click(objectsender,EventArgse)//正负号事件{if(mode_Error==true){/*num_First=null;num_Second=null;num_Result=null;symbol_Variable="";mode_Operation=true;mode_Error=false;mode_New=true;textBox1.Text="0";return;*/method_AllClean();textBox1.Text="0";}else{decimala=Convert.ToDecimal(textBox1.Text);a=a*-1;textBox1.Text=Convert.ToString(a);}}privatevoidbutton13_Click(objectsender,EventArgse)//加减乘除按键事件{method_But_Symbol(((Button)sender).Text);}privatevoidbutton27_Click(objectsender,EventArgse)//归零{method_AllClean();textBox1.Text="0";}privatevoidbutton25_Click(objectsender,EventArgse)//c事件{textBox1.Text="0";}privatevoidbutton26_Click(objectsender,EventArgse)//等于号事件{if(mode_Operation==true){switch(symbol_Variable){case"+":try{textBox1.Text=Convert.ToString(Convert.ToDecimal(textBox1.Text)+Convert.ToDecimal(num_Circle));}catch{textBox1.Text="太大啦!";mode_Error=true;method_AllClean();return;}break;case"-":textBox1.Text=Convert.ToString(Convert.ToDecimal(textBox1.Text)-Convert.ToDecimal(num_Circle));break;case"*":try{textBox1.Text=Convert.ToString(Convert.ToDecimal(textBox1.Text)*Convert.ToDecimal(num_Circle));}catch{textBox1.Text="太大啦!";mode_Error=true;method_AllClean();return;}break;case"/":textBox1.Text=Convert.ToString(Convert.ToDecimal(textBox1.Text)/Convert.ToDecimal(num_Circle));break;default:break;}}else{num_Circle=textBox1.Text;//作用?method_Operation();}num_First=null;num_Second=null;num_Result=null;mode_Operation=true;mode_Error=false;}privatevoidbutton17_Click(objectsender,EventArgse)//退格事件{if(mode_Operation==true){textBox1.Text="0";}elseif(textBox1.TextLength>1){textBox1.Text=textBox1.Text.Remove(textBox1.Text.Length-1);}else{textBox1.Text="0";}}privatevoidbutton20_Click(objectsender,EventArgse)//根号事件{if(mode_Error==true){textBox1.Text="0";}else{if(Convert.ToDecimal(textBox1.Text)<0){textBox1.Text="被开方数不能为负";method_AllClean();return;}else{textBox1.Text=Convert.ToString(System.Math.Sqrt(Convert.ToDouble(textBox1.Text)));}mode_New=true;}}privatevoidbutton18_Click(objectsender,EventArgse)//百分号{if(num_First==null){textBox1.Text="0";}else{textBox1.Text=Convert.ToString(Convert.ToDecimal(num_First)*Convert.ToDecimal(textBox1.Text)*(decimal)0.01);}mode_New=true;}}}
解决方案
解决方案二:
解决方案三:
贴了一大堆代码,问题在哪呢,你不是来分享代码的吧?
解决方案四:
想实现连续加,在点加号之后判断一下,如果满足条件,执行一下等号的方法
解决方案五:
制作加法计算器classProgram{staticvoidMain(string[]args){System.Console.Title="制作简单计算器";//设置控制台标题System.Console.Write("输入第一个数字:");//提示用户输入第一个数值doubled=double.Parse(System.Console.ReadLine());//得到第一个数值System.Console.Write("输入第二个数字:");//提示用户输入第二个数值doubled2=double.Parse(System.Console.ReadLine());//得到第二个数值System.Console.Write("输入第三个数字:");//提示用户输入第三个数值doubled3=double.Parse(System.Console.ReadLine());//得到第三个数值System.Console.Clear();//清空控制台内所有字符System.Console.WriteLine("最后计算的结果:{0}+{1}+{2}={3}",d,d2,d3,d+d2+d3);//输出计算结果System.Console.ReadLine();//等待回车继续}}
解决方案六:
一堆代码。但是又不说明是什么问题,也不直接贴出问题所涉及的代码。。。。。
解决方案七:
发表于:2013-10-2917:31:40怎么现在被拿出来回复?
解决方案八:
引用6楼arpaul87的回复:
发表于:2013-10-2917:31:40怎么现在被拿出来回复?
晕死,1楼挖坟啊