private void btnadd_Click(object sender, EventArgs e) { //加号场景,四种吧? //1.计算器加载完后开始就点击(最开始点击) switch (operateProcess) { //2.输入完左操作数后点击 case OperateProcess.LeftNum: operateSign = "+"; tbOperateNumEditing.Text = ""; operateProcess = OperateProcess.RightNum; break; //3.输入完右操作数后点击 case OperateProcess.RightNum: switch (operateSign) { case "+": jsResult = leftNum + rightNum; break; } tbOperateNumEditing.Text = jsResult.ToString(); leftNum = jsResult; operateProcess = OperateProcess.Result; break; //4.多次重复点击 case OperateProcess.Result: break; } }
private void btnac_Click(object sender, EventArgs e) { tbOperateNumEditing.Text = ""; leftNum = 0; rightNum = 0; jsResult = 0; operateProcess = OperateProcess.LeftNum; }
private void btn0_Click(object sender, EventArgs e) { //所有的数字都调用该方法,具体思路如下 Button b = (Button)sender; if (tbOperateNumEditing.Text != "0") { switch (operateProcess) { //1.若正在编辑,则将后面输入的值累加到第一操作数后 case OperateProcess.LeftNum: tbOperateNumEditing.Text += b.Text; tbOperateNumRecord.Text += b.Text; leftNum = double.Parse(tbOperateNumEditing.Text); break; //2.否则,将后面输入的值依序累加到第二操作数 case OperateProcess.RightNum: tbOperateNumEditing.Text += b.Text; tbOperateNumRecord.Text += b.Text; rightNum = double.Parse(tbOperateNumEditing.Text); break; //3.若现在是点完=号出来结果了,这次再点击数字,应该是什么操作呢? case OperateProcess.Result: if (!string.IsNullOrEmpty(tbOperateNumRecord.Text)) { tbOperateNumEditing.Text = b.Text; tbOperateNumRecord.Text += b.Text; rightNum = double.Parse(tbOperateNumEditing.Text); operateProcess = OperateProcess.RightNum; } else { tbOperateNumEditing.Text = b.Text; tbOperateNumRecord.Text += b.Text; leftNum = double.Parse(tbOperateNumEditing.Text); operateProcess = OperateProcess.LeftNum; } break; } } else { return; } }
private void btn0_Click(object sender, EventArgs e) { //就比如这里 //所有的数字都调用该方法,具体思路如下 Button b = (Button)sender; //0.这里其实还有场景呢 switch (operateProcess) { //1.若正在编辑,则将后面输入的值累加到第一操作数后 case OperateProcess.LeftNum: tbOperateNumEditing.Text += b.Text; leftNum = double.Parse(tbOperateNumEditing.Text); break; //2.否则,将后面输入的值依序累加到第二操作数 case OperateProcess.RightNum: tbOperateNumEditing.Text += b.Text; rightNum = double.Parse(tbOperateNumEditing.Text); break; //3.若现在是点完=号出来结果了,这次再点击数字,应该是什么操作呢? case OperateProcess.Result: tbOperateNumEditing.Text = b.Text; rightNum = double.Parse(tbOperateNumEditing.Text); operateProcess = OperateProcess.RightNum; break; } //1.如果文本框中第一位是"0"只能输入"0."; //2.如果文本框中第一位是"0"不能在输入"0"; //3.如果文本框中第一位是"0"输入其他数字"0"自动删除 if (tbOperateNumEditing.Text == "0") { tbOperateNumEditing.Text = "0."; } //1.检测第一操作数(左操作数)是否正在编辑中 }
private void btnequal_Click(object sender, EventArgs e) { operateProcess = OperateProcess.Result; switch (operateSign) { case "+": jsResult = leftNum + rightNum; break; case "-": jsResult = leftNum - rightNum; break; case "*": jsResult = leftNum * rightNum; break; case "/": jsResult = leftNum / rightNum; break; } leftNum = jsResult; tbOperateNumEditing.Text = jsResult.ToString(); }
private void btnequal_Click(object sender, EventArgs e) { //通过开关进行判断; switch (operateProcess) { //1.检测为左操作数后清空文本框; case OperateProcess.LeftNum: break; //2.检测为右操作数后的运算; case OperateProcess.RightNum: switch (operateSign) { case "+": jsResult = leftNum + rightNum; break; case "-": jsResult = leftNum - rightNum; break; case "*": jsResult = leftNum * rightNum; break; case "/": jsResult = leftNum / rightNum; break; } tbOperateNumEditing.Text = jsResult.ToString(); operateProcess = OperateProcess.Result; leftNum = jsResult; tbOperateNumRecord.Text = ""; break; //3.检测为结果操作数后的运算; case OperateProcess.Result: switch (operateSign) { case "+": jsResult += rightNum; break; case "-": jsResult -= rightNum; break; case "*": jsResult *= rightNum; break; case "/": jsResult /= rightNum; break; } tbOperateNumEditing.Text = jsResult.ToString(); operateProcess = OperateProcess.Result; leftNum = jsResult; tbOperateNumRecord.Text = ""; break; } }
private void btnadd_Click(object sender, EventArgs e) { //1.计算器加载完后开始就点击(最开始点击) switch (operateProcess) { //2.输入完左操作数后点击 case OperateProcess.LeftNum: operateSign = ((Button)sender).Text; tbOperateNumEditing.Text = ""; tbOperateNumRecord.Text += " " + ((Button)sender).Text + " "; operateProcess = OperateProcess.RightNum; rightNum = leftNum; break; //3.输入完右操作数后点击 case OperateProcess.RightNum: if (!string.IsNullOrEmpty(tbOperateNumEditing.Text)) { switch (operateSign) { case "+": jsResult = leftNum + rightNum; break; case "-": jsResult = leftNum - rightNum; break; case "*": jsResult = leftNum * rightNum; break; case "/": jsResult = leftNum / rightNum; break; } tbOperateNumEditing.Text = jsResult.ToString(); operateProcess = OperateProcess.Result; leftNum = jsResult; rightNum = jsResult; operateSign = ((Button)sender).Text; tbOperateNumRecord.Text += " " + ((Button)sender).Text + " "; break; } else { operateSign = ((Button)sender).Text; tbOperateNumRecord.Text = tbOperateNumRecord.Text.Remove(tbOperateNumRecord.Text.Length - 3); tbOperateNumRecord.Text += " " + ((Button)sender).Text + " "; break; } //4.多次重复点击 case OperateProcess.Result: operateSign = ((Button)sender).Text; if (!string.IsNullOrEmpty(tbOperateNumRecord.Text)) { tbOperateNumRecord.Text = tbOperateNumRecord.Text.Remove(tbOperateNumRecord.Text.Length - 3); tbOperateNumRecord.Text += " " + ((Button)sender).Text + " "; } else { tbOperateNumRecord.Text = tbOperateNumEditing.Text; tbOperateNumEditing.Text = ""; tbOperateNumRecord.Text += " " + ((Button)sender).Text + " "; rightNum = leftNum; } break; } }