计算器:
public partial class Form1 : Form
{
private int prev = 0;//存储上次点击了什么按钮,0代表什么都没点击,
//1代表点击了数字按钮,2代表点击了运算符
private decimal zjjg = 0;//存储计算的中间结果
private string prevysf = "+";//记录上次按的什么运算符
private string btnow = "";
private decimal sum = 0;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Button btn= sender as Button;//将事件源转换为按钮
//按数字按钮时,有三种情况
//替换 (如果下面文本框内容为0或者上次点击了运算符)
if (prev == 2 || txtbottom.Text == "0")//判断运算符
{
txtbottom.Text = btn.Text;//按钮里的数字拿到下面文本框里显示
}
//追加 (如果下面的文本框内容不为0并且上次没有点击运算符)
else
{
txtbottom.Text += btn.Text;//+相当于拼接
}
//点击了数字按钮
prev = 1;
}
private void button4_Click(object sender, EventArgs e)
{//加减乘除
//事件源转换为按钮
Button btn= sender as Button;
//上次按了数字 执行的是上一次运行结果显示 相当于一个中间变量
//按了数字 按运算符时执行几部
if (prev == 1)
{
txttop.Text += txtbottom.Text + btn.Text;
switch (prevysf)
{
case "+":
zjjg = zjjg + Convert.ToDecimal(txtbottom.Text);
break;
case "-":
zjjg = zjjg - Convert.ToDecimal(txtbottom.Text);
break;
case "*":
zjjg = zjjg * Convert.ToDecimal(txtbottom.Text);
break;
case "/":
zjjg = zjjg / Convert.ToDecimal(txtbottom.Text);
break;
}
txtbottom.Text = zjjg.ToString();
}
//上次按了运算符 修改上面的运算符
else
{
string s= txttop.Text;//取出里面的字符串
s.Substring(0,s.Length-1);//把最后一个截掉
s = s + btn.Text;//再给它赋一个新的
txttop.Text = s;
}
//点击了运算符
prev = 2;
//还要记录运算符
prevysf = btn.Text;
}
private void button13_Click(object sender, EventArgs e)
{//清除
txttop.Text = "";
txtbottom.Text = "0";
prev = 0;
zjjg = 0;
prevysf = "+";
}
private void button15_Click(object sender, EventArgs e)
{//等于
//事件源转换为按钮
Button btn = sender as Button;
switch (prevysf)
{
case "+":
zjjg = zjjg + Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
case "-":
zjjg = zjjg - Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
case "*":
zjjg = zjjg * Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
case "/":
zjjg = zjjg / Convert.ToDecimal(txtbottom.Text); //计算上次运行的结果
break;
}
txtbottom.Text = zjjg.ToString();
txttop.Text = "";
prevysf = "";
prev = 2;
}
}
private void button17_Click(object sender, EventArgs e)
{//退格
int t = txtbottom.Text.ToString().Length;
string str = txtbottom.Text.ToString();
if (t > 1)
{
str = str.Remove(t - 1, 1);
txtbottom.Text = str;
}
else
{
txtbottom.Text = "0";
}
}
}
}