/// <summary> /// 除号 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDivide_Click(object sender, RoutedEventArgs e) { if (Calculator.IsFirstNumber(tbkAssistantOperationFrame.Text)) //当副计算框为空时 { if (Calculator.IsOperator(tbkMainOperationFrame.Text)) //当主计算框中包含此运算符时 { if (tbkMainOperationFrame.Text[tbkMainOperationFrame.Text.Length - 1].ToString() != CalculatorInfo.Divide) { string temp = tbkMainOperationFrame.Text.Remove(-1); tbkMainOperationFrame.Text = temp + CalculatorInfo.Divide; } else { return; } } if (tbkMainOperationFrame.Text == "0")//当主运算框中的文本为“0”时 { info.FirstNumber = "0"; tbkMainOperationFrame.Text = info.FirstNumber + CalculatorInfo.Divide; } else//当主运算框中的文本不为“0”时 { tbkMainOperationFrame.Text = info.FirstNumber + CalculatorInfo.Divide; } } else //当副计算框不为空时 { if (Calculator.IsOperator(tbkMainOperationFrame.Text))//当主计算框中一包含此运算符时 { if (tbkMainOperationFrame.Text[tbkMainOperationFrame.Text.Length - 1].ToString() != CalculatorInfo.Multiple) { string temp = tbkMainOperationFrame.Text.Remove(-1); tbkMainOperationFrame.Text = temp + CalculatorInfo.Multiple; } else { return; } } else { if (Calculator.IsOperator(tbkMainOperationFrame.Text)) { tbkMainOperationFrame.Text = tbkMainOperationFrame.Text.Remove(-1); } string temp = tbkAssistantOperationFrame.Text + tbkMainOperationFrame.Text; if (temp.Contains(CalculatorInfo.Plus)) { this.tbkAssistantOperationFrame.Text = info.FirstNumber.ToString() + CalculatorInfo.Plus + info.SecondNumber.ToString(); info.FirstNumber = (Convert.ToDouble(info.FirstNumber) + Convert.ToDouble(info.SecondNumber)).ToString(); this.tbkMainOperationFrame.Text = info.FirstNumber + CalculatorInfo.Plus; } if (temp.Contains(CalculatorInfo.Subtract)) { this.tbkAssistantOperationFrame.Text = info.FirstNumber.ToString() + CalculatorInfo.Subtract + info.SecondNumber.ToString(); info.FirstNumber = (Convert.ToDouble(info.FirstNumber) - Convert.ToDouble(info.SecondNumber)).ToString(); this.tbkMainOperationFrame.Text = info.FirstNumber + CalculatorInfo.Subtract; } if (temp.Contains(CalculatorInfo.Multiple)) { this.tbkAssistantOperationFrame.Text = info.FirstNumber.ToString() + CalculatorInfo.Multiple + info.SecondNumber.ToString(); info.FirstNumber = (Convert.ToDouble(info.FirstNumber) * Convert.ToDouble(info.SecondNumber)).ToString(); this.tbkMainOperationFrame.Text = info.FirstNumber + CalculatorInfo.Multiple; } if (temp.Contains(CalculatorInfo.Divide)) { this.tbkAssistantOperationFrame.Text = info.FirstNumber.ToString() + CalculatorInfo.Divide + info.SecondNumber.ToString(); info.FirstNumber = (Convert.ToDouble(info.FirstNumber) / Convert.ToDouble(info.SecondNumber)).ToString(); this.tbkMainOperationFrame.Text = info.FirstNumber + CalculatorInfo.Divide; } } } }
/// <summary> /// 数字 0 的点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnZero_Click(object sender, RoutedEventArgs e) { if (Calculator.IsFirstNumber(tbkAssistantOperationFrame.Text)) //当副计算框为空时 { if (Calculator.IsOperator(tbkMainOperationFrame.Text)) //当主计算框中包含此运算符时 { if (this.tbkMainOperationFrame.Text.Length >= 3 && this.tbkMainOperationFrame.Text[tbkMainOperationFrame.Text.Length - 1].ToString() == "0" && Calculator.IsOperator(tbkMainOperationFrame.Text[tbkMainOperationFrame.Text.Length - 2].ToString())) { return; } else { tbkAssistantOperationFrame.Text = tbkMainOperationFrame.Text; info.SecondNumber += "0"; tbkMainOperationFrame.Text = info.SecondNumber; } } else//当主计算框中不包含此运算符时 { if (tbkMainOperationFrame.Text == "0") { return; } else { info.FirstNumber += "0"; tbkMainOperationFrame.Text = info.FirstNumber; } } } else//当副计算框不为空时 { if (Calculator.IsOperator(tbkMainOperationFrame.Text))//当主计算框中包含此运算符时 { if (this.tbkMainOperationFrame.Text.Length >= 3 && this.tbkMainOperationFrame.Text[tbkMainOperationFrame.Text.Length - 1].ToString() == "0" && Calculator.IsOperator(tbkMainOperationFrame.Text[tbkMainOperationFrame.Text.Length - 2].ToString())) { return; } else { tbkAssistantOperationFrame.Text = tbkMainOperationFrame.Text; info.SecondNumber = "0"; tbkMainOperationFrame.Text = info.SecondNumber; } } else//当主计算框中不包含此运算符时 { if (tbkMainOperationFrame.Text == "0") { return; } else { info.SecondNumber += "0"; tbkMainOperationFrame.Text = info.SecondNumber; } } } }