public void HandleSubtraction(Calculator calculator, CalculatorOperations calcOps) { if (currentOperation == CalculatorOperations.CurrentOperation.Equals || currentOperation == CalculatorOperations.CurrentOperation.SquareRoot || currentOperation == CalculatorOperations.CurrentOperation.Reciprocal && calculator.CurrentSubTotal != 0) { currentOperation = CalculatorOperations.CurrentOperation.Subtraction; calculator.OperationString = calculator.CurrentSubTotal + " - "; } else { if (calculator.CurrentSubTotal != 0) { calculator.CurrentSubTotal = calcOps.Subtraction(calculator.CurrentSubTotal, (double)calculator.CurrentDigit); calculator.OperationString += calculator.CurrentDigit + " - "; } else { calculator.CurrentSubTotal = (double)calculator.CurrentDigit; calculator.OperationString = calculator.CurrentDigit + " - "; } calcOps.DigitEntrySet = false; SetResultsString(calculator, false, calculator.CurrentSubTotal); ClearCurrentDigit(calculator); currentOperation = CalculatorOperations.CurrentOperation.Subtraction; } }
public void HandleMultiplication(Calculator calculator, CalculatorOperations calcOps) { if (currentOperation == CalculatorOperations.CurrentOperation.Equals || currentOperation == CalculatorOperations.CurrentOperation.SquareRoot || currentOperation == CalculatorOperations.CurrentOperation.Reciprocal) { currentOperation = CalculatorOperations.CurrentOperation.Multiplication; calculator.OperationString = calculator.CurrentSubTotal + " * "; } else { if (calculator.CurrentSubTotal != 0) { calculator.CurrentSubTotal = calcOps.Multiplication(calculator.CurrentSubTotal, (double)calculator.CurrentDigit); calculator.OperationString += calculator.CurrentDigit + " * "; } else { Console.WriteLine("0"); calculator.CurrentSubTotal = (double)calculator.CurrentDigit; calculator.OperationString = calculator.CurrentDigit + " * "; } calculator.OperationSet = true; calcOps.DigitEntrySet = false; ClearCurrentDigit(calculator); SetResultsString(calculator, false, calculator.CurrentSubTotal); currentOperation = CalculatorOperations.CurrentOperation.Multiplication; } }
public void HandleEquals(Calculator calculator, CalculatorOperations calcOps) { PerformOperation(calculator, calcOps); calculator.OperationString = ""; currentOperation = CalculatorOperations.CurrentOperation.Equals; calculator.OperationSet = true; Console.WriteLine("Current sub equals: " + calculator.CurrentSubTotal); }
public void HandleClear(Calculator calculator, CalculatorOperations calcOps) { calculator.ResultsString = "0"; calculator.OperationString = ""; calculator.CurrentDigit = 0; calculator.CurrentSubTotal = 0; calcOps.DecimalUsed = false; currentOperation = CalculatorOperations.CurrentOperation.NoOperation; }
public void HandleReciprocal(Calculator calculator, CalculatorOperations calcOps) { double numberToBeActioned; if (calcOps.DigitEntrySet) { numberToBeActioned = (double)calculator.CurrentDigit; calculator.CurrentSubTotal = (double)(1 / (calculator.CurrentDigit)); SetResultsString(calculator, false, calculator.CurrentSubTotal); } else { numberToBeActioned = calculator.CurrentSubTotal; calculator.CurrentSubTotal = 1 / (calculator.CurrentSubTotal); SetResultsString(calculator, false, calculator.CurrentSubTotal); } calculator.OperationString = "reciproc(" + numberToBeActioned + ")"; calcOps.DigitEntrySet = false; ClearCurrentDigit(calculator); SetResultsString(calculator, false, calculator.CurrentSubTotal); currentOperation = CalculatorOperations.CurrentOperation.Reciprocal; }
public void HandleSquareRoot(Calculator calculator, CalculatorOperations calcOps) { double numberToBeActioned; if (calcOps.DigitEntrySet) { numberToBeActioned = (double)calculator.CurrentDigit; calculator.CurrentSubTotal = Math.Sqrt((double)calculator.CurrentDigit); SetResultsString(calculator, false, calculator.CurrentSubTotal); } else { numberToBeActioned = calculator.CurrentSubTotal; calculator.CurrentSubTotal = Math.Sqrt(calculator.CurrentSubTotal); SetResultsString(calculator, false, calculator.CurrentSubTotal); } calculator.OperationString = "√(" + numberToBeActioned + ")"; calcOps.DigitEntrySet = false; ClearCurrentDigit(calculator); SetResultsString(calculator, false, calculator.CurrentSubTotal); currentOperation = CalculatorOperations.CurrentOperation.SquareRoot; }
public void HandleClearLast(Calculator calculator, CalculatorOperations calcOps) { calculator.CurrentDigit = 0; currentOperation = CalculatorOperations.CurrentOperation.NoOperation; SetResultsString(calculator, true, (double)calculator.CurrentDigit); }