纯净物
求助_(:з」∠)_关于简问题单的计算器的连续运算

现在的状况就是可以简单运算,但是连续那种,比如1+3-2这种就不行,只能实现两位数的四则运算_(:з」∠)_是需要创建个变量来存储sum1 的值么?还是怎么OJZ

求帮助……

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace calculator

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

bool operatorFlag = false;

public void InputNumber(string number1)

{

if (tBanswer.Text == "0")

{

tBanswer.Text = "";

}

tBanswer.Text = tBanswer.Text + number1;

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void bonDec_Click(object sender, EventArgs e)

{

if (tBanswer.Text.IndexOf(".") == -1)

InputNumber(".");

}

private void bon00_Click(object sender, EventArgs e)

{

InputNumber("0");

}

private void bon01_Click(object sender, EventArgs e)

{

InputNumber("1");

}

private void bon02_Click(object sender, EventArgs e)

{

InputNumber("2");

}

private void bon03_Click(object sender, EventArgs e)

{

InputNumber("3");

}

private void bon04_Click(object sender, EventArgs e)

{

InputNumber("4");

}

private void bon05_Click(object sender, EventArgs e)

{

InputNumber("5");

}

private void bon06_Click(object sender, EventArgs e)

{

InputNumber("6");

}

private void bon07_Click(object sender, EventArgs e)

{

InputNumber("7");

}

private void bon08_Click(object sender, EventArgs e)

{

InputNumber("8");

}

private void bon09_Click(object sender, EventArgs e)

{

InputNumber("9");

}

public static string numbersaved;

public static string signsaved;

public void SaveInputed(string num1, string sign1)

{

if (num1 == "0" | num1 == "") return;

numbersaved = num1;

signsaved = sign1;

tBanswer.Text = "0";

}

private void bonAdd_Click(object sender, EventArgs e)

{

SaveInputed(tBanswer.Text, "加");

}

private void bonSub_Click(object sender, EventArgs e)

{

SaveInputed(tBanswer.Text, "减");

}

private void bonMul_Click(object sender, EventArgs e)

{

SaveInputed(tBanswer.Text, "乘");

}

private void bonDiv_Click(object sender, EventArgs e)

{

SaveInputed(tBanswer.Text, "除");

}

private void bonEqula_Click(object sender, EventArgs e)

{

string numbernow = tBanswer.Text;

if (signsaved == "" | numbersaved == "" | numbernow == "" | numbernow == "0") return;

tBanswer.Text = Calcuration(numbersaved, signsaved, numbernow);

signsaved = "";

numbersaved = "";

}

public string Calcuration(string num1, string sign1, string num2)

{

float number1, number2, sum1 = 0, result=0;

try

{

number1 = (float)(Double.Parse(num1));

number2 = (float)(Double.Parse(num2));

if (sign1 == "加")

{

sum1 = number1 + number2;

}

if (sign1 == "减")

{

sum1 = number1 - number2;

}

if (sign1 == "乘")

{

sum1 = number1 * number2;

}

if (sign1 == "除")

{

sum1 = number1 / number2;

}

return result.ToString();

}

catch

{

return "";

}

}

private void bonC_Click(object sender, EventArgs e)

{

tBanswer.Text = "0";

numbersaved = "";

signsaved = "";

}

}

}

不要不要的
代码不要写在一起
展开Biu

1代码不要写在一起 不好管理的

2写代码加注释  养成习惯  对将来有好处的

3你这个拆分  输入模块  计算模块 显示模块  分开来写 这样清晰一些

4你这会出BUG的  如果你是个触屏的电脑  我同时按下了所有键 程序会不会挂掉?

做一个输入流  可以使是list型的列表存储你的输入  计算模块可以从列表读取你的输入这样可以降低出错的几率

[查看全文]
wugy315
创建一个变量来储存上一个运算结果是必要的
展开Biu

创建一个变量来储存上一个运算结果是必要的

[查看全文]
纯净物
你可以拆开来算
展开Biu

然而我并没有拆开_(:з」∠)_自己折腾了布尔,已经通过了w

[查看全文]
御坂2003号
你可以拆开来算
展开Biu

你可以拆开来算

[查看全文]