//Добавить объект
        private void Add()
        {
            string[] addMenu =
            { "Добавить монархию", "Добавить королевство", "Добавить республику", "Назад" };
            while (true)
            {
                var            sw = LiveMenu.Menu("Выберите действие:", addMenu);
                StateInterface state;
                switch (sw)
                {
                case 0:
                    Console.WriteLine("Введите монархию для добавления: ");
                    state = new Monarchy();
                    state.Input();
                    _states.Add(state.Return_Name() + " " + state.Return_GDP(), state);

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

                case 1:
                    Console.WriteLine("Введите королевство для добавления:");
                    state = new Kingdom();
                    state.Input();
                    _states.Add(state.Return_Name() + " " + state.Return_GDP(), state);

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

                case 2:
                    Console.WriteLine("Введите республику для добавления:");
                    state = new Republic();
                    state.Input();
                    _states.Add(state.Return_Name() + " " + state.Return_GDP(), state);

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

                case 3:
                    return;
                }
            }
        }
예제 #2
0
        private static void FindState(StateInterface[] state)
        //Поиск объекта в коллекции
        {
            Array.Sort(state, new SortByGDP());

            bool ok = true;

            while (ok)
            {
                int index;
                int choice = LiveMenu.Menu(headlines[1], search);
                switch (choice)
                {
                case 0:
                    Monarchy monarchy = new Monarchy();
                    monarchy.Input();

                    index = Array.BinarySearch(state, monarchy);
                    try
                    {
                        Monarchy tmp = state[index] as Monarchy;
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        tmp.Show();
                        Console.WriteLine();
                        Console.Write("\n  Номер объекта в коллекции: {0}", index + 1);
                        Console.WriteLine();
                    }
                    catch
                    {
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        monarchy.Show();
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write("\n Отсутствует в коллекции.");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                    }

                    Console.Write("\n" + end);
                    Console.ReadLine();
                    break;

                case 1:
                    Kingdom kingdom = new Kingdom();
                    kingdom.Input();

                    index = Array.BinarySearch(state, kingdom);
                    try
                    {
                        Kingdom tmp = state[index] as Kingdom;
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        tmp.Show();
                        Console.WriteLine();
                        Console.Write("\n  Номер объекта в коллекции: {0}", index + 1);
                        Console.WriteLine();
                    }
                    catch
                    {
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        kingdom.Show();
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write("\n Отсутствует в коллекции.");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                    }

                    Console.Write("\n" + end);
                    Console.ReadLine();
                    break;

                case 2:
                    Republic republic = new Republic();
                    republic.Input();

                    index = Array.BinarySearch(state, republic);
                    try
                    {
                        Republic tmp = state[index] as Republic;
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        tmp.Show();
                        Console.WriteLine();
                        Console.Write("\n  Номер объекта в коллекции: {0}", index + 1);
                        Console.WriteLine();
                    }
                    catch
                    {
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        republic.Show();
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write("\n Отсутствует в коллекции.");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                    }

                    Console.Write("\n" + end);
                    Console.ReadLine();
                    break;

                case 3:
                    ok = false;
                    break;
                }
            }
        }
예제 #3
0
        public static ArrayList Add(ref State[] arr)
        //Добавление объекта в коллекцию
        {
            bool      ok    = true;
            ArrayList STATE = new ArrayList();

            while (ok)
            {
                int choice = LiveMenu.Menu(headlines[1], autoHand);
                switch (choice)
                {
                case 0:
                    STATE.AddRange(arr);
                    int decision = LiveMenu.Menu(headlines[1], addInfo);
                    switch (decision)
                    {
                    case 0:
                        Monarchy monarchy = new Monarchy();
                        monarchy.Input();
                        STATE.Add(monarchy);
                        break;

                    case 1:
                        Kingdom kingdom = new Kingdom();
                        kingdom.Input();
                        STATE.Add(kingdom);
                        break;

                    case 2:
                        Republic republic = new Republic();
                        republic.Input();
                        STATE.Add(republic);
                        break;

                    case 3:
                        break;
                    }

                    Console.WriteLine();
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("  Объект успешно добавлен.");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Write("\n  " + end);
                    Console.ReadLine();
                    return(STATE);

                case 1:
                    int k = rnd.Next(1, 4);
                    STATE.AddRange(arr);
                    if (k == 1)
                    {
                        Republic newState = new Republic();
                        STATE.Add(newState);
                    }
                    if (k == 2)
                    {
                        Monarchy newState = new Monarchy();
                        STATE.Add(newState);
                    }
                    if (k == 3)
                    {
                        Kingdom newState = new Kingdom();
                        STATE.Add(newState);
                    }

                    Console.WriteLine();
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("  Объект успешно добавлен.");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Write("\n  " + end);
                    Console.ReadLine();
                    return(STATE);
                }
            }
            return(STATE);
        }
        //Удалить объект
        private void Delete(out int k)
        {
            string[] addMenu =
            { "Удалить монархию", "Удалить королевство", "Удалить республику", "Назад" };
            k = 0;
            while (true)
            {
                var            sw = LiveMenu.Menu("Выберите действие:", addMenu);
                StateInterface state;
                switch (sw)
                {
                case 0:
                    Console.WriteLine("Введите монархию для удаления:");
                    state = new Monarchy();
                    state.Input();

                    if (!_states.ContainsKey(state.Return_Name() + " " + state.Return_GDP()))
                    {
                        Console.
                        WriteLine("Объект для удаления отсутсвует в словаре.\n\n\nДля продолженния нажать на любую клавишу...");
                        Console.ReadKey(true);
                    }
                    else
                    {
                        _states.Remove(state.Return_Name() + " " + state.Return_GDP());
                        Console.
                        WriteLine("Объект успешно удален.\n\n\nДля продолженния нажать на любую клавишу...");
                        Console.ReadKey(true);
                    }

                    if (_states.Count == 0)
                    {
                        k = 6;
                        return;
                    }

                    break;

                case 1:
                    Console.WriteLine("Введите королевство для удаления:");
                    state = new Kingdom();
                    state.Input();
                    if (!_states.ContainsKey(state.Return_Name() + " " + state.Return_GDP()))
                    {
                        Console.
                        WriteLine("Объект для удаления отсутсвует в словаре.\n\n\nДля продолженния нажать на любую клавишу...");
                        Console.ReadKey(true);
                    }
                    else
                    {
                        _states.Remove(state.Return_Name() + " " + state.Return_GDP());
                        Console.
                        WriteLine("Объект успешно удален.\n\n\nДля продолженния нажать на любую клавишу...");
                        Console.ReadKey(true);
                    }

                    if (_states.Count == 0)
                    {
                        k = 6;
                        return;
                    }

                    break;

                case 2:
                    Console.WriteLine("Введите республику для удаления:");
                    state = new Republic();
                    state.Input();
                    if (!_states.ContainsKey(state.Return_Name() + " " + state.Return_GDP()))
                    {
                        Console.
                        WriteLine("Объект для удаления отсутсвует в словаре.\n\n\nДля продолженния нажать на любую клавишу...");
                        Console.ReadKey(true);
                    }
                    else
                    {
                        _states.Remove(state.Return_Name() + " " + state.Return_GDP());
                        Console.
                        WriteLine("Объект успешно удален.\n\n\nДля продолженния нажать на любую клавишу...");
                        Console.ReadKey(true);
                    }

                    if (_states.Count == 0)
                    {
                        k = 6;
                        return;
                    }

                    break;

                case 3:
                    return;
                }
            }
        }
        //Тип поиска
        private void TypeFind()
        {
            string[] queriesMenu =
            { "Поиск элемента типа Monarchy", "Поиск элемента типа Kingdom", "Поиск элемента типа Republic", "Назад" };
            while (true)
            {
                var sw = LiveMenu.Menu("Выберите нужную опцию:", queriesMenu);
                switch (sw)
                {
                case 0:
                    StateInterface state = new Monarchy();
                    state.Input();
                    if (_states.ContainsKey(state.Return_Name() + " " + state.Return_GDP()))
                    {
                        Console.WriteLine("\nОбъект найден: ");
                        Console.WriteLine("\n{0}.\n\n\nДля продолженния нажать на любую клавишу...",
                                          _states[state.Return_Name() + " " + state.Return_GDP()]);
                    }
                    else
                    {
                        Console.WriteLine("Заданный объект не был найден в стэке.\n\n\nДля продолженния нажать на любую клавишу...");
                    }

                    Console.ReadKey(true);
                    break;

                case 1:
                    state = new Kingdom();
                    state.Input();
                    if (_states.ContainsKey(state.Return_Name() + " " + state.Return_GDP()))
                    {
                        Console.WriteLine("\nОбъект найден: ");
                        Console.WriteLine("\n{0}.\n\n\nДля продолженния нажать на любую клавишу...",
                                          _states[state.Return_Name() + " " + state.Return_GDP()]);
                    }
                    else
                    {
                        Console.WriteLine("Заданный объект не был найден в стэке.\n\n\nДля продолженния нажать на любую клавишу...");
                    }

                    Console.ReadKey(true);
                    break;

                case 2:
                    state = new Republic();
                    state.Input();
                    if (_states.ContainsKey(state.Return_Name() + " " + state.Return_GDP()))
                    {
                        Console.WriteLine("\nОбъект найден: ");
                        Console.WriteLine("\n{0}.\n\n\nДля продолженния нажать на любую клавишу...",
                                          _states[state.Return_Name() + " " + state.Return_GDP()]);
                    }
                    else
                    {
                        Console.WriteLine("Заданный объект не был найден в стэке.\n\n\nДля продолженния нажать на любую клавишу...");
                    }

                    Console.ReadKey(true);
                    break;

                case 3:
                    return;
                }
            }
        }