Exemplo n.º 1
0
        //Создать Stack
        private void CreateStack()
        {
            int size;

            while (true)
            {
                size = Input("Введите размер стэка: ");
                if (size <= 0)
                {
                    Console.WriteLine("Введена пустая/отрицательная последовательность! Повторите ввод...");
                }
                else
                {
                    break;
                }
            }

            _stack = new Stack <IPerson>(size);
            var array = IPersonCreate.CreateArray(size);

            for (var i = 0; i < size; i++)
            {
                _stack.Push(array[i]);
            }
        }
Exemplo n.º 2
0
        //Создать коллекцию
        private void CreateDictionary()
        {
            _persons = new SortedDictionary <string, IPerson>(new ComparerForDictionary());
            int size;

            while (true)
            {
                size = Input("Введите размер коллекции: ");
                if (size == 0)
                {
                    Console.WriteLine("Введена пустая коллекция. Повторите ввод...");
                }
                else
                {
                    break;
                }
            }

            var array = IPersonCreate.CreateArray(size);

            foreach (var element in array)
            {
                _persons.Add(element.Return_se_name() + " " + element.Return_name(), element);
            }
        }
Exemplo n.º 3
0
 //Создать очередь из заданной Capacity
 private void CreateFromCapacity()
 {
     queue = new MyQueue <IPerson>(Input("Введите объем очереди: "));
     IPerson[] array = IPersonCreate.CreateArray(queue.Capacity * 2);
     foreach (IPerson arrayElement in array)
     {
         queue.Enqueue(arrayElement);
     }
 }
Exemplo n.º 4
0
 //Создать очередь из фиксированной Capacity
 private void CreateFixCapacity()
 {
     queue = new MyQueue <IPerson>();
     IPerson[] array = IPersonCreate.CreateArray(queue.Capacity * 2);
     foreach (IPerson arrayElement in array)
     {
         queue.Enqueue(arrayElement);
     }
 }
Exemplo n.º 5
0
        //Создать очередь из готовой
        private void CreateFromReady()
        {
            MyQueue <IPerson> tmpQueue = new MyQueue <IPerson>();

            IPerson[] add = IPersonCreate.CreateArray(10);
            foreach (IPerson addElement in add)
            {
                tmpQueue.Enqueue(addElement);
            }
            queue = new MyQueue <IPerson>(tmpQueue);
        }
Exemplo n.º 6
0
        private static MyQueue <IPerson> factory    = new MyQueue <IPerson>(); //Коллекция "Предприятие"

        private static void Filling()                                          //Заполнение коллекций
        {
            town = new MyQueue <MyQueue <IPerson> >(2);
            IPerson[] arr = IPersonCreate.CreateArray(10);
            foreach (var person in arr)
            {
                department.Enqueue(person);
                factory.Enqueue(person);
            }
            arr = IPersonCreate.CreateArray(10);
            foreach (var person in arr)
            {
                factory.Enqueue(person);
            }

            town.Enqueue(department);
            town.Enqueue(factory);
        }
Exemplo n.º 7
0
        public void Start()
        {
            string[] mainMenu =
            {
                "Создать очередь",         "Проверка свойств коллекции.", "Проверка метода Contains", "Проверка метода Clear",
                "Проверка метода Dequeue", "Проверка метода Enqueue",     "Проверка метода Peek",     "Проверка метода ToArray",
                "Проверка метода Clone",   "Проверка метода CopyTo",      "Выход"
            };
            int k = 9;

            while (true)
            {
                int sw = Use.Menu(k, "Выберите действие:", mainMenu);
                switch (sw)
                {
                case 1:
                    k = Create();
                    break;

                case 2:
                    CurrentQueue();
                    Console.WriteLine("\nОбъем коллекции: {0}", queue.Capacity);
                    Console.WriteLine("\nКол-во элементов в последовательности: {0}", queue.Count);
                    Continue();
                    break;

                case 3:
                    CurrentQueue();
                    IPerson person1 = new Worker("Никич", "Семёнов", 48, 15000);
                    IPerson person2 = queue.Peek();
                    Console.WriteLine("\nЧеловек " + person1.Return_se_name() + " " + person1.Return_name() + " содержиться ли в очереди?\n{0}", queue.Contains(person1));
                    Console.WriteLine("\nЧеловек " + person2.Return_se_name() + " " + person2.Return_name() + " содержиться ли в очереди?\n{0}", queue.Contains(person2));
                    Continue();
                    break;

                case 4:
                    CurrentQueue();
                    queue.Clear();
                    Console.WriteLine("Очередь очищена...");
                    k = 0;
                    Continue();
                    break;

                case 5:
                    CurrentQueue();
                    IPerson person = queue.Dequeue();
                    Console.WriteLine("\nВывели человека: ");
                    person.Show();
                    Console.WriteLine("\nОчередь после изменения: ");
                    CurrentQueue();
                    Continue();
                    break;

                case 6:
                    CurrentQueue();
                    IPerson add = IPersonCreate.CreateElement <Engineer>();
                    Console.WriteLine("\nДобавим в конец списка: ");
                    add.Show();
                    queue.Enqueue(add);
                    Console.WriteLine("\nОчередь после изменения: ");
                    CurrentQueue();
                    Continue();
                    break;

                case 7:
                    CurrentQueue();
                    person = queue.Peek();
                    Console.WriteLine("\nВывели человека: ");
                    person.Show();
                    Console.WriteLine("\nОчередь не изменена: ");
                    CurrentQueue();
                    Continue();
                    break;

                case 8:
                    CurrentQueue();
                    IPerson[] array = queue.ToArray();
                    Console.WriteLine("Вывод массива: ");
                    Output(array);
                    Continue();
                    break;

                case 9:
                    CurrentQueue();
                    MyQueue <IPerson> clone = new MyQueue <IPerson>(queue);
                    Console.WriteLine("Вывод копии: ");
                    MyQueueWork cloneMyQueueWork = new MyQueueWork(clone);
                    cloneMyQueueWork.Output();
                    break;

                case 10:
                    CurrentQueue();
                    queue.CopyTo(out array, queue.Count / 2);
                    Console.WriteLine("Вывод массива: ");
                    Output(array);
                    Continue();
                    break;

                case 11:
                    return;
                }
            }
        }
Exemplo n.º 8
0
        //Запросы
        private void Queries <T>()
        {
            string[] queriesMenu = { "Кол-во объектов.", "Печать объектов.", "Перегенерировать объекты", "Назад." };
            while (true)
            {
                var sw = Use.Menu(0, "Выберите нужную опцию:", queriesMenu);
                switch (sw)
                {
                case 1:
                    var count = 0;
                    foreach (var person in _stack)
                    {
                        try
                        {
                            var element = (T)person;
                            count++;
                        }
                        catch
                        {
                            // ignored
                        }
                    }

                    Console.
                    WriteLine("Кол-во объектов выбранного типа = {0}.\n\n\nДля продолженния нажать на любую клавишу...",
                              count);
                    Console.ReadKey(true);
                    break;

                case 2:
                    Console.WriteLine("Объекты выбранного типа: ");
                    foreach (var person in _stack)
                    {
                        try
                        {
                            var element = (T)person;
                            IPersonCreate.Show(element);
                        }
                        catch
                        {
                            // ignored
                        }
                    }

                    Console.WriteLine("\n\n\nДля продолженния нажать на любую клавишу...");
                    Console.ReadKey(true);
                    break;

                case 3:
                    count = 0;
                    var array = _stack.ToArray();
                    foreach (var person in _stack)
                    {
                        try
                        {
                            var element = (T)person;
                            RemoveFromArray(ref array, (IPerson)element);
                            count++;
                        }
                        catch
                        {
                            // ignored
                        }
                    }

                    CreateStack(array);
                    for (var i = 0; i < count; i++)
                    {
                        _stack.Push(IPersonCreate.CreateElement <T>());
                    }
                    Console.
                    WriteLine("Объекты выбранного типы были перезаписаны.\n\n\nДля продолженния нажать на любую клавишу...");
                    Console.ReadKey(true);
                    break;

                case 4:
                    return;
                }
            }
        }
Exemplo n.º 9
0
        //Запросы
        private void Queries <T>()
        {
            string[] queriesMenu = { "Количество объектов", "Печать объектов", "Перегенерировать объекты", "Назад" };
            while (true)
            {
                var sw = Use.Menu(0, "Выберите нужный пункт:", queriesMenu);
                switch (sw)
                {
                case 1:
                    var count = 0;
                    foreach (var key in _persons.Keys)
                    {
                        try
                        {
                            var element = (T)_persons[key];
                            count++;
                        }
                        catch
                        {
                            // ignored
                        }
                    }

                    Console.
                    WriteLine("Кол-во объектов выбранного типа = {0}.\n\n\nДля продолженния нажать на любую клавишу...",
                              count);
                    Console.ReadKey(true);
                    break;

                case 2:
                    Console.WriteLine("Объекты выбранного типа: ");
                    foreach (var key in _persons.Keys)
                    {
                        try
                        {
                            var element = (T)_persons[key];
                            IPersonCreate.Show(element);
                        }
                        catch
                        {
                            // ignored
                        }
                    }

                    Console.WriteLine("\n\n\nДля продолженния нажать на любую клавишу...");
                    Console.ReadKey(true);
                    break;

                case 3:
                    count = 0;
                    var tmp = new SortedDictionary <string, IPerson>(ClonaDictionary());
                    foreach (var key in tmp.Keys)
                    {
                        try
                        {
                            var element = (T)_persons[key];
                            _persons.Remove(key);
                            count++;
                        }
                        catch
                        {
                            // ignored
                        }
                    }

                    for (var i = 0; i < count; i++)
                    {
                        var add = IPersonCreate.CreateElement <T>();
                        _persons.Add(add.Return_se_name() + " " + add.Return_name(), add);
                    }

                    Console.
                    WriteLine("Объекты выбранного типы были перезаписаны.\n\n\nДля продолженния нажать на любую клавишу...");
                    Console.ReadKey(true);
                    break;

                case 4:
                    return;
                }
            }
        }