Меню в консоли 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();