Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Консольное меню на подобии C# 
:(
    Опции темы
GoOFee
Дата 29.5.2016, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.5.2016

Репутация: нет
Всего: нет



Доброго времени суток форумчане. Сразу скажу что данная тема аля "сделайте за меня" и в программирование я полное дно  smile . Учусь в авиационном институте, и в предметы вклинели зачем-то  программирование. С ним были связаны косвенно, но оно было и было его не много. И вот надо сделать такое задание. Есть консольное приложение в и необходимо реализовать меню, и меню на подобии DOS, т.е. переход по пунктам меню выполняется с помошью стрелочек. Необходимо все это дело организовать в виде функции. Чтобы в программе это все дело выглядило приблезительно так:
switch(MyFunction(Pmenu, x,y, cvet1, cvet2))
где myFunction- моя функция в которую передаются параметры Pmenu - пункты меню, х и у - координаты левого верхнего угла откуда будет идти отрисовка, cvet1 это цвет фона и цвет текста, cvet2- это цвет фона и цвет текста выбраного пункта меню(тут мнене совсем понятно как так, нам поидеи надо 4 цвета передавать 1 - для фона 2- для текста, 3 для фона выбраного пункта меню, 4 для текста выбраного пункта меню). И все это дело должно быть в рамочке какойнибуть... При всем том что обезательным параметром является только Pmenu все остольные якобы можно не в водить у них должно быть значение по умолчанию. Я вот тут накапал какой-то код в интернете однако он не совсем то что нужно, а разобратся в нем у меня не получается 
Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class Program
    {
        delegate void method();
        static void Main(string[] args)
        {

            string[] items = { "Действие 1", "Действие 2", "Действие 3", "Выход" };
            method[] methods = new method[] { Method1, Method2, Method3, Exit };
            ConsoleMenu menu = new ConsoleMenu(items);
            int menuResult;
            do
            {
                menuResult = menu.PrintMenu();
                methods[menuResult]();
                Console.WriteLine("Для продолжения нажмите любую клавишу");
                Console.ReadKey();
            } while (menuResult != items.Length - 1);
        }

        static void Method1()
        {
            Console.WriteLine("Выбрано действие 1");
        }
        static void Method2()
        {
            Console.WriteLine("Выбрано действие 2");
        }
        static void Method3()
        {
            Console.WriteLine("Выбрано действие 3");
        }
        static void Exit()
        {
            Console.WriteLine("Приложение заканчивает работу!");
        }
    }


    class ConsoleMenu
    {
        string[] menuItems;
        int counter = 0;
        public ConsoleMenu(string[] menuItems)
        {
            this.menuItems = menuItems;
        }

        public int PrintMenu()
        {
            ConsoleKeyInfo key;
            do
            {
                Console.Clear();
                for (int i = 0; i < menuItems.Length; i++)
                {
                    if (counter == i)
                    {
                        Console.BackgroundColor = ConsoleColor.Cyan;
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.WriteLine(menuItems[i]);
                        Console.BackgroundColor = ConsoleColor.Black;
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    else
                        Console.WriteLine(menuItems[i]);

                }
                key = Console.ReadKey();
                if (key.Key == ConsoleKey.UpArrow)
                {
                    counter--;
                    if (counter == -1) counter = menuItems.Length - 1;
                }
                if (key.Key == ConsoleKey.DownArrow)
                {
                    counter++;
                    if (counter == menuItems.Length) counter = 0;
                }
            }
            while (key.Key != ConsoleKey.Enter);
            return counter;
        }

    }
}

P.S. Извеняюсь что приходится просить, и отнимать личное время. :(

Да забыл сказать, сами пункты меню не чего не должны делать, т.е. по выбору какого-то из пунктов не чего не должно проихсодить... 


Это сообщение отредактировал(а) GoOFee - 29.5.2016, 16:50
PM MAIL   Вверх
Uvs
Дата 13.10.2016, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 8.8.2007
Где: Челябинск

Репутация: нет
Всего: нет



Ужас, у вас с русским как-то не очень...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL ICQ Skype   Вверх
Uvs
Дата 13.10.2016, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 8.8.2007
Где: Челябинск

Репутация: нет
Всего: нет



Ужас, у вас с русским как-то не очень...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL ICQ Skype   Вверх
Uvs
Дата 13.10.2016, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 8.8.2007
Где: Челябинск

Репутация: нет
Всего: нет



Ужас, у вас с русским как-то не очень...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL ICQ Skype   Вверх
Uvs
Дата 13.10.2016, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 8.8.2007
Где: Челябинск

Репутация: нет
Всего: нет



Ужас, у вас с русским как-то не очень...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL ICQ Skype   Вверх
Uvs
Дата 13.10.2016, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 8.8.2007
Где: Челябинск

Репутация: нет
Всего: нет



Ужас, у вас с русским как-то не очень...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL ICQ Skype   Вверх
Uvs
Дата 13.10.2016, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 8.8.2007
Где: Челябинск

Репутация: нет
Всего: нет



точнее полнейший атас!

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1479 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.