Example #1
0
        private void btnadd_Click(object sender, EventArgs e)
        {
            //加号场景,四种吧?
            //1.计算器加载完后开始就点击(最开始点击)


            switch (operateProcess)
            {
            //2.输入完左操作数后点击
            case OperateProcess.LeftNum:
                operateSign = "+";
                tbOperateNumEditing.Text = "";
                operateProcess           = OperateProcess.RightNum;

                break;

            //3.输入完右操作数后点击
            case OperateProcess.RightNum:
                switch (operateSign)
                {
                case "+":
                    jsResult = leftNum + rightNum;
                    break;
                }
                tbOperateNumEditing.Text = jsResult.ToString();
                leftNum        = jsResult;
                operateProcess = OperateProcess.Result;
                break;

            //4.多次重复点击
            case OperateProcess.Result:

                break;
            }
        }
Example #2
0
 private void btnac_Click(object sender, EventArgs e)
 {
     tbOperateNumEditing.Text = "";
     leftNum        = 0;
     rightNum       = 0;
     jsResult       = 0;
     operateProcess = OperateProcess.LeftNum;
 }
Example #3
0
        private void btn0_Click(object sender, EventArgs e)
        {
            //所有的数字都调用该方法,具体思路如下
            Button b = (Button)sender;

            if (tbOperateNumEditing.Text != "0")
            {
                switch (operateProcess)
                {
                //1.若正在编辑,则将后面输入的值累加到第一操作数后
                case OperateProcess.LeftNum:
                    tbOperateNumEditing.Text += b.Text;
                    tbOperateNumRecord.Text  += b.Text;
                    leftNum = double.Parse(tbOperateNumEditing.Text);
                    break;

                //2.否则,将后面输入的值依序累加到第二操作数
                case OperateProcess.RightNum:
                    tbOperateNumEditing.Text += b.Text;
                    tbOperateNumRecord.Text  += b.Text;
                    rightNum = double.Parse(tbOperateNumEditing.Text);
                    break;

                //3.若现在是点完=号出来结果了,这次再点击数字,应该是什么操作呢?
                case OperateProcess.Result:
                    if (!string.IsNullOrEmpty(tbOperateNumRecord.Text))
                    {
                        tbOperateNumEditing.Text = b.Text;
                        tbOperateNumRecord.Text += b.Text;
                        rightNum       = double.Parse(tbOperateNumEditing.Text);
                        operateProcess = OperateProcess.RightNum;
                    }
                    else
                    {
                        tbOperateNumEditing.Text = b.Text;
                        tbOperateNumRecord.Text += b.Text;
                        leftNum        = double.Parse(tbOperateNumEditing.Text);
                        operateProcess = OperateProcess.LeftNum;
                    }

                    break;
                }
            }
            else
            {
                return;
            }
        }
Example #4
0
        private void btn0_Click(object sender, EventArgs e)
        {
            //就比如这里
            //所有的数字都调用该方法,具体思路如下
            Button b = (Button)sender;

            //0.这里其实还有场景呢
            switch (operateProcess)
            {
            //1.若正在编辑,则将后面输入的值累加到第一操作数后
            case OperateProcess.LeftNum:
                tbOperateNumEditing.Text += b.Text;
                leftNum = double.Parse(tbOperateNumEditing.Text);
                break;

            //2.否则,将后面输入的值依序累加到第二操作数
            case OperateProcess.RightNum:
                tbOperateNumEditing.Text += b.Text;
                rightNum = double.Parse(tbOperateNumEditing.Text);
                break;

            //3.若现在是点完=号出来结果了,这次再点击数字,应该是什么操作呢?
            case OperateProcess.Result:
                tbOperateNumEditing.Text = b.Text;
                rightNum       = double.Parse(tbOperateNumEditing.Text);
                operateProcess = OperateProcess.RightNum;
                break;
            }
            //1.如果文本框中第一位是"0"只能输入"0.";
            //2.如果文本框中第一位是"0"不能在输入"0";
            //3.如果文本框中第一位是"0"输入其他数字"0"自动删除
            if (tbOperateNumEditing.Text == "0")
            {
                tbOperateNumEditing.Text = "0.";
            }

            //1.检测第一操作数(左操作数)是否正在编辑中
        }
Example #5
0
        private void btnequal_Click(object sender, EventArgs e)
        {
            operateProcess = OperateProcess.Result;
            switch (operateSign)
            {
            case "+":
                jsResult = leftNum + rightNum;
                break;

            case "-":
                jsResult = leftNum - rightNum;
                break;

            case "*":
                jsResult = leftNum * rightNum;
                break;

            case "/":
                jsResult = leftNum / rightNum;
                break;
            }
            leftNum = jsResult;
            tbOperateNumEditing.Text = jsResult.ToString();
        }
Example #6
0
        private void btnequal_Click(object sender, EventArgs e)
        {
            //通过开关进行判断;
            switch (operateProcess)
            {
            //1.检测为左操作数后清空文本框;
            case OperateProcess.LeftNum:
                break;

            //2.检测为右操作数后的运算;
            case OperateProcess.RightNum:
                switch (operateSign)
                {
                case "+":
                    jsResult = leftNum + rightNum;
                    break;

                case "-":
                    jsResult = leftNum - rightNum;
                    break;

                case "*":
                    jsResult = leftNum * rightNum;
                    break;

                case "/":
                    jsResult = leftNum / rightNum;
                    break;
                }
                tbOperateNumEditing.Text = jsResult.ToString();
                operateProcess           = OperateProcess.Result;
                leftNum = jsResult;
                tbOperateNumRecord.Text = "";
                break;

            //3.检测为结果操作数后的运算;
            case OperateProcess.Result:
                switch (operateSign)
                {
                case "+":
                    jsResult += rightNum;
                    break;

                case "-":
                    jsResult -= rightNum;
                    break;

                case "*":
                    jsResult *= rightNum;
                    break;

                case "/":
                    jsResult /= rightNum;
                    break;
                }
                tbOperateNumEditing.Text = jsResult.ToString();
                operateProcess           = OperateProcess.Result;
                leftNum = jsResult;
                tbOperateNumRecord.Text = "";
                break;
            }
        }
Example #7
0
        private void btnadd_Click(object sender, EventArgs e)
        {
            //1.计算器加载完后开始就点击(最开始点击)
            switch (operateProcess)
            {
            //2.输入完左操作数后点击
            case OperateProcess.LeftNum:
                operateSign = ((Button)sender).Text;
                tbOperateNumEditing.Text = "";
                tbOperateNumRecord.Text += " " + ((Button)sender).Text + " ";
                operateProcess           = OperateProcess.RightNum;
                rightNum = leftNum;
                break;

            //3.输入完右操作数后点击
            case OperateProcess.RightNum:
                if (!string.IsNullOrEmpty(tbOperateNumEditing.Text))
                {
                    switch (operateSign)
                    {
                    case "+":
                        jsResult = leftNum + rightNum;
                        break;

                    case "-":
                        jsResult = leftNum - rightNum;
                        break;

                    case "*":
                        jsResult = leftNum * rightNum;
                        break;

                    case "/":
                        jsResult = leftNum / rightNum;
                        break;
                    }
                    tbOperateNumEditing.Text = jsResult.ToString();
                    operateProcess           = OperateProcess.Result;
                    leftNum                  = jsResult;
                    rightNum                 = jsResult;
                    operateSign              = ((Button)sender).Text;
                    tbOperateNumRecord.Text += " " + ((Button)sender).Text + " ";
                    break;
                }
                else
                {
                    operateSign              = ((Button)sender).Text;
                    tbOperateNumRecord.Text  = tbOperateNumRecord.Text.Remove(tbOperateNumRecord.Text.Length - 3);
                    tbOperateNumRecord.Text += " " + ((Button)sender).Text + " ";
                    break;
                }

            //4.多次重复点击
            case OperateProcess.Result:
                operateSign = ((Button)sender).Text;
                if (!string.IsNullOrEmpty(tbOperateNumRecord.Text))
                {
                    tbOperateNumRecord.Text  = tbOperateNumRecord.Text.Remove(tbOperateNumRecord.Text.Length - 3);
                    tbOperateNumRecord.Text += " " + ((Button)sender).Text + " ";
                }
                else
                {
                    tbOperateNumRecord.Text  = tbOperateNumEditing.Text;
                    tbOperateNumEditing.Text = "";
                    tbOperateNumRecord.Text += " " + ((Button)sender).Text + " ";
                    rightNum = leftNum;
                }
                break;
            }
        }