C#还能这么玩?,2021年Java开发者跳槽指南

{

    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程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

[外链图片转存中…(img-PxQFbDwY-1630458936702)]

[外链图片转存中…(img-qu8dwlgQ-1630458936706)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值