C# 一步一步完成一个简单的计算器 第三步---实现双目运算
来源:互联网 发布:淘宝如何找人刷销量 编辑:程序博客网 时间:2024/04/30 13:02
实现双目运算是这个系列中难道较大的,基本都是在写代码,在一些函数中相互调用,修改变量,可能比较绕,
1.首先打开代码文本,在类的里面 声明几个变量
private bool isFirstInput = true; //是否第一次输入 private string lastVal= ""; //双目运算的前一个数 private string symbol = ""; //保存 当前运算符合,只有双目 private bool isCanCalc = false; //判断在按下双目运算符后 是进行计算 还是修改已有的Symbol private bool isClr = false; //是否在CText有数字的情况下,重新输入;( 我的窗口类没有修改,是默认的Form1 )
isFirstInput 就是你运行这个计算器输入的第一个用于运算的数字,按下双目运算符,表示第一次输入结束; 当然按下 C 键可以重置 isFirstInput
lastVal 就是储存双目运算的前一个数(比如 A+B ,就保存 A) 在 加减乘除 这些双目运算的按钮按下的事件中 进行更新;
symbol 保存当前正要执行的 双目运算的符合(+ - * /) 更新,赋值的函数 同上
isCanCalc 判断在按下双目运算符后 是进行计算 还是修改已有的Symbol在数字按钮按下和双目运算的按钮按下的事件中更新
isClr 用于按下 = 按钮,后重新输入时进入数字按钮事件激活清空 在数字按钮按下和 Res_Btn按下 中修改
2. 编写 双目运算按钮按下进行的代码
任意一个双目运算的按钮的 Click 中写入 Symbol_Btn_Clic ,创建这个事件,并写入如下代码
string NowSymbol = (sender as Button).Text; double result; //如是第一次输入 if (isFirstInput == true) { lastVal = CText.Text; //将当前的值赋给 lastVal symbol = NowSymbol; //将取得计算符合传进symbol CText.Text = "0"; //刷新输入 为输入下一个数做准备 isFirstInput = false; //已经完成 第一次输入 //添加到 RText Rtext.Text = lastVal + symbol; //显示第一个数和运算符合 isCanCalc = false; //没有输入第二个数 不能进行计算 } else if(isCanCalc==true) //如果允许计算 { result = Calc(double.Parse(lastVal), double.Parse(CText.Text), symbol); //计算函数 Rtext.Text = Rtext.Text + CText.Text + NowSymbol; //更新 Rtext 的显示 lastVal=CText.Text = result.ToString(); //更新 lastVal 和 CText 的值 symbol = NowSymbol; //更新 新的待执行的双目运算的符合 isClr = true; //允许清空 当前CText的显示 isCanCalc = false; //没有输入输入下一个数,再次按下双目运算按钮,只能修改当前symbol的值 } else { symbol = NowSymbol; //不允许计算, 只能修改当前symbol的值 CText.Text = CText.Text.Substring(0, CText.Text.Length - 1)+symbol; //更新 Rext 的显示 }
3. 编写 Calc 函数,这个没有什么多解释的
private double Calc(double v1, double v2, string symbol) { double result = 0.0; switch (symbol) { case "+": result = v1 + v2; break; case "-": result = v1 - v2; break; case "*": result = v1 * v2; break; case "/": result = v1 / v2; break; } return result; }
我没有对 除法 是否除以0 进行判断处理,请自行修改,添加
4. 对 NumBtn_Click 进行修改
string numStr= (sender as Button).Text; //sender 是触发这个事件的成员 , //我们是一个按钮按下这个事件触发,所以要 将其转换为 Button 类型, //再看按钮的Test值 是我们要添加并显示的数字,我们就直接取出来 if (isClr == true) { //进行 这步操作, 接下了的if就会运行 < CText.Text == "0" > 下的, CText.Text = "0"; //以此到达重新输入的目的 isClr = false; } if (CText.Text == "0") // 如果为零的话,说明这是初始值 overload CText.Text = numStr; else CText.Text += numStr; if (isFirstInput == false) //排除了 第一次输入后, 按下数字键,都表明可以进行计算 isCanCalc = true; //自己想
5.两函数一起上;
第一个是 按下 "="按钮的
private void Res_Btn_Click(object sender, EventArgs e) { Rtext.Text = ""; //清空Text if(isFirstInput==false) //判断是不是 第一次输入,不是就计算一次 , 是的话 就直接不用修改 CText.Text = Calc(double.Parse(lastVal), double.Parse(CText.Text), symbol).ToString(); isFirstInput = true; // isClr = true; // }
第二个是 按下 "C" 按钮的
private void C_Btn_Click(object sender, EventArgs e) { //初始化 Form1_Load(sender, e); isFirstInput = true; lastVal = ""; symbol = ""; isCanCalc = false; isClr = false; }
代码贴完了, 我表述能力差,不知道怎么更详细的叙述代码的作用, 可以 尝试 注释某些代码,看看有什么 变化问题, 尝试自己分析下代码. 就当作联系吧.
这个计算器 是模仿 win7 只带计算器的标准型 .
到当前的项目文件 下载链接:http://pan.baidu.com/s/1eQx21gQ 密码:f82x
- C# 一步一步完成一个简单的计算器 第三步---实现双目运算
- C# 一步一步完成一个简单的计算器 第二步---实现单目运算
- C# 一步一步完成一个简单的计算器 第一步---搭建计算器界面
- 第三课 设计一个简单的计算器
- 实现一个简单的计算器
- 一步一步实现一个简单的OS(HelloWorld)
- 使用JS完成一个简单的计算器功能
- c#实现简单计算器
- C#实现简单的加减乘除计算器
- C#基础之计算器的简单实现
- C#实现桌面应用程序简单的计算器
- 简单计算器实现整数运算
- C#实现的一个小小计算器
- 一个简单的计算器界面实现
- 一个简单的Java计算器实现
- 一个能够实现简单功能的计算器
- C语言实现一个简单的计算器
- jsp实现一个简单的计算器
- 第2章番外2 令人惊喜的注释文档
- 关于Android中Broadcast&BroadcastReceiver的基础使用
- vim复制
- uvaoj 1267 - Network
- 常用的定义按钮的样式方法和按钮被按的变化
- C# 一步一步完成一个简单的计算器 第三步---实现双目运算
- Laravel学习实践(三)Laravel发送邮件
- poj 1155 TELE (树形dp)
- 信息系统项目管理师考后想
- “互联网+”商业模式的精髓
- 带参数启动另外一个exe程序
- 为 Key-Value 数据库实现MVCC 事务
- springMVC教程-快速入手-深入分析
- 用gdb来调试fwrite异常产生的core