{
if (!DotCliked)
{
strOutput += ".";
txtOutPut.Text = strOutput;
DotCliked = true;
}
}
[]( )集中处理按钮触发事件函数
===============================================================================
该函数是我们自己定义的函数,而并非是某一个控件自动生成的函数类型,该函数的作用时接收用户点击按钮时触发的信息,并且进行小数判断,如果用户键入的数值是小数,则将输入的数据(点击小数点后输入的数据)后移一位,表示小数点后的数值,并将INumTemp数据进行相加,得到输入的小数,如果不是小数,则值得注意的是,应该将之前输入的数据乘以10前移一位,
同时给大家一个小小的建议,为了判断数据是否溢出,在进行语句判断的时候可以加上一个异常抛出的判断,这样在出现错误异常的时候不至于导致程序无法运行,而是发出一个错误异常提醒,这样就会很方便的知道程序的问题所在。
这也是在很多编程开发时的一个习惯所在,很多时候设置异常抛出可以避免程序的错误而无法运行。
函数实现代码具体如下:
//集中处理按钮触发事件
private void Numbers_Click(object sender, EventArgs e)
{
string strClickNum = ((Button)sender).Text; //获取按钮控件文本
try
{
//判断如果点击小数类型
if (DotCliked)
{
lastPrecisionNum *= 0.1;
//得出小数数值,并判断是否有异常溢出
checked
{
INumTemp = INumTemp + long.Parse(strClickNum) * lastPrecisionNum; //将获取到的按钮string型转化为long型
}
}
else
{
checked
{
INumTemp = INumTemp * 10 + long.Parse(strClickNum);
}
}
txtOutPut.Text += INumTemp.ToString();
strOutput += strClickNum;
txtOutPut.Text = strOutput;
}
catch (Exception)
{
MessageBox.Show("数据溢出");
}
}
[]( )操作符按钮点击事件函数
==============================================================================
该函数与集中处理触发事件按钮函数一样,也是我们自己定义的函数,该函数的作用是接收加减乘除等控件键入时的操作,该函数的编写思想是,当输入操作符时,说明上一个数据已经输入完成了。
这个时候我们需要将INumTemp的值赋给INumFormer表示这是我们键入的第一个数据,然后将INumTemp赋值为0,方便输入第二个数值时使用,同时将定义输出的变量在原来的基础上继续增加,并通过文本输出框输出此时的信息。
之后将小数点判断变量和小数点位数变量赋值为初值,方便带二个数据的输入。具体的函数实现代码如下所示:
//操作符按钮点击事件
private void Opraters_Click(object sender, EventArgs e)
{
string strClickop = ((Button)sender).Text; //获取按钮数值
cOperation = strClickop;
INumFormer = INumTemp;
INumTemp = 0;
strOutput += cOperation.ToString();
txtOutPut.Text = strOutput;
DotCliked = false;
lastPrecisionNum = 1;
}
[]( )等号按钮触发事件函数
=============================================================================
顾名思义,该函数的作用就是将键入的结果进行输出,并且该函数是在双击等号控件是自动生成的函数,无需我们再自己定义,当我们点击等号按钮时会触发该函数。
等号按钮触发函数的编写思想是:使用switch语句判断键入的操作符类型,然后根据键入不同的操作符对第一次和第二次键入的数值INumFormer 和 INumTemp;进行相应的加减乘除运算,并将结果赋值给IResult,并通过文本输出框输出运算结果。
接下来有两种操作方式:
一种是重新键入两个数进行运算,这样需要将结果输出以后,将原来定义的所有的变量赋予初值即可,
另一种是得出运算结果之后,继续点击操作符进行连环运算,这样需要在将运算结果输出之后,将运算结果赋值给INumFormer 和 INumTemp,其目的是为了存储运算结果继续运算。之后再将之前定义的所有变量赋予初值。
等号按钮触发函数的具体实现代码如下:
//等号按钮触发函数
private void button_enter_Click(object sender, EventArgs e)
{
try
{
switch (cOperation)
{
case "+":
{
checked //chexked关键字检查是否发生异常溢出
{
IResult = INumFormer + INumTemp;
}
break;
}
case "-":
{
checked //chexked关键字检查是否发生异常溢出
{
IResult = INumFormer - INumTemp;
}
break;
}
case "*":
{
checked //chexked关键字检查是否发生异常溢出
{
IResult = INumFormer * INumTemp;
}
break;
}
case "/":
{
checked //chexked关键字检查是否发生异常溢出
{
IResult = INumFormer / INumTemp;
}
break;
}
case "x2":
{
checked //chexked关键字检查是否发生异常溢出
{
IResult = INumFormer * INumFormer;
}
break;
}
case "x3":
{
checked //chexked关键字检查是否发生异常溢出
{
IResult = INumFormer * INumFormer * INumFormer;
}
break;
}
}
}
catch(Exception)
{
//设置错误溢出信息提示框
MessageBox.Show("计算错误溢出!");
throw;
}
txtOutPut.Text = IResult.ToString();
txtOutPut.Text += "你猜对不对(๑•ᴗ•๑)";
strOutput = IResult.ToString();
INumFormer = IResult;
INumTemp = IResult;
IResult = 0;
cOperation = "";
DotCliked = false;
lastPrecisionNum = 1;
}
[]( )界面控件键入设置函数
=============================================================================
最后也是最关键的一步,就是在用户交互界面的函数中进行控件的键入设置。
该函数是在我们建立交互界面的时候系统自动生成的,
在这里我们需要使用EventHandler类来分别调用集中处理按钮函数Numbers\_Click和操作符处理按钮函数Opraters\_Click,其目的是为了我们在通过点击控件时可以做出相应的响应,不至于我们在单击控件时做出的无效操作。
该函数的具体实现如下:
public CaleForm()
{
InitializeComponent();
EventHandler en = new EventHandler(Numbers_Click);
button_num0.Click += en;
button_num1.Click += en;
button_num2.Click += en;
button_num3.Click += en;
button_num4.Click += en;
button_num5.Click += en;
button_num6.Click += en;
button_num7.Click += en;
button_num8.Click += en;
button_num9.Click += en;
EventHandler en2 = new EventHandler(Opraters_Click);
button_add.Click += en2; //加
button_sub.Click += en2; //减
button_mul.Click += en2; //乘
button_div.Click += en2; //除
button_square.Click += en2; //平方
button_cube.Click += en2; //立方
}
## 总结
这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分**面试题及答案**,希望能帮助到大家
> **[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**
![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/a3317115962bb5743608577585a769c9.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/520d167c917546b30f9703444602d8f6.png)
div.Click += en2; //除
button_square.Click += en2; //平方
button_cube.Click += en2; //立方
}
总结
这个月马上就又要过去了,还在找工作的小伙伴要做好准备了,小编整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家
[外链图片转存中…(img-PxQFbDwY-1630458936702)]
[外链图片转存中…(img-qu8dwlgQ-1630458936706)]