目的:
生成一个一个简单的计算器程序。能够进行简单的二元计算,一个操作符,两个操作数的运算。
思路:
首先要生成一系列的成员变量,用来记录当前操作为第几操作数第几操作符,记录操作数和操作符信息。
然后每一次操作button就将button的值存入对应的成员变量,然后最后在等于操作的时候,将记录操作数和操作符的变量进行计算。
界面
如图:
如下控件:
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button button18;
private System.Windows.Forms.Button button12;
private System.Windows.Forms.Button button11;
private System.Windows.Forms.Button button9;
private System.Windows.Forms.Button button8;
private System.Windows.Forms.Button button7;
private System.Windows.Forms.Button button6;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Button button10;
private System.Windows.Forms.Button button17;
private System.Windows.Forms.Button button16;
private System.Windows.Forms.Button button15;
private System.Windows.Forms.Button button14;
private System.Windows.Forms.Button button13;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.GroupBox groupBox3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox2;
开始:
首先
生成五个成员变量:
/// <summary>
/// 用来存第一操作数,默认为零
/// </summary>
string num1;
/// <summary>
/// 用来存第二操作数
/// </summary>
string num2;
/// <summary>
/// 判断为第几操作数
/// </summary>
bool check = true;
/// <summary>
/// 爆low计算器只能计算两操作数,用来判断
/// </summary>
int count = 0;
/// <summary>
/// 记录操作符
/// </summary>
string str = "";
数字键的点击操作
每次往操作数变量中插值是对check进行一次判断看当前插入的为第几操作数
check == true为第一操作数
check== false为第二操作数
if (check == true)
{
Button b = (Button)sender;
textBox1.Text += b.Text;
num1 += b.Text;
}
else
{
Button b = (Button)sender;
textBox1.Text += b.Text;
num2 += b.Text;
}
操作符按钮点击事件(+ - * /)
以下为+的事件;
Button b = (Button)sender;
textBox1.Text += b.Text;
str = "+";
//标识操作符上限
count += 1;
//标识第二操作数
check = false;
等于事件
在等于事件中我们对我们输入的数进行简单的判断
- 如果count大于1则操作数大于2;
- 如果第一或者第二操作数为空则报错
- 如果第二操作数为0,报错
否则将num1和num2中的值转换为float,再根据str进行swith进行运算
check = true;
if (count > 1) { MessageBox.Show("高级计算器,只能计算俩个数!", "罢工!"); return; }
double Num1 = 0, Num2 = 0,Num3 = 0;
if (num1 == null || num2 == null) { MessageBox.Show("分母或分子为空!", "罢工!"); return; }
else
{
Num1 = double.Parse(num1);
Num2 = double.Parse(num2);
}
if (str == "/" && Num2 == 0) { MessageBox.Show("分母为零!", "罢工!");return; }
switch (str)
{
case "+":
Num3 = Num1 + Num2;
break;
case "-":
Num3 = Num1 - Num2;
break;
case "*":
Num3 = Num1 * Num2;
break;
case "/":
Num3 = Num1 / Num2;
break;
}
textBox2.Text = Num3.ToString();
清除操作
就是把成员变量初始化
textBox1.Text = "";
textBox2.Text = "";
num1 = null;
num2 = null;
check = true;
count = 0;
最后
查看执行后的效果: