namespace 计算器2._0 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private bool Isok = true;//记录刚刚是否点过运算符,或是否第一次进入界面 private string Biaodashi; //记录运算符之前的表达式(在第一栏) private decimal Sum;//记录之前计算的结果(在第二栏) private string Preyunsuanfu;//记录之前的运算符 private void button32_Click(object sender, EventArgs e)//其它数字按钮 { Button btn = (Button) sender; //sender为各自对应的类,这里为对应每个按钮 if (Isok) //如果第一次进入界面或者之前点过运算符 { textBox2.Text = btn.Text; //下面那一栏文本框的内容改成按钮上的内容 Isok = false;//将Isok改成false的意思:不是刚刚点完运算符了,也不是刚进入界面 } else { textBox2.Text = textBox2.Text + btn.Text;//如果不是刚进入,之后的数字便一直加上刚才所点的按钮的内容 } } private void button36_Click(object sender, EventArgs e)//0按钮 { Button btn = (Button)sender; //sender为各自对应的类,这里为对应每个按钮 if (Isok) //如果第一次进入界面或者之前点过运算符 { textBox2.Text = btn.Text; //下面那一栏文本框的内容改成按钮上的内容 } else { textBox2.Text = textBox2.Text + btn.Text;//如果不是刚进入,之后的数字便一直加上刚才所点的按钮的内容 } } private void button44_Click(object sender, EventArgs e)//运算符 { Button btn = (Button)sender;//sender为各自对应的类,这里为对应每个按钮 string yunsuanfu = btn.Text; //将按钮上的内容赋值给yunsuanfu; if (Preyunsuanfu == null) { Biaodashi = Biaodashi + textBox2.Text; Sum = decimal.Parse(textBox2.Text); } else { if (!Isok) //如果刚刚点过运算符,这一块也就不需要运算了.反之则需要运算. { // !Isok 代表的是刚刚没点过运算符,这样才会运算下面的代码. if (Preyunsuanfu == "+") //如果刚才的运算符是加号 { Sum = Sum + decimal.Parse(textBox2.Text);//算出的结果就为之前算出来的加上刚点上去的 } if (Preyunsuanfu == "-") { Sum = Sum - decimal.Parse(textBox2.Text); } if (Preyunsuanfu == "*") { Sum = Sum * decimal.Parse(textBox2.Text); } if (Preyunsuanfu == "/") { Sum = Sum / decimal.Parse(textBox2.Text); } if (Preyunsuanfu == "%") { Sum = Sum % decimal.Parse(textBox2.Text); } Biaodashi = Biaodashi + Preyunsuanfu + textBox2.Text;//之前有运算符的话 第一栏的值变为 之前的表达式+刚才点进去的运算符+刚才输入的值 textBox2.Text = Sum.ToString(); //第二栏的值变为结果 } } textBox1.Text = Biaodashi + yunsuanfu;//第一栏显示的文本为表达式+当前输入的运算符 Preyunsuanfu = yunsuanfu;//将yunsuanfu的值赋给 记录上一次的运算符; Isok = true; //只要Isok是ture,就会把刚才的值清空重新输入现在按钮上的值 } } }
时间: 2024-10-24 15:28:34