用 c#winfrom做一个科学计算器,用上stack
时间: 2024-02-11 21:09:15 浏览: 23
好的,我可以为您提供一些思路和代码示例。
首先,您需要在 Windows Form 应用程序中创建一个界面,包括数字键、运算符键和结果显示框。然后,您需要编写代码来处理用户输入的数字和运算符,并将结果显示在结果框中。
在这个过程中,您可以使用 Stack 类来处理用户输入的运算符。每当用户按下一个运算符键时,您可以将其推入 Stack 中。当用户按下“=”键时,您可以从 Stack 中弹出运算符,并使用这些运算符来计算结果。
以下是一个简单的示例代码:
```
public partial class Form1 : Form
{
Stack<double> stack = new Stack<double>();
public Form1()
{
InitializeComponent();
}
private void btnNumber_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txtResult.Text += btn.Text;
}
private void btnOperator_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
double num = double.Parse(txtResult.Text);
stack.Push(num);
stack.Push(btn.Text);
txtResult.Text = "";
}
private void btnEquals_Click(object sender, EventArgs e)
{
double num2 = double.Parse(txtResult.Text);
stack.Push(num2);
double result = 0;
while (stack.Count > 0)
{
double num1 = stack.Pop();
string op = stack.Pop();
switch (op)
{
case "+":
result = num1 + result;
break;
case "-":
result = num1 - result;
break;
case "*":
result = num1 * result;
break;
case "/":
result = num1 / result;
break;
}
}
txtResult.Text = result.ToString();
}
}
```
在这个示例中,我们使用了 Stack<double> 类型来存储数字。当用户按下数字键时,我们将数字添加到结果框中。当用户按下运算符键时,我们将当前数字推入 Stack 中,并将运算符也推入 Stack 中。当用户按下“=”键时,我们将最后一个数字也推入 Stack 中,然后从 Stack 中弹出数字和运算符,并使用它们来计算结果。最后,我们将结果显示在结果框中。
当然,这只是一个简单的示例,您可以根据自己的需求进行更改和完善。希望可以帮助到您!