3.1 综合例子:计算器
【例3.17】本例创建一个能进行加、减、乘、除的简单计算器,具体步骤如下:
(1) 建立一个新项目。设置主窗体Form1属性MaxiMizeBox=false,属性MiniMizeBox=false。属性FormBorderStyle=FixedDialog,使窗口不能修改大小。
(2) 放textBox控件到窗体,属性Text="0",属性ReadOnly=true。RightToLeft=yes。
(3) 增加10个Button控件,前9个按钮属性Name分别为:Button1-Button9,最后一个为Button0,属性Text分别为:1、2、3、4、5、6、7、8、9、0。
(4) 增加7个Button控件,属性Name分别为:btn_dot、btn_equ、btn_add、btn_sub、btn_mul、btn_div、btn_C,属性Text分别为:.、=、+、-、*、/、C。设计界面如图3.17。
(5) 按钮控件Button0单击事件处理
函
关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函
数如下:
private void button0_Click(object sender,EventArgs e)
{ Button b1=(Button)sender;
if(textBox1.Text!="0") //如果前边已输入非零数字,例如:12
textBox1.Text+= b1.Text; //此次如键入0,应为:120
else //如果已输入的数字为零,显示的数字应为:0,而不应为:00
textBox1.Text= b1.Text;
} //请读者自己考虑,该事件处理函数是否能正确处理键入数字1到9
(6) 按钮Button1-Button9的单击事件处理函数都设定为按钮Button0的单击事件处理函数。
(7) 为标
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
为"."按钮增加事件处理函数如下:
private void btn_dot_Click(object sender, EventArgs e)
{ int n=textBox1.Text.IndexOf(".");
if(n==-1) //如果没有小数点,增加小数点,否则不增加
textBox1.Text=textBox1.Text+".";
}
(8) 编译,运行,单击标题为"0"到"9"以及"."的按钮,在控件textBox1中可以看到输入的数字,也可以输入小数。
(9) 先实现加法。为Form1类增加一个变量double sum = 0,
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
部分和。
(10) 输入了第一个加数,然后输入任一运算符(+、-、*、\或=),在输入第二个加数前,应先清除编辑框中显示的第一个加数。为实现此功能,为Form1类增加一个布尔变量blnClear,初始值为false,
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示输入数字或小数点前不清除编辑框中显示,输入运算符(+、-、*、\或=)后,blnClear=true,表示如果再输入数字或小数点,先清除编辑框中的显示的前一个加数。修改前边程序,输入数字或小数点前,要判断变量blnClear,如为true,清除编辑框中显示的内容后,再显示新输入的数字或小数点,同时修改blnClear=false。为此修改Button0单击事件处理函数如下:
private void button0_Click(object sender,EventArgs e)
{ if(blnClear) //如为真,输入下一个加数前,应先清除textBox1显示内容
{ textBox1.Text="0"; //阴影部分为新增语句
blnClear=false;
}
Button b1=(Button)sender;
if(textBox1.Text!="0")
textBox1.Text+= b1.Text;
else
textBox1.Text= b1.Text;
}
(11) 修改btn_dot_Click
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
如下: 图3.17
private void btn_dot_Click(object sender, EventArgs e)
{ if(blnClear) //如为真,输入下一个加数前,应先清除textBox1显示内容
{ textBox1.Text="0"; //阴影部分为新增语句
blnClear=false;
}
int n=textBox1.Text.IndexOf(".");
if(n==-1)//如果没有小数点,增加小数点,防止多次输入小数点
textBox1.Text=textBox1.Text+".";
}
(12) 如果要计算1+2-3,先单击标题为"1"的按钮(简称按钮1),编辑框中显示1,再单击按钮+,执行运算sum=sum+1(注意此时sum=0),显示sum到编辑框中(实际显示不变),记住此次输入的运算符,这里为+号。单击按钮2,编辑框中显示2,再单击按钮-,按记录的运算符(这里是+)计算sum=sum+2,显示sum到编辑框中,记住此次输入的运算符,这里为-号,依此类推。为实现此功能,必须定义一个字符串变量strOper,记录输入的运算符,初始值为"+",保证输入第一个运算符后,执行运算sum=sum+第一个加数,由于初始sum=0,也就是sum=第一个加数。标题为"+"的按钮的单击事件处理函数如下:
private void btn_add_Click(object sender, EventArgs e)
{ double dbSecond=Convert.ToDouble(textBox1.Text);
if(!blnClear) //如果未输入第二个操作数,不运算,例如连续键入+、-、*、\或=
switch(strOper) //按上次记录的运算符号运算
{ case "+":
sum+=dbSecond;
break; //在此语句后边增加其他运算符-、*、\的处理代码
}
if(sender==btn_add) //记录此次键入的运算符
strOper="+"; //在此语句后边可增加运算符-、*、\、=的处理代码
textBox1.Text=Convert.ToString(sum); //显示部分和
blnClear=true; //设置标记使键入另1个加数前,要先清除显示的前个加数
}
(13) 等号(=)处理语句和+号处理基本一致,修改标题为"+"按钮的事件函数如下:
private void btn_add_Click(object sender, EventArgs e)
{ double dbSecond=Convert.ToDouble(textBox1.Text);
if(!blnClear) //如果未输入第二个操作数,不运算
switch(strOper) //按记录的运算符号运算
{ case "+":
sum+=dbSecond;
break; //在此语句后边增加其他运算符-、*、\的处理代码
}
if(sender==btn_add)
strOper="+";
if(sender==btn_equ) //为=号处理增加的语句
strOper="=";
textBox1.Text=Convert.ToString(sum);
blnClear=true;
}
将标题为"="的按钮的单击事件处理函数设定为标题为"+"的按钮的单击处理事件函数。
(14) 为标题为"C"按钮增加事件处理函数如下:
private void btn_C_Click(object sender, EventArgs e)
{ textBox1.Text="0";
sum=0;
blnClear=false;
strOper="+";
}
(15) 请读者自己补上减法,乘法,除法运算的语句。