public CalcMachine(iVarMgr inst, StreamReader srRules) { dict = inst; //操作符集合 opSet.Add("+", 1); opSet.Add("-", 1); opSet.Add("*", 2); opSet.Add("/", 2); Def_Fun.Add("CalcTax"); //計算公式集 string line = null; while ((line = srRules.ReadLine()) != null) { rules.Add(line); } srRules.Close(); }
/*運算器構造,變數管理器iVarMgr 和 運算式文件名 filename */ public CalcMachine(iVarMgr inst, string rule_o) { dict = inst; //操作符集合 opSet.Add("+", 1); opSet.Add("-", 1); opSet.Add("*", 2); opSet.Add("/", 2); Def_Fun.Add("CalcTax"); //計算公式集 string[] lines = rule_o.Split('\n'); for (int i = 0; i < lines.Length; i++) { lines[i] = lines[i].TrimEnd(); if (lines[i].Equals("")) { continue; } rules.Add(lines[i]); } }
public static void run_cx(iVarMgr tvm, string srRules, TextWriter _output) { //SampleVarMgr tvm = new SampleVarMgr(); CalcMachine cs = new CalcMachine(tvm, srRules); /*顯示運算式中變數值 */ _output.WriteLine("Initalize Variables:"); foreach (DictionaryEntry entry in tvm.getHashtable()) { _output.WriteLine(entry.Key + " = " + entry.Value); } _output.WriteLine("---------------"); cs.Cal(); /*顯示運算式中變數值 */ _output.WriteLine("Values After Calculation:"); foreach (DictionaryEntry entry in tvm.getHashtable()) { _output.WriteLine(entry.Key + " = " + entry.Value); } _output.WriteLine("---------------"); }