예제 #1
0
        static void Main(string[] args)
        {
            MyNewCollection c1 = new MyNewCollection("Коллекция 1");
            MyNewCollection c2 = new MyNewCollection("Коллекция 2");

            Journal j1 = new Journal();

            c1.CollectionCountChanged     += new CollectionHandler(j1.CollectionCountChanged);
            c1.CollectionReferenceChanged += new CollectionHandler(j1.CollectionReferenceChanged);

            Journal j2 = new Journal();

            c1.CollectionReferenceChanged += new CollectionHandler(j2.CollectionReferenceChanged);
            c2.CollectionReferenceChanged += new CollectionHandler(j2.CollectionReferenceChanged);

            Console.WriteLine("Здравствуйте. Вас приветствует программа, демонстрирующая работу обработчиков событий.");
            Console.WriteLine("Сейчас в программе созданы две коллекции типа <Time>, с которыми вы можете работать.");
            Console.WriteLine("Также в ней созданы по одному журналу событий для каждой из этих коллекций, которые вы в любой момент можете просмотреть. Первый журнал подписан на изменения числа элементов и изменения ссылок на элементы из первой коллекции; второй журнал подписан на события изменения числа элементов в обеих коллекциях");

            int s = 0;

            do
            {
                Console.WriteLine("Что бы вы хотели сделать далее?");
                Console.WriteLine("1 - Работать с первой коллекцией");
                Console.WriteLine("2 - Работать со второй коллекцией");
                Console.WriteLine("3 - Завершить работу с программой");

                s = ReadInteger(1, 3, "Вы ввели неправильное число. Введите число заново.");

                switch (s)
                {
                case 1:
                {
                    WorkCollection(c1, j1);
                    break;
                }

                case 2:
                {
                    WorkCollection(c2, j2);
                    break;
                }

                case 3:
                {
                    break;
                }

                default:
                {
                    Console.WriteLine("Вы ввели неправильное число. Введите число заново.");
                    break;
                }
                }
            } while (s != 3);
        }
예제 #2
0
        static void WorkCollection(MyNewCollection c, Journal j)
        {
            int s = 0;

            do
            {
                Console.WriteLine("Что бы вы хотели сделать далее?");
                Console.WriteLine("1 - Заполнить коллекцию случайными элементами");
                Console.WriteLine("2 - Добавить элемент в коллекцию");
                Console.WriteLine("3 - Удалить элемент из коллекции");
                Console.WriteLine("4 - Подсчитать число элементов в коллекции");
                Console.WriteLine("5 - Отсортировать коллекцию по числу часов");
                Console.WriteLine("6 - Отсортировать коллекцию по числу минут");
                Console.WriteLine("7 - Очистить коллекцию");
                Console.WriteLine("8 - Просмотреть коллекцию");
                Console.WriteLine("9 - Просмотреть журнал событий для коллекции");
                Console.WriteLine("10 - Завершить работу с коллекцией");

                s = ReadInteger(1, 10, "Вы ввели неправильное число. Введите число заново.");

                switch (s)
                {
                case 1:
                {
                    Console.WriteLine("Введите число элементов, которые вы хотите добавить в коллекцию");
                    c.Fill(ReadInteger(1, 100, "Вы ввели неправильное число. Введите число заново."));
                    Console.WriteLine("Коллекция успешно заполнена.");
                    break;
                }

                case 2:
                {
                    Console.WriteLine("Введите число часов в добавляемом элементе");
                    int h = ReadInteger(0, 23, "Вы ввели неправильное число. Введите число заново.");
                    Console.WriteLine("Введите число минут в добавляемом элементе");
                    int m = ReadInteger(0, 59, "Вы ввели неправильное число. Введите число заново.");
                    c.Add(new Time(h, m));
                    Console.WriteLine("Элемент успешно добавлен");
                    break;
                }

                case 3:
                {
                    Console.WriteLine("Введите номер удаляемого элемента");
                    if (c.RemoveByNumber(ReadInteger(0, 999999, "")) == true)
                    {
                        Console.WriteLine("Элемент успешно удален");
                    }
                    else
                    {
                        Console.WriteLine("Элемента с таким номером нет в коллекции");
                    };


                    break;
                }

                case 4:
                {
                    Console.WriteLine($"В коллекции всего {c.Count()} элементов");
                    break;
                }

                case 5:
                {
                    c.SortHours();
                    Console.WriteLine("Коллекция успешно отсортирована");
                    break;
                }

                case 6:
                {
                    c.SortMinutes();
                    Console.WriteLine("Коллекция успешно отсортирована");
                    break;
                }

                case 7:
                {
                    c.Clear();
                    Console.WriteLine("Коллекция успешно очищена");
                    break;
                }

                case 8:
                {
                    c.Display();
                    break;
                }

                case 9:
                {
                    j.Display();
                    break;
                }

                case 10:
                {
                    break;
                }

                default:
                {
                    Console.WriteLine("Вы ввели неправильное число. Введите число заново.");
                    break;
                }
                }
            } while (s != 10);
        }