private float CalcManagement(float[] _SetOfNumber, string[] _SetOfSymbol) { CalcParameter clc = new CalcParameter(); clc = CalMultiplyDevide(_SetOfNumber, _SetOfSymbol); float result = CalPlusMinus(clc.SetOfNumber, clc.SetOfSymbol); return(result); }
private CalcParameter CalMultiplyDevide(float[] _SetOfNumber, string[] _SetOfSymbol) { CalcParameter calcParameter = new CalcParameter(); int iSymbolIndexCount = _SetOfSymbol.Count(); float[] SetOfNumber = _SetOfNumber; string[] SetOfSymbol = _SetOfSymbol; float tempResult = 0; int iSymbolIndex = 0; int iNumberIndex = 0; // 4/2+3/2*4 for (int i = 0; i <= iSymbolIndexCount; i++) { foreach (var item in SetOfSymbol) { if ((item == "/") || (item == "*")) { if (item == "/") { tempResult = CalcDevide(SetOfNumber[iNumberIndex], SetOfNumber[iNumberIndex + 1]); SetOfNumber = reArrangeNumber(SetOfNumber, tempResult, iNumberIndex); SetOfSymbol = reArrangeSymbol(SetOfSymbol, iSymbolIndex); goto OUTLOOP; } if (item == "*") { tempResult = CalcMultiply(SetOfNumber[iNumberIndex], SetOfNumber[iNumberIndex + 1]); SetOfNumber = reArrangeNumber(SetOfNumber, tempResult, iNumberIndex); SetOfSymbol = reArrangeSymbol(SetOfSymbol, iSymbolIndex); goto OUTLOOP; } } iSymbolIndex += 1; iNumberIndex += 1; } OUTLOOP: { iSymbolIndex = 0; iNumberIndex = 0; } } calcParameter.SetOfSymbol = SetOfSymbol; calcParameter.SetOfNumber = SetOfNumber; return(calcParameter); }