コード例 #1
0
        /// <summary>
        /// Initialize and return multiQ object
        /// </summary>
        /// <returns></returns>
        public static multiQ InitMultiQObject()
        {
            Console.WriteLine("----------------------------------------------------");
            Console.WriteLine("Initialize MultiQ object.");
            multiQ mObj = new multiQ();

            return(mObj);
        }
コード例 #2
0
 /// <summary>
 /// Pop Factor objects from MultiQ
 /// </summary>
 /// <param name="obj">multiQ object</param>
 public static void PopFactorObjectFromMultiQ(multiQ obj)
 {
     Console.WriteLine("\n");
     Console.WriteLine(" Begin pop Factor objects from MutliQ.");
     while (obj.PopFactorObject())
     {
         Console.WriteLine("   Factor object popped.");
     }
     Console.WriteLine(" End pop Factor objects from MutliQ.");
 }
コード例 #3
0
        /// <summary>
        /// Push Factor objects to multiQ class
        /// </summary>
        /// <param name="qObj">initialized mutliQ object</param>
        /// <param name="arrFactorObj">array contains Factor objects</param>
        /// <param name="factors">array contains factor values</param>
        public static void PushFactorObjectsToMultiQ(multiQ qObj, factor[] arrFactorObj, int[] factors)
        {
            Console.WriteLine(" Begin push Factor objects to MultiQ.");
            for (int i = 0; i < ARR_SIZE; i++)
            {
                qObj.PushFactorObj(arrFactorObj[i]);
            }
            string strFactorValues = ConvertArrayToString(factors);

            Console.WriteLine(" Factor values: {0}", strFactorValues);
            Console.WriteLine(" End push Factor objects to MultiQ.");
        }
コード例 #4
0
        /// <summary>
        /// Create, intialize and return factor object array
        /// </summary>
        /// <param name="rand">intialize random object</param>
        /// <param name="obj">initialized mutliQ object</param>
        /// <param name="factors">int array to hold factor values</param>
        /// <returns></returns>
        public static factor[] InitFactorObject(Random rand, multiQ obj, int[] factors)
        {
            Console.WriteLine("Initialize Factor objects.");
            factor[] fObj = new factor[ARR_SIZE];
            int      randNum;

            for (int i = 0; i < ARR_SIZE; i++)
            {
                randNum    = rand.Next(MIN_FACTOR, MAX_FACTOR);
                factors[i] = (randNum);
                fObj[i]    = new factor((uint)randNum);
            }
            return(fObj);
        }
コード例 #5
0
        /// <summary>
        /// Display MultiQ stats
        /// </summary>
        /// <param name="obj">multiQ object</param>
        /// <param name="queriedNumbers">contain list of queried numbers</param>
        /// <param name="factors">factor values</param>
        public static void DisplayMultiQStat(multiQ obj, int[] queriedNumbers, int[] factors)
        {
            string strFactorValues = ConvertArrayToString(factors);
            string strQueryNumbers = ConvertArrayToString(queriedNumbers);

            int[]  arrSuccessQueriedNumbers = obj.GetQueriedNumberList();
            string strSuccessQueriedNumbers = ParseArrayValuesToString(arrSuccessQueriedNumbers);

            Console.WriteLine("  Total queried numbers: {0}", strQueryNumbers);
            Console.WriteLine("  Factor values: {0}", strFactorValues);
            Console.WriteLine("  Stats from MultiQ class");
            Console.WriteLine("    Successful queried numbers: {0}", strSuccessQueriedNumbers);
            Console.WriteLine("    Max queried number: {0}", obj.GetMaxQuery());
            Console.WriteLine("    Min queried number: {0}", obj.GetMinQuery());
            Console.WriteLine("    Average queried number: {0}", obj.GetAvgQuery());
            Console.WriteLine("    Total successful queried count: {0}", obj.GetQueryCount());
        }
コード例 #6
0
        /// <summary>
        /// Determine if number is multiple of factor value
        /// </summary>
        /// <param name="obj">multiQ object</param>
        /// <param name="rand">Random object</param>
        /// <param name="factors">contain factor values</param>
        /// <param name="arraySize">array size</param>
        public static void QueryMultiQ(multiQ obj, Random rand, int[] factors)
        {
            Console.WriteLine("\n");
            Console.WriteLine(" Begin query MultiQ.");
            int  randNum;
            uint queryCount;

            int[] arrQueryNumbers = new int[ARR_SIZE];
            for (int i = 0; i < ARR_SIZE; i++)
            {
                randNum            = rand.Next(RAND_MIN, RAND_MAX);
                arrQueryNumbers[i] = randNum;
                queryCount         = obj.Query((uint)randNum);
            }
            DisplayMultiQStat(obj, arrQueryNumbers, factors);
            Console.WriteLine(" End query MultiQ.");
        }
コード例 #7
0
        /// <summary>
        /// Reset MultiQ private data members to initial value
        /// </summary>
        /// <param name="qObj"></param>
        public static void ResetMultiQObject(multiQ qObj)
        {
            Console.WriteLine("\n");
            Console.WriteLine(" Begin reset MultiQ object");
            qObj.Reset();
            int[]  arrSuccessQueriedNumbers = qObj.GetQueriedNumberList();
            string strSuccessQueriedNumbers = ParseArrayValuesToString(arrSuccessQueriedNumbers);

            Console.WriteLine("  Reset MultiQ object");

            Console.WriteLine("  Stats from MultiQ class");
            Console.WriteLine("    Successful queried numbers: {0}", strSuccessQueriedNumbers);
            Console.WriteLine("    Max queried number: {0}", qObj.GetMaxQuery());
            Console.WriteLine("    Min queried number: {0}", qObj.GetMinQuery());
            Console.WriteLine("    Average queried number: {0}", qObj.GetAvgQuery());
            Console.WriteLine("    Total successful queried count: {0}", qObj.GetQueryCount());

            Console.WriteLine(" End reset MultiQ object");
            Console.WriteLine("\n");
        }
コード例 #8
0
        static void Main(string[] args)
        {
            Random rand = new Random();

            ProgramIntro();
            int[] arrFactorValues = new int[ARR_SIZE];
            range rangeObj        = InitRangeObject(rand, arrFactorValues);

            TestPingWithRandomNumber(rangeObj, arrFactorValues, rand);
            ReplaceRangeFactor(rangeObj, arrFactorValues, rand);
            TestPingWithRandomNumber(rangeObj, arrFactorValues, rand);

            multiQ multiQObj = InitMultiQObject();

            factor[] arrFactorObj = InitFactorObject(rand, multiQObj, arrFactorValues);
            PushFactorObjectsToMultiQ(multiQObj, arrFactorObj, arrFactorValues);

            QueryMultiQ(multiQObj, rand, arrFactorValues);
            PopFactorObjectFromMultiQ(multiQObj);
            ResetMultiQObject(multiQObj);

            Console.Write("Press any key to terminate program... ");
            Console.ReadKey();
        }