Меню с выбором программы - C#
Формулировка задачи:
есть две программы, нужно добавить меню с возможностью выбора методов через arrow key с выделением текста
первая:
вторая:
Задан числовой массив, состоящий из n элементов (n<=100). Написать метод, определяющий, есть ли среди элементов с нечетными номерами элементы, кратные 17. */ class Program { static void input_arr(out int[,] arr) { Console.Write("количество строк:"); int n = int.Parse(Console.ReadLine()); Console.Write("количество столбцов:"); int m = int.Parse(Console.ReadLine()); arr = new int[n, m]; Random rand = new Random(); for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) { arr[i, j] = rand.Next(0, 26); } } } static void output_arr (int [,]arr) { for (int i=0;i<arr.GetLength(0);i++) { for (int j = 0; j < arr.GetLength(1); j++) { Console.Write("{0} ",arr[i,j]); } Console.WriteLine(); } } //int[] Meth(int[] arr) //{ // List<int> res = new List<int>(); // for (int i = 0; i < arr.Length; i++) // { // if (arr[i] % 17 == 0 && i % 2 != 0) { res.Add(arr[i]); } // } // return res.ToArray(); //} static int[] Meth(int[,] arr) { List<int> res = new List<int>(); for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) { if (arr[i, j] % 17== 0 && (i + j) % 2 != 0) { res.Add(arr[i, j]); } } } return res.ToArray(); } static void Main(string[] args) { int[,] array; //int[] array; input_arr(out array); output_arr(array); int [] elem = Meth(array); foreach (int item in elem) Console.Write("{0} ", item); } }
Задан числовой массив, состоящий из n элементов (n<=100). Используя сортировку массива, определить номер последнего чётного элемента массива. */ class Program { static void input_arr (out int []arr) { Console.Write("количество элементов:"); int n = int.Parse(Console.ReadLine()); arr = new int[n]; Random rand = new Random(); for (int i=0;i<arr.Length;i++) { arr[i] = rand.Next(-25, 26); } } static void output_arr(int[] arr) { for (int i = 0; i < arr.Length; i++) { Console.Write("{0} ", arr[i]); } } static void sort_insert(ref int[] arr) { int tmp, i, j; for (i = 0; i < arr.Length; i++) { tmp = arr[i]; for (j = i - 1; j >= 0 && arr[j] > tmp; j--) { arr[j + 1] = arr[j]; } arr[j + 1] = tmp; } } static int meth(int[] arr) { int number = 0; for (int i = arr.Length - 1; i > 0; i--) if (arr[i] % 2 == 0) { number = i; break; } return number; } static void Main(string[] args) { int[] array; input_arr(out array); Console.WriteLine("до сортировки"); output_arr(array); sort_insert(ref array); Console.WriteLine("\nпосле сортировки"); output_arr(array); Console.WriteLine(); int index = meth(array); Console.WriteLine("номер последнего четного элемента:{0}", index); } }
да ссылка на тему с тем же вопросом тоже вариант
Решение задачи: «Меню с выбором программы»
textual
Листинг программы
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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д