如何用C#做一个科学计算器给我设计过程和代码
设计过程:
-
首先,我们需要在窗体上添加一些控件,如文本框、按钮等,用于用户输入和显示计算结果。
-
接着,我们需要为每个按钮添加点击事件,用于获取用户输入的数值和进行计算。
-
然后,我们需要编写一些函数,用于实现不同的计算功能,如加减乘除、求平方根、求幂等。
-
最后,我们将这些函数与按钮的点击事件绑定起来,实现科学计算器的功能。
代码实现:
- 在窗体上添加控件,如文本框和按钮:
private System.Windows.Forms.TextBox txtDisplay;
private System.Windows.Forms.Button btn1;
private System.Windows.Forms.Button btn2;
//...其他按钮
- 在按钮的点击事件中获取用户输入的数值和进行计算:
private void btn1_Click(object sender, EventArgs e)
{
txtDisplay.Text += "1";
}
private void btnPlus_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "+";
}
private void btnEqual_Click(object sender, EventArgs e)
{
num2 = double.Parse(txtDisplay.Text);
double result = 0;
switch (operation)
{
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
txtDisplay.Text = result.ToString();
}
- 编写一些函数,用于实现不同的计算功能:
private double Add(double num1, double num2)
{
return num1 + num2;
}
private double Subtract(double num1, double num2)
{
return num1 - num2;
}
private double Multiply(double num1, double num2)
{
return num1 * num2;
}
private double Divide(double num1, double num2)
{
return num1 / num2;
}
private double SquareRoot(double num)
{
return Math.Sqrt(num);
}
private double Power(double num, double exponent)
{
return Math.Pow(num, exponent);
}
- 将这些函数与按钮的点击事件绑定起来:
private void btnAdd_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "+";
}
private void btnSubtract_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "-";
}
private void btnMultiply_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "*";
}
private void btnDivide_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "/";
}
private void btnSquareRoot_Click(object sender, EventArgs e)
{
double num = double.Parse(txtDisplay.Text);
double result = SquareRoot(num);
txtDisplay.Text = result.ToString();
}
private void btnPower_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "^";
}
private void btnEqual_Click(object sender, EventArgs e)
{
num2 = double.Parse(txtDisplay.Text);
double result = 0;
switch (operation)
{
case "+":
result = Add(num1, num2);
break;
case "-":
result = Subtract(num1, num2);
break;
case "*":
result = Multiply(num1, num2);
break;
case "/":
result = Divide(num1, num2);
break;
case "^":
result = Power(num1, num2);
break;
}
txtDisplay.Text = result.ToString();
}
完整代码如下:
public partial class Form1 : Form
{
private double num1 = 0;
private double num2 = 0;
private string operation = "";
public Form1()
{
InitializeComponent();
}
private void btn1_Click(object sender, EventArgs e)
{
txtDisplay.Text += "1";
}
private void btn2_Click(object sender, EventArgs e)
{
txtDisplay.Text += "2";
}
private void btn3_Click(object sender, EventArgs e)
{
txtDisplay.Text += "3";
}
private void btn4_Click(object sender, EventArgs e)
{
txtDisplay.Text += "4";
}
private void btn5_Click(object sender, EventArgs e)
{
txtDisplay.Text += "5";
}
private void btn6_Click(object sender, EventArgs e)
{
txtDisplay.Text += "6";
}
private void btn7_Click(object sender, EventArgs e)
{
txtDisplay.Text += "7";
}
private void btn8_Click(object sender, EventArgs e)
{
txtDisplay.Text += "8";
}
private void btn9_Click(object sender, EventArgs e)
{
txtDisplay.Text += "9";
}
private void btn0_Click(object sender, EventArgs e)
{
txtDisplay.Text += "0";
}
private void btnDot_Click(object sender, EventArgs e)
{
if (!txtDisplay.Text.Contains("."))
{
txtDisplay.Text += ".";
}
}
private void btnPlus_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "+";
}
private void btnMinus_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "-";
}
private void btnMultiply_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "*";
}
private void btnDivide_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "/";
}
private void btnSquareRoot_Click(object sender, EventArgs e)
{
double num = double.Parse(txtDisplay.Text);
double result = SquareRoot(num);
txtDisplay.Text = result.ToString();
}
private void btnPower_Click(object sender, EventArgs e)
{
num1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
operation = "^";
}
private void btnEqual_Click(object sender, EventArgs e)
{
num2 = double.Parse(txtDisplay.Text);
double result = 0;
switch (operation)
{
case "+":
result = Add(num1, num2);
break;
case "-":
result = Subtract(num1, num2);
break;
case "*":
result = Multiply(num1, num2);
break;
case "/":
result = Divide(num1, num2);
break;
case "^":
result = Power(num1, num2);
break;
}
txtDisplay.Text = result.ToString();
}
private void btnClear_Click(object sender, EventArgs e)
{
txtDisplay.Clear();
}
private double Add(double num1, double num2)
{
return num1 + num2;
}
private double Subtract(double num1, double num2)
{
return num1 - num2;
}
private double Multiply(double num1, double num2)
{
return num1 * num2;
}
private double Divide(double num1, double num2)
{
return num1 / num2;
}
private double SquareRoot(double num)
{
return Math.Sqrt(num);
}
private double Power(double num, double exponent)
{
return Math.Pow(num, exponent);
}
}
``
原文地址: https://www.cveoy.top/t/topic/dOx7 著作权归作者所有。请勿转载和采集!