Exemple #1
0
        public void MatrixMenu()
        {
            ConsoleKey action;       // Переменная, в которую будет считываться нажатие клавиши
            int        currItem = 1; // Текущий пункт меню


            do                  // Считываем нажатия, пока не будет ESC
            {
                windowM.newWindow(winWidth, winHeight);
                Console.CursorVisible = false;  // Делаем курсор невидимым
                windowM.HeaderCenter("ОПЕРАЦИИ С МАТРИЦАМИ", winWidth, 2, ConsoleColor.Yellow);
                action = windowM.MenuSelect(menuItems, currItem, winWidth, 4);

                switch (action)
                {
                case ConsoleKey.D1:
                    MenuMultiplyMatrixByNumber();
                    currItem = 1;
                    break;

                case ConsoleKey.D2:
                    MenuAddMatrixes();
                    currItem = 2;
                    break;

                case ConsoleKey.D3:
                    MenuSubtractMatrixes();
                    currItem = 3;
                    break;

                case ConsoleKey.D4:
                    MenuMultiplyMatrixes();
                    currItem = 4;
                    break;

                case ConsoleKey.Escape:
                    Console.WriteLine("ДО СВИДАНИЯ!");
                    break;

                default:
                    break;       // нажата любая другая клавиша - ничего не происходит
                }
            } while (action != ConsoleKey.Escape);
        }   // public void matrixMenu()
        static void Main(string[] args)
        {
            #region  Объявление переменных интерфейса

            int        winHeight = 20;      // Высота экрана (для меню) 20 строк
            int        winWidth  = 80;      // Ширина экрана (для меню) 80 строк
            int        currItem  = 1;       // текущая позиция меню
            ConsoleKey action;              // Переменная, в которую будет считываться нажатие клавиши
            Console.CursorVisible = false;  // Делаем курсор невидимым

            // Это надо, чтобы корректно вводились и выводились русские буквы на Маке
            Console.InputEncoding  = System.Text.Encoding.Unicode;
            Console.OutputEncoding = System.Text.Encoding.Unicode;

            MenuItem[] menuItems =          // Пункты меню для вывода на экран
            { new MenuItem            {
                  itemKey = ConsoleKey.D1, itemName = "1.   МАТРИЦЫ"
              },
              new MenuItem {
                  itemKey = ConsoleKey.D2, itemName = "2.   САМОЕ КОРОТКОЕ СЛОВО"
              },
              new MenuItem {
                  itemKey = ConsoleKey.D3, itemName = "3.   ВСЕ САМЫЕ ДЛИННЫЕ СЛОВА"
              },
              new MenuItem {
                  itemKey = ConsoleKey.D4, itemName = "4.   УДАЛИТЬ ПОВТОРЯЮЩИЕСЯ БУКВЫ"
              },
              new MenuItem {
                  itemKey = ConsoleKey.D5, itemName = "5.   ПРОГРЕССИЯ ЛИ ЭТО"
              },
              new MenuItem {
                  itemKey = ConsoleKey.D6, itemName = "6.   АККЕРМАН"
              },
              new MenuItem {
                  itemKey = ConsoleKey.Escape, itemName = "ESC  ВЫХОД"
              } };

            WindowOutput window = new WindowOutput();
            #endregion  Объявление переменных интерфейса

            Matrix matrix            = new Matrix();
            StringManipulations sm   = new StringManipulations();
            Mathematical        math = new Mathematical();

            do                  // Считываем нажатия, пока не будет ESC
            {
                window.newWindow(winWidth, winHeight);
                window.HeaderCenter("Домашняя работа  №5", winWidth, 2, ConsoleColor.Yellow);
                window.HeaderCenter("Дмитрий Мельников", winWidth, 3, ConsoleColor.Yellow);

                action = window.MenuSelect(menuItems, currItem, winWidth, 5);

                switch (action)
                {
                case ConsoleKey.D1:
                    matrix.MatrixMenu();
                    currItem = 1;
                    break;

                case ConsoleKey.D2:
                    sm.MenuShortestWord(window);
                    currItem = 2;
                    break;

                case ConsoleKey.D3:
                    sm.MenuLongestWords(window);
                    currItem = 3;
                    break;

                case ConsoleKey.D4:
                    sm.MenuRefineString(window);
                    currItem = 4;
                    break;

                case ConsoleKey.D5:
                    math.MenuIsProgression(window);
                    currItem = 5;
                    break;

                case ConsoleKey.D6:
                    math.MenuAkkerman(window);
                    currItem = 6;
                    break;

                case ConsoleKey.Escape:
                    break;

                default:
                    break;       // нажата любая другая клавиша - ничего не происходит
                }
            } while (action != ConsoleKey.Escape);
        } // void Main ();