void Compute2(bool isInput, string msg) { if (isInput) { calcState = CalcState.Compute2; resultNumber = tempNumber; tempNumber = ""; operation = msg; Calculate(); displayMsg(resultNumber); } else if (Rules.IsNonZeroDigit(msg)) { AccumulateDigit(true, msg); } else if (Rules.IsZero(msg)) { Zero(true, msg); } else if (Rules.IsOperator(msg)) { operation = ""; tempNumber = resultNumber; Compute(true, msg); } else if (Rules.IsStrange(msg)) { operation = ""; tempNumber = resultNumber; Compute2(true, msg); } else if (Rules.IsClear(msg)) { operation = ""; tempNumber = resultNumber; Zero(true, msg); } else if (Rules.IsDot(msg)) { AccumulateDigit(true, msg); } }
void Zero(bool isInput, string msg) { if (isInput) { calcState = CalcState.Zero; tempNumber = "0"; resultNumber = "0"; displayMsg(tempNumber); } else { if (Rules.IsNonZeroDigit(msg)) { resultNumber = ""; tempNumber = ""; AccumulateDigit(true, msg); } else if (Rules.IsOperator(msg)) { resultNumber = "0"; Compute(true, msg); } else if (Rules.IsEqualSign(msg)) { Result(true, msg); } else if (Rules.IsStrange(msg)) { Compute2(true, msg); } else if (Rules.IsClear(msg)) { Zero(true, msg); } else if (Rules.IsDot(msg)) { AccumulateDigit(true, msg); } } }
void Compute(bool isInput, string msg) { if (isInput) { calcState = CalcState.Compute; if (operation.Length > 0) { Calculate(); displayMsg(resultNumber); } else { resultNumber = tempNumber; } tempNumber = ""; operation = msg; } else { if (Rules.IsDigit(msg)) { AccumulateDigit(true, msg); } else if (Rules.IsClear(msg)) { tempNumber = ""; Zero(true, msg); } else if (Rules.IsDot(msg)) { AccumulateDigit(true, msg); } } }
void AccumulateDigit(bool isInput, string msg) { if (isInput) { calcState = CalcState.AccumulateDigit; tempNumber += msg; displayMsg(tempNumber); } else { if (Rules.IsDigit(msg)) { AccumulateDigit(true, msg); } else if (Rules.IsDot(msg)) { AccumulateDigit(true, msg); } else if (Rules.IsOperator(msg)) { Compute(true, msg); } else if (Rules.IsEqualSign(msg)) { Result(true, msg); } else if (Rules.IsStrange(msg)) { Compute2(true, msg); } else if (Rules.IsClear(msg)) { Zero(true, msg); } } }