Example #1
0
 private void Constant_Click(object sender, EventArgs e)
 {
     if (HandleEquation.IsGeneralOp(equation.Last()))
     {
         if (((Button)sender).Text == "e")
         {
             equation += "e";
         }
         else
         {
             equation += "pi";
         }
         richTxtEquation.Text += ((Button)sender).Text;
     }
     else
     {
         if (((Button)sender).Text == "e")
         {
             equation = HandleEquation.RemoveLastUnit(equation) + "e";
         }
         else
         {
             equation = HandleEquation.RemoveLastUnit(equation) + "pi";
         }
         richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + ((Button)sender).Text;
     }
 }
Example #2
0
        private void FFunction_Click(object sender, EventArgs e)
        {
            string tail  = HandleEquation.GetLastUnit(equation);
            string tail2 = HandleEquation.GetLastUnit(richTxtEquation.Text);

            switch (((ToolStripMenuItem)sender).Name)
            {
            case "toolStripMenuItemAbs":
                if (tail2[0] == '|')
                {
                    break;                          //已经添加过绝对值符,不再添加
                }
                equation             = HandleEquation.RemoveLastUnit(equation) + "abs(" + tail + ")";
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + "|" + tail2 + "|";
                break;

            case "toolStripMenuItemFloor":
                equation             = HandleEquation.RemoveLastUnit(equation) + "floor(" + tail + ")";
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + "⌊" + tail2 + "⌋";
                break;

            case "toolStripMenuItemCeil":
                equation             = HandleEquation.RemoveLastUnit(equation) + "ceil(" + tail + ")";
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + "⌈" + tail2 + "⌉";
                break;

            default:
                break;
            }
        }
Example #3
0
        private void btnFac_Click(object sender, EventArgs e)
        {
            string tail = HandleEquation.GetLastUnit(equation);

            equation = HandleEquation.RemoveLastUnit(equation) + "(" + tail + ")!";
            string tail2 = HandleEquation.GetLastUnit(richTxtEquation.Text);

            richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + "(" + tail2 + ")!";
        }
Example #4
0
        private void Function_Click(object sender, EventArgs e)
        {
            string tail = HandleEquation.GetLastUnit(equation);

            equation = HandleEquation.RemoveLastUnit(equation) + ((ToolStripMenuItem)sender).Text + "(" + tail + ")";
            string tail2 = HandleEquation.GetLastUnit(richTxtEquation.Text);

            richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + ((ToolStripMenuItem)sender).Text + "(" + tail2 + ")";
        }
Example #5
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (equation.Length == 1)
            {
                equation             = "0";
                richTxtEquation.Text = "0";
            }
            else if (equation.Last() >= 48 && equation.Last() <= 57)
            {
                equation             = equation.Substring(0, equation.Length - 1);
                richTxtEquation.Text = richTxtEquation.Text.Substring(0, richTxtEquation.Text.Length - 1);
            }
            else if (equation.Last() == '.')
            {
                equation             = equation.Substring(0, equation.Length - 1);
                richTxtEquation.Text = richTxtEquation.Text.Substring(0, richTxtEquation.Text.Length - 1);
                isClickPoint         = false;
            }
            else if (HandleEquation.IsGeneralOp(equation.Last()))
            {
                equation             = equation.Substring(0, equation.Length - 1);
                richTxtEquation.Text = richTxtEquation.Text.Substring(0, richTxtEquation.Text.Length - 1);
                string tail = HandleEquation.GetLastUnit(equation);
                if (tail.Contains("."))
                {
                    isClickPoint = true;
                }
                else
                {
                    isClickPoint = false;
                }
            }
            else
            {
                equation             = HandleEquation.RemoveLastUnit(equation);
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text);
                isClickPoint         = false;
            }

            if (equation == "" || richTxtEquation.Text == "")
            {
                equation             = "0";
                richTxtEquation.Text = "0";
            }
        }
Example #6
0
 private void LeftBkt_Click(object sender, EventArgs e)
 {
     if (richTxtEquation.Text == "0")
     {
         equation = richTxtEquation.Text = ((Button)sender).Text;
         bktAmount++;
     }
     else if (!HandleEquation.IsGeneralOp(equation.Last()))
     {
         return;
     }
     else
     {
         richTxtEquation.Text += ((Button)sender).Text;
         equation             += ((Button)sender).Text;
         bktAmount++;
     }
 }
Example #7
0
        private void Rand_Click(object sender, EventArgs e)
        {
            Random rd         = new Random();
            int    randInt    = rd.Next(100, 9999);
            double randDouble = randInt / 10000.0;
            string randString = randDouble.ToString();

            if (HandleEquation.IsGeneralOp(equation.Last()))
            {
                equation             += randString;
                richTxtEquation.Text += randString;
            }
            else
            {
                equation             = HandleEquation.RemoveLastUnit(equation) + randString;
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + randString;
            }
        }
Example #8
0
 private void btnAnswer_Click(object sender, EventArgs e)
 {
     try
     {
         if (HandleEquation.IsGeneralOp(equation.Last()))
         {
             MessageBox.Show("请在算式最后输入参与计算的数字!");
         }
         else
         {
             Function.Function func = new Function.Function(equation);
             equation = richTxtEquation.Text = func.GetValue().ToString();
         }
     }
     catch
     {
         MessageBox.Show("不支持计算此算式,请重新输入!");
     }
 }
Example #9
0
 private void RightBkt_Click(object sender, EventArgs e)
 {
     if (bktAmount <= 0)
     {
         return;
     }
     else if (HandleEquation.IsGeneralOp(equation.Last()))
     {
         richTxtEquation.Text = richTxtEquation.Text.Substring(0, richTxtEquation.Text.Length - 1) + ((Button)sender).Text;
         equation             = equation.Substring(0, equation.Length - 1) + ((Button)sender).Text;
         bktAmount--;
     }
     else
     {
         richTxtEquation.Text += ((Button)sender).Text;
         equation             += ((Button)sender).Text;
         bktAmount--;
     }
 }
Example #10
0
 public void GeneralOp_Click(object sender, EventArgs e)
 {
     if (HandleEquation.IsGeneralOp(equation.Last()))
     {
         return;
     }
     richTxtEquation.Text += ((Button)sender).Text;
     isClickPoint          = false;
     if (((Button)sender).Text == "×")
     {
         equation += "*";
     }
     else if (((Button)sender).Text == "÷")
     {
         equation += "/";
     }
     else
     {
         equation += ((Button)sender).Text;
     }
 }
Example #11
0
 private void MouseRight_Click(object sender, MouseEventArgs e)
 {
     if (((Button)sender).Text != "lg" && e.Button == MouseButtons.Right)
     {
         if (((Button)sender).Text == "log y(x)")
         {
             someLog.LogBase = "";
         }
         if (setBaseForm.ShowDialog() == DialogResult.OK)
         {
             setBaseForm.Somelog.LogBase = HandleEquation.RemoveFrontZero(setBaseForm.Somelog.LogBase);
             someLog = setBaseForm.Somelog;
             if (string.IsNullOrEmpty(someLog.LogBase))
             {
                 btnLog.Text = "log y(x)";
             }
             else
             {
                 btnLog.Text = "log " + someLog.LogBase + "(x)";
             }
         }
     }
 }
Example #12
0
        private void btnNega_Click(object sender, EventArgs e)
        {
            string tail         = HandleEquation.GetLastUnit(equation);
            string tail2        = HandleEquation.GetLastUnit(richTxtEquation.Text);
            string removedTail  = HandleEquation.RemoveLastUnit(equation);
            string removedTail2 = HandleEquation.RemoveLastUnit(richTxtEquation.Text);

            if (removedTail.Length == 0)   //输入是一个正数
            {
                equation             = "-" + tail;
                richTxtEquation.Text = "-" + tail2;
            }
            else if (removedTail.Last() == '-' && removedTail.Length == 1)
            {                              //输入是一个负数
                equation             = tail;
                richTxtEquation.Text = tail2;
            }
            else
            {
                equation             = removedTail + HandleEquation.ChangeToNega(tail);
                richTxtEquation.Text = removedTail2 + HandleEquation.ChangeToNega(tail2);
            }
        }
Example #13
0
        private void ShiftManaged_Click(object sender, EventArgs e)
        {
            switch (((Button)sender).Text)
            {
            case "x³":
                equation             += "^3";
                richTxtEquation.Text += "^3";
                break;

            case "x²":
                equation             += "^2";
                richTxtEquation.Text += "^2";
                break;

            case "^":
                equation             += "^";
                richTxtEquation.Text += "^";
                break;

            case "lg":
                string tail = HandleEquation.GetLastUnit(equation);
                equation = HandleEquation.RemoveLastUnit(equation) + "log10(" + tail + ")";
                string tail0 = HandleEquation.GetLastUnit(richTxtEquation.Text);
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + ((Button)sender).Text + "(" + tail0 + ")";
                break;

            case "ln":
                string tail1 = HandleEquation.GetLastUnit(equation);
                equation = HandleEquation.RemoveLastUnit(equation) + ((Button)sender).Text + "(" + tail1 + ")";
                string tail2 = HandleEquation.GetLastUnit(richTxtEquation.Text);
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + ((Button)sender).Text + "(" + tail2 + ")";
                break;

            case "²√x":
                equation += "^(1/2)";
                string tail3 = HandleEquation.GetLastUnit(richTxtEquation.Text);
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + "²√(" + tail3 + ")";
                break;

            case "³√x":
                equation += "^(1/3)";
                string tail4 = HandleEquation.GetLastUnit(richTxtEquation.Text);
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + "³√(" + tail4 + ")";
                break;

            case "1/x":
                string tail5 = HandleEquation.GetLastUnit(equation);
                equation = HandleEquation.RemoveLastUnit(equation) + "1/(" + tail5 + ")";
                string tail6 = HandleEquation.GetLastUnit(richTxtEquation.Text);
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + "1/(" + tail6 + ")";
                break;

            case "e^x":
                string tail7 = HandleEquation.GetLastUnit(equation);
                equation = HandleEquation.RemoveLastUnit(equation) + "e^(" + tail7 + ")";
                string tail8 = HandleEquation.GetLastUnit(richTxtEquation.Text);
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + "e^(" + tail8 + ")";
                break;

            case "log y(x)":
                MessageBox.Show("请先右键此按钮设置底数。");
                break;

            default:
                string tail9 = HandleEquation.GetLastUnit(equation);
                equation = HandleEquation.RemoveLastUnit(equation) + "log" + someLog.LogBase + "(" + tail9 + ")";
                string tail10 = HandleEquation.GetLastUnit(richTxtEquation.Text);
                richTxtEquation.Text = HandleEquation.RemoveLastUnit(richTxtEquation.Text) + "log " + someLog.LogBase + "(" + tail10 + ")";
                break;
            }
        }