用C#窗体应用程序和逆波兰法怎么设计一个科学计算器
- 创建一个Windows窗体应用程序
- 在窗体上添加一个文本框用于显示计算结果,以及一些按钮用于输入数字和运算符
- 使用栈来实现逆波兰法计算器
- 添加一个按钮用于计算结果
- 实现输入数字和运算符的方法,并将它们添加到栈中
- 实现计算结果的方法,从栈中取出数字和运算符,并按照逆波兰法的规则进行计算
- 将计算结果显示在文本框中
以下是C#代码示例:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace ScientificCalculator
{
public partial class Form1 : Form
{
private 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(GetOperatorCode(btn.Text));
txtResult.Text = string.Empty;
}
private void btnCalculate_Click(object sender, EventArgs e)
{
double num2 = stack.Pop();
double num1 = stack.Pop();
int code = (int)stack.Pop();
double result = Calculate(num1, num2, code);
txtResult.Text = result.ToString();
}
private int GetOperatorCode(string op)
{
switch (op)
{
case "+":
return 1;
case "-":
return 2;
case "*":
return 3;
case "/":
return 4;
case "^":
return 5;
default:
return 0;
}
}
private double Calculate(double num1, double num2, int code)
{
switch (code)
{
case 1:
return num1 + num2;
case 2:
return num1 - num2;
case 3:
return num1 * num2;
case 4:
return num1 / num2;
case 5:
return Math.Pow(num1, num2);
default:
return 0;
}
}
}
}
``
原文地址: https://www.cveoy.top/t/topic/fG0S 著作权归作者所有。请勿转载和采集!