Beispiel #1
0
        static void ChangeItemCollection(MyNewCollection collect)
        {
            Console.Write("Какой элемент нужно изменить? Введите значение:");
            int position = CheckInt() - 1;

            if (position >= collect.Count || position < 0)
            {
                Console.WriteLine("Введенный индекс вне границ массива!");
                return;
            }
            Transport nwEchange = ReferenseItem(position);

            collect[position] = nwEchange;
        }
Beispiel #2
0
        static void PrintMenuPart2()
        {
            MyNewCollection <Document> l1 = new MyNewCollection <Document>();

            l1.Name = "Name";
            Document d  = new Document();
            Document c  = new Document();
            Check    c1 = new Check();
            Journal  j1 = new Journal();
            Journal  j2 = new Journal();

            l1.Add(1, d);
            l1.Add(2, c);
            l1.RemoveKey(c1);
            l1.PrintList();
            l1.CollectionCountChanged     += new CollectionHandler(j1.CollectionCountChange);
            l1.CollectionReferenceChanged += new CollectionHandler(j2.CollectionReferenceChange);
        }
Beispiel #3
0
        static void ChoiseCollectionForAct(AddRemoveShow act, MyNewCollection collect1, MyNewCollection collect2)
        {
            Console.WriteLine(CollectionMENU);
            int numCollect = CheckInt();

            if (numCollect < 1 || numCollect > 2)
            {
                throw new IndexOutOfRangeException("Выберете коллекцию 1 или 2?");
            }
            else if (numCollect == 1)
            {
                act(collect1);
            }
            else
            {
                act(collect2);
            }
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            Random rand = new Random();
            int    menu = 10;


            while (menu != 0)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("1. Демонстрация коллекции");
                Console.WriteLine("2. Часть №2");
                Console.WriteLine("0.Выход");
                Console.ResetColor();
                menu = InputMenu(2);
                mc1  = new MyCollection(10);


                if (menu == 0)
                {
                    break;
                }
                else
                {
                    int menuNext = 10;

                    switch (menu)
                    {
                        #region task1
                    case 1:

                        while (menuNext != 0)
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine("1.Показать коллекцию");
                            Console.WriteLine("2.Добавить элементы");
                            Console.WriteLine("3.Удалить элементы");
                            Console.WriteLine("4.Сортировка");
                            Console.WriteLine("5.Удалить коллекцию");
                            Console.WriteLine("6.Длина");
                            Console.WriteLine("0.Назад");
                            Console.ResetColor();
                            menuNext = InputMenu(6);

                            if (menuNext == 0)
                            {
                                break;
                            }
                            else
                            {
                                switch (menuNext)
                                {
                                case 1:
                                    mc1.Show();
                                    break;

                                case 2:
                                    Add();
                                    Console.WriteLine("Элементы добавлены");
                                    break;

                                case 3:
                                    Delete();
                                    Console.WriteLine("Элементы удалены");
                                    break;

                                case 4:
                                    mc1.Sort();
                                    mc1.Show();
                                    break;

                                case 5:
                                    mc1.Clear();
                                    mc1.Show();
                                    break;

                                case 6:
                                    Console.WriteLine($"Количество:{mc1.Count }");
                                    break;
                                }
                            }
                        }
                        break;
                        #endregion task1

                        #region task2
                    case 2:
                        MyNewCollection list1 = new MyNewCollection();
                        MyNewCollection list2 = new MyNewCollection();
                        list1.Name = "First";
                        list2.Name = "Second";

                        Journal jour1 = new Journal();
                        Journal jour2 = new Journal();

                        list1.CollectionCountChanged     += new CollectionHandler(jour1.CollectionCountChanged);
                        list1.CollectionReferenceChanged += new CollectionHandler(jour1.CollectionReferenceChanged);

                        list2.CollectionCountChanged     += new CollectionHandler(jour2.CollectionCountChanged);
                        list2.CollectionReferenceChanged += new CollectionHandler(jour2.CollectionReferenceChanged);

                        list1.AddRandom();
                        list1.AddRandom();
                        list1.AddRandom();
                        list1.AddRandom();

                        list2.AddRandom();
                        list2.AddRandom();
                        list2.AddRandom();
                        list2.AddRandom();

                        list1.Remove(1);
                        list2.Remove(2);

                        list1.ChangeValue(2);
                        list2.ChangeValue(1);

                        list1.Add(new Engine("ADD", 1111));
                        Console.WriteLine("В каждую коллекцию добавлено по 4 элемента");
                        Console.WriteLine("Из первой удален 1, из второй 2");
                        Console.WriteLine("В первой изменен 2(3 до удаления), во второй 1");
                        Console.WriteLine("В первую добавлен элемент ADD");
                        Console.WriteLine();

                        list1.Show();
                        Console.WriteLine();
                        list2.Show();

                        Console.WriteLine();
                        Console.WriteLine("Journal 1:");
                        Console.WriteLine();
                        jour1.ToString();
                        Console.WriteLine();
                        Console.WriteLine("Journal 2:");
                        Console.WriteLine();
                        jour2.ToString();



                        Console.ReadKey();

                        break;
                        #endregion task2
                    }
                }
            }
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.Default;
            MyNewCollection OneCollect = new MyNewCollection();
            MyNewCollection TwoCollect = new MyNewCollection();
            Journal         oneJournal = new Journal();
            Journal         twoJournal = new Journal();

            // создаем возможные события для объекта типа MyNewCollection и подписываем на событие объект класса Journal

            // подписка на события первого журнала:
            // добавление\удаление и изменение элементов 1 коллекции
            OneCollect.CollectionCountChanges     += new MyCollectionHandler(oneJournal.CollectionCountChanged);
            OneCollect.CollectionReferenceChanges += new MyCollectionHandler(oneJournal.CollectionReferenceChanged);

            // подписка на события второго журнала:
            // изменение элементов 1 и 2 коллекции
            OneCollect.CollectionReferenceChanges += new MyCollectionHandler(twoJournal.CollectionReferenceChanged);
            TwoCollect.CollectionReferenceChanges += new MyCollectionHandler(twoJournal.CollectionReferenceChanged);

            AddRemoveShow act;
            ShowJournal   show;
            bool          flag = false;

            while (!flag)
            {
                try
                {
                    Console.Clear();
                    Console.Write(MAINMENU);
                    int choise = CheckInt();
                    switch (choise)
                    {
                    case 1:
                        act = new AddRemoveShow(AddElemInCollection);
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        Console.WriteLine("Элементы успешно добавлены");
                        break;

                    case 2:
                        act = new AddRemoveShow(RemoveInCollection);
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        Console.WriteLine("Элементы успешно удалены");
                        break;

                    case 3:
                        act = new AddRemoveShow(ChangeItemCollection);
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        Console.WriteLine("Элемент успешно изменен");
                        ENTER();
                        break;

                    case 4:
                        act = new AddRemoveShow(ShowCollection);
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        ENTER();
                        break;

                    case 5:
                        show = new ShowJournal(ShowJ);
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Журнал событий: ");
                        Console.ForegroundColor = ConsoleColor.DarkYellow;
                        ActionsJournal(show, oneJournal, twoJournal);
                        Console.ResetColor();
                        ENTER();
                        break;

                    case 6:
                        show = new ShowJournal(Clear);
                        ActionsJournal(show, oneJournal, twoJournal);
                        Console.WriteLine("Журнал отчищен!");
                        ENTER();
                        break;

                    case 7:
                        act = new AddRemoveShow(x => x.Clear());
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        Console.WriteLine("Коллекция отчищена");
                        break;

                    case 8:
                        flag = !flag;
                        break;

                    default:
                        Console.WriteLine("Неопознанное значение!");
                        ENTER();
                        break;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    ENTER();
                }
            }
        }
Beispiel #6
0
        static void AddElemInCollection(MyNewCollection collect)
        {
            bool t = false;

            while (!t)
            {
                Console.Clear();
                Console.Write(AddMENU);
                int choise = CheckInt();
                switch (choise)
                {
                case 1:
                    List <Transport> list = new List <Transport>();
                    int  size             = 0;
                    bool flag             = false;
                    while (!flag)
                    {
                        list.Add(AddTypeTransport(ref flag, $"Добавить {size + 1}-й элемент\n" +
                                                  TypeMENU));
                        size++;
                    }
                    list.RemoveAt(size - 1);
                    size--;
                    if (size != 0)
                    {
                        Transport[] arr = new Transport[size];
                        list.CopyTo(arr, 0);
                        collect.Add(arr);
                    }
                    else
                    {
                        Console.WriteLine("Попытка добавления пустого массива!");
                    }
                    ENTER();
                    t = true;
                    break;

                case 2:
                    Transport nwE = AddTypeTransport(ref t, $"Добавить {collect.Count} элемент\n" +
                                                     TypeMENU);
                    if (nwE != null)
                    {
                        collect.Add(nwE);
                    }
                    else
                    {
                        Console.WriteLine("Попытка добавления пустого элемента!");
                    }
                    t = true;
                    ENTER();
                    break;

                case 3:
                    collect.AddDefault();
                    ENTER();
                    t = true;
                    break;

                case 4:
                    t = true;
                    break;

                default:
                    Console.WriteLine("Неопознанное значение..");
                    ENTER();
                    break;
                }
            }
        }
Beispiel #7
0
 private static void ShowCollection(MyNewCollection act)
 {
     Console.WriteLine(act);
 }
Beispiel #8
0
 public MyNewCollection(MyNewCollection collection)
 {
     list = collection.list;
 }