Меню в консоли c#

Узнай цену своей работы

Формулировка задачи:

Помогите сделать меню в консоли, нужно что было было что то такое: Меню: 1. Ответ на задание №1 2. Ответ на задание №2 3. Выход При открытии пункта 1 на экране появляться должен ответ первого задания, 2 второго. И если такое возможно еще при выборе задания что бы был пункт "1. Вернуться в главное меню." Так же нужно сделать выбор пункта не цифрами, а стрелочками и клавишей Enter (соку выбор стрелочкой что бы был " <==") Вот код который надо засунуть в меню:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication6
{
    public class Name1
    {
        public static double a = 0.5;
        public const double x = 3.4;
        public const double b = 1.1;
 
        public static double fun1(double aa)
        {
            double ch = Math.Cos(x - 3 * b) - Math.Pow((a * Math.Pow(x, 6) + Math.Pow(Math.E, a * x)), 2) + 0.3 * Math.Pow(10, -1.5) * x;
            double zn = 7.3 * Math.Pow(10, 7) * Math.Abs(x - Math.Pow(a, 5)) - Math.Tan(a + x) + Math.Sqrt(Math.Pow(Math.Sin(a), 2) * a + Math.PI) - Math.Log(x, Math.E);
            aa = Math.Sqrt(Math.Abs(Math.Log10(Convert.ToDouble(Math.Abs(ch / zn)))));
            Console.WriteLine("Y=" + aa);
            return aa;
        }
    }
 
    public class Name2
    {
        public const bool A = true;
        public const bool B = true;
        public const bool C = false;
        public const double X = 1.5;
        public const double Y = 2.5;
 
        public static bool fun2(bool z)
        {
            z = A && !C || X < 4.2 && Y >= 3.5 || !(B && C || X > Y);
            return z;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            double y = 0;
            double f = 0;
            bool b;
            bool bb = false;
            Name1 ob1 = new Name1();
            Name2 ob2 = new Name2();
            f = Name1.fun1(y);
            b = Name2.fun2(bb);
 
            Console.WriteLine("Z=" + b);
            Console.ReadLine();
        }
    }
}
Вот такой нужен выбор пунктов, только что бы когда выбираешь пункт меню пропадало а не оставалось как в коде.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication6
{
    class Program
    {
        public static void Print(string[] points, int choose)
        {
            Console.Clear();
            for (int i = 0; i < points.Length; i++)
                Console.WriteLine("{0} {1}", points[i], i == choose ? "<<--" : "");
        }
 
        public static int Menu(string[] points)
        {
            Console.CursorVisible = false; // Чтобы не было мигающего курсора.
            int choose = 0;
            while (true) // Бесконечный цикл.
            {
                Print(points, choose);
                switch (Console.ReadKey(true).Key)
                {
                    case ConsoleKey.UpArrow: choose--; break;
                    case ConsoleKey.DownArrow: choose++; break;
                    case ConsoleKey.D: Console.CursorVisible = true; return -1;
                    case ConsoleKey.Enter: Console.CursorVisible = true; return choose;
                }
                choose = (choose + points.Length) % points.Length; // Зацикливаем выбор.
            }
        }
 
        public static void Main()
        {
            string[] points = { "1) Ответ на задание №1", "2) Ответ на задание №2", "3) Выход" };
            int choose = Menu(points);
            Console.WriteLine(choose == -1 ? "Ничего не выбрано" : string.Format("Ответ на задание №{0}", choose + 1));
            Console.ReadLine();
        }
    }
}

Решение задачи: «Меню в консоли c#»

textual
Листинг программы
Console/Clear();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.533 из 5