关于计算器连加中的一个问题

问题描述

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楼挖坟啊

时间: 2024-09-20 19:44:15

关于计算器连加中的一个问题的相关文章

hibernate-Oracle数据库中新增一个字段,Hibernate中映射怎样加?

问题描述 Oracle数据库中新增一个字段,Hibernate中映射怎样加? 问题:我在oracle数据库中新增一个字段,那么在Hibernate映射中,需要手动加进去吗?在中. 谢谢!! 解决方案 类似这样,第一个name对应实体中,第二个name对应数据库 解决方案二:

struts2 0-JSP中如何遍历一个字符串数组并取出字符串加在另一个标签中

问题描述 JSP中如何遍历一个字符串数组并取出字符串加在另一个标签中 删除/s:a /s:iterator 解决方案 /c:set 我这里只去取了第一个.不过道理是一样的. 解决方案二: 这个文本编辑器把我的代码给编辑了 <s::set var="img" value="${fn:split(items.images, ',')}"></s:set> <a href="minisetweb/productinfo?id=${i

2012 ++ 32-VS无法加载项目,未能正确加载解决方案中的一个或多个项目,有关详细信息,请参见“输出”窗口

问题描述 VS无法加载项目,未能正确加载解决方案中的一个或多个项目,有关详细信息,请参见"输出"窗口 输出窗口显示:无法加载项目文件 我的工程在自己电脑里能打开,要拿到其他电脑运行不能加载,项目加载失败.同样是VS2012,求解决办法. 解决方案 如果不能保证用户电脑上安装相同版本cuda,那么试试在引用的dll属性里面复制到本地项选TRUE,这样在编译的时候,相应的dll文件会输出到程序文件夹,在运行的时候,后先搜索这个dll调用. 解决方案二: 检查一下你的项目是否引用了等三方类库

extjs报错-extjs中create一个window,里面一个panel加html然后加入buttons就报错了。

问题描述 extjs中create一个window,里面一个panel加html然后加入buttons就报错了. extjs中create一个window,里面一个panel加html然后加入buttons就报错了.代码如: createMapWindows: function() { this.mapWin = Ext.create('Ext.window.Window', { title: '点击获取地理位置', height: 550, width: 700, layout: 'auto'

java-在Android中写一个浏览器,加载一个登录页面如何获取用户名和密码框

问题描述 在Android中写一个浏览器,加载一个登录页面如何获取用户名和密码框 在Android中写一个浏览器,记住密码功能怎么写?大神,请指教. 解决方案 webview加载你的登录页面,登录完了后取cookie或其他认证信息(这个和你登录的网站是如何设计的有关) 解决方案二: 用webview 啊 解决方案三: 用sharedpreference来保存密码或者是账号 解决方案四: 这两个输入框是浏览器的还是网页的?

请问怎么在程序中以对话框的形式加载另一个exe程序

问题描述 请问怎么在程序中以对话框的形式加载另一个exe程序 请问怎么在程序中以对话框的形式加载另一个exe程序,同时怎么把这个程序中的数据发送到那个程序里,谢谢 解决方案 用shellexecute载入你的程序,用setparent设置程序的父窗体为你的窗体. 解决方案二: 用这个java为例子吧 首先你要做这个swing界面的对话框 (不会可以看看对话框打开的方法 swing ) 第二部你然后通过对话框去选择你的exe程序 这个时候把这个exe当文件看待 第三步是重点了: 如何执行程序 Ru

vb6.0-VB6.0中实现计算器连加的问题

问题描述 VB6.0中实现计算器连加的问题 这是等号部分..其中 m3,m4的初值都设置为0 ,现在问题是 比如1+2,连续两次等于,结果是3,4,5,6而不是3,5,7..不知道问题出在了哪里..想请教下各位..这学期刚学 m1是进行计算的第一个数,m2是第二个数 Private Sub Command6_Click() m2 = Val(Text1.Text) '等号取数2 If m3 = m1 Then m1 = Val(Text1.Text) m2 = m4 End If m3 = m1

在android中使用webview加载完一个网页后,如何知道一共加载了多少资源?

问题描述 在android中使用webview加载完一个网页后,如何知道一共加载了多少资源? RT,现在有一个需求要知道用webview加载完任意一个网页后一共有多少个资源,现在问题是不知道什么时候网页完全加载完,因为当webclient回调onPageFinished()之后,还是会继续回调onLoadResource()来加载资源,求给个思路 解决方案 用抓包工具(wireshark)即可查看 解决方案二: 可以在底层抓包实现哦... 解决方案三: 多少资源? 包括多少个图片js 吗 ? 分

lightbox-css块中加了onclick事件,怎么让块中的一个图片链接不执行onclick?

问题描述 css块中加了onclick事件,怎么让块中的一个图片链接不执行onclick? css块中加了onclick事件,我想让这个块中的一个图片链接不受影响,该图片被点击后会执行一个lightbox效果,这个效果需要有,也就是说点击这个图片会触发lightbox效果但不会执行onclick,请问怎么弄?