Beispiel #1
0
        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();
        }
Beispiel #2
0
 /*運算器構造,變數管理器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]);
     }
 }
Beispiel #3
0
        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("---------------");
        }