예제 #1
0
        static void Main(string[] args)
        {
            int result = 1;

            while (result == 1)
            {
                CSharpExpert.firstStart();

                Console.WriteLine("Show comments during consultation: ");
                Console.WriteLine("\t1 -- yes");
                Console.WriteLine("\t2 -- no");
                ProductionSystem.showComments = (getInt("Enter a value from 1 to 2: ", 2) == 1)? true : false;

                Console.Out.WriteLine("Type of grain: ");
                Console.Out.WriteLine("\t1 -- very coarse grain");
                Console.Out.WriteLine("\t2 -- coarse grain");
                Console.Out.WriteLine("\t3 -- medium grain");
                Console.Out.WriteLine("\t4 -- fine grain");
                Console.Out.WriteLine("\t5 -- very fine grain");
                (CSharpExpert.getDataFrame("Grain").getSlot("grains")).slotValue = getInt("Enter a value from 1 to 5: ", 5);

                Console.Out.WriteLine("Humidity of the charge: ");
                Console.Out.WriteLine("\t1 -- dry");
                Console.Out.WriteLine("\t2 -- normal");
                Console.Out.WriteLine("\t3 -- very wet");
                (CSharpExpert.getDataFrame("Charge").getSlot("humidity")).slotValue = getInt("Enter a value from 1 to 3: ", 3);

                Console.Out.WriteLine("Gas amount in the charge");
                Console.Out.WriteLine("\t1 -- low");
                Console.Out.WriteLine("\t2 -- less than normal");
                Console.Out.WriteLine("\t3 -- normal");
                Console.Out.WriteLine("\t4 -- more than normal");
                Console.Out.WriteLine("\t5 -- high");
                (CSharpExpert.getDataFrame("Charge").getSlot("gasAmount")).slotValue = getInt("Enter a value from 1 to 5: ", 5);
                //
                QualityOfGlass.Quality quality  = QualityOfGlass.Quality.undefined;
                QualityOfGlass         ruleset1 = (QualityOfGlass)CSharpExpert.getRulesetFrame("QualityOfGlass");
                ruleset1.initContext();
                ruleset1.initParameters(quality);
                ProductionSystem.consult("QualityOfGlass");

                ruleset1.getRefValues(ref quality);
                Console.WriteLine("~~~~~~Result~~~~~~");
                Console.WriteLine("quartzous grains: {0}", (Glass.GrainType)(CSharpExpert.getDataFrame("Glass").getSlot("grainsAmount")).slotValue);
                Console.WriteLine("streakiness: {0}", (Glass.StreakinessType)(CSharpExpert.getDataFrame("Glass").getSlot("streakiness")).slotValue);
                Console.WriteLine("clearing: {0}", (Glass.ClearingType)(CSharpExpert.getDataFrame("Glass").getSlot("clearing")).slotValue);
                Console.WriteLine("foaming: {0}", (Glass.FoamingType)(CSharpExpert.getDataFrame("Glass").getSlot("foaming")).slotValue);
                Console.WriteLine("homogeneity of the charge: {0}", (Glass.HomogeneityType)(CSharpExpert.getDataFrame("Glass").getSlot("homogeneity")).slotValue);
                Console.WriteLine("QUALITY ESTIMATION: {0}", quality);

                Console.WriteLine();
                Console.WriteLine("1 -- one more consultation");
                Console.WriteLine("2 -- exit");
                result = getInt("Enter a value from 1 to 2: ", 2);
            }
        }
예제 #2
0
 public void getRefValues(ref QualityOfGlass.Quality quality)
 {
     quality = QualityOfGlass.quality;
 }
예제 #3
0
 public void initParameters(QualityOfGlass.Quality quality)
 {
     isParamsInitialized    = true;
     QualityOfGlass.quality = quality;
 }