/*
  * Override operator * to get intersection of two sets
  */
 public static OrderedUniqueIntegersSet operator *(OrderedUniqueIntegersSet uiSet1, OrderedUniqueIntegersSet uiSet2)
 {
     OrderedUniqueIntegersSet uiSetIntersection = new OrderedUniqueIntegersSet();
     foreach (int item in uiSet2.setOfItems)
     {
         if (uiSet1.Contains(item))
         {
             uiSetIntersection.AddItem(item);
         }
     }
     return uiSetIntersection;
 }
        /*
         * Override operator + to combine two sets
         */
        public static OrderedUniqueIntegersSet operator +(OrderedUniqueIntegersSet uiSet1, OrderedUniqueIntegersSet uiSet2)
        {
            OrderedUniqueIntegersSet uiSetUnion = new OrderedUniqueIntegersSet();

            foreach (int item in uiSet1.setOfItems)
            {
                uiSetUnion.AddItem(item);
            }
            foreach (int item in uiSet2.setOfItems)
            {
                uiSetUnion.AddItem(item);
            }
            return uiSetUnion;
        }
Exemple #3
0
        public static void PrintMenu()
        {
            Console.WriteLine("1. Пересечение множеств");
            Console.WriteLine("2. Объединение множеств");

            Console.Write("\nВведите [1-2] (Enter - выход): ");
            int i;
            if (!int.TryParse(Console.ReadLine(), out i))
            {
                ExitTestSystem(0);
            }

            Console.Clear();

            Console.WriteLine("Получаем множество Set1 (Set1_ordered) из файла (введите имя файла): ");
            string fileName = Console.ReadLine();
            UniqueIntegersSet uiset1 = new UniqueIntegersSet();
            OrderedUniqueIntegersSet uiset1Ordered = new OrderedUniqueIntegersSet();
            uiset1.ReadFromFile(fileName);
            uiset1Ordered.ReadFromFile(fileName);

            Console.WriteLine("Получаем множество Set2 (Set2_ordered) из файла (введите имя файла): ");
            fileName = Console.ReadLine();
            UniqueIntegersSet uiset2 = new UniqueIntegersSet();
            OrderedUniqueIntegersSet uiset2Ordered = new OrderedUniqueIntegersSet();
            uiset2.ReadFromFile(fileName);
            uiset2Ordered.ReadFromFile(fileName);

            switch (i)
            {
            case 1:
                Console.WriteLine("\n-- Пересечение множеств --\n");
                Console.WriteLine("Set1: {0}", uiset1);
                Console.WriteLine("Set2: {0}", uiset2);

                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                Console.WriteLine("\nПересечение: {0}", uiset1 * uiset2);
                stopwatch.Stop();
                Console.WriteLine("Время на пересечение: {0}ms", stopwatch.ElapsedMilliseconds);

                Console.WriteLine("\n-- Пересечение упорядоченных множеств --\n");
                Console.WriteLine("Set1_ordered: {0}", uiset1Ordered);
                Console.WriteLine("Set2_ordered: {0}", uiset2Ordered);

                stopwatch = new Stopwatch();
                stopwatch.Start();
                Console.WriteLine("\nПересечение: {0}", uiset1Ordered * uiset2Ordered);
                stopwatch.Stop();
                Console.WriteLine("Время на пересечение: {0}ms", stopwatch.ElapsedMilliseconds);

                break;
            case 2:
                Console.WriteLine("\n-- Объединение множеств --\n");
                Console.WriteLine("Set1: {0}", uiset1);
                Console.WriteLine("Set2: {0}", uiset2);

                stopwatch = new Stopwatch();
                stopwatch.Start();
                Console.WriteLine("\nОбъединение: {0}", uiset1 + uiset2);
                stopwatch.Stop();
                Console.WriteLine("Время на объединение: {0}ms", stopwatch.ElapsedMilliseconds);

                Console.WriteLine("\n-- Объединение упорядоченных множеств --\n");
                Console.WriteLine("Set1_ordered: {0}", uiset1Ordered);
                Console.WriteLine("Set2_ordered: {0}", uiset2Ordered);

                stopwatch = new Stopwatch();
                stopwatch.Start();
                Console.WriteLine("\nОбъединение: {0}", uiset1Ordered + uiset2Ordered);
                stopwatch.Stop();
                Console.WriteLine("Время на объединение: {0}ms", stopwatch.ElapsedMilliseconds);
                break;

            default:
                Console.WriteLine("Вы ввели неверный код. Вернитесь назад и попробуйте еще раз ;)");
                break;
            }
        }