Реализация меню в консоли - C#
Формулировка задачи:
Помогите пожалуйста разобраться с программой. У меня не получается реализация пунктов меню.
Вот код функции main:
Полный текст задания
public static void main(string[] args) { int p; Console.Title = "Array"; do { Console.WriteLine("Menu:"); Console.WriteLine(); Console.WriteLine("1. One-dimensional array"); Console.WriteLine("2. Two-dimensional array"); Console.WriteLine("3. Jagged array"); Console.WriteLine("0. Quit"); Console.WriteLine(); p = int.Parse(Console.ReadLine()); switch (p) { case 1: string s=" "; int[] massiv=null; do { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Enter the elements of the array is separated by a space"); Console.ResetColor(); string str=Console.ReadLine(); if (str.[B]trim[/B]()!='e') //"string" не содержит определения для trim и не был найден //метод расширения trim... s+=str+'!'; }while(str.trim()!='e'); //элемент "str" не существует в данном контексте break; Array(k);//элемент "k" не существует в данном контексте case 2: string st=" "; int[,] Massiv=null; do { Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine("Enter the elements of the row is separated by a space"); Console.ResetColor(); string str=Console.ReadLine(); if (str.trim()!='e') st+=str+'!'; }while(str.trim()!='e'); break; Array(k,l); case 3: string Das_Line=" "; int[][] Das_Massiv=null; do { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Enter the elements of the row is separated by a space"); Console.WriteLine(); Console.WriteLine("Warning: no need to enter the same number of elements of jagged array for all rows"); Console.ResetColor(); string str=Console.ReadLine(); if (str.trim()!='e') Das_Line+=str+'!'; }while(str.trim()!='e'); break; if (k == l) Console.WriteLine("Error"); Array(k,l); case 0: Console.WriteLine("You decide to exit from program. Goodbye"); break; default: Console.WriteLine("You pressed the wrong button. Re-enter"); break; } Console.Write("\n\n\t\t\tEnter any key"); Console.ReadLine(); Console.Clear(); } while (i != 3); } Console.WriteLine("Choose menu");//"Console.WriteLine()"является "метод", но используется как "тип" Console.ReadLine();//"Console.ReadLine()"является "метод", но используется как "тип"
Разработать консольное приложение. Написать класс, содержащий только три открытых полиморфных метода. Первый работает с одномерным массивом, второй – с двумерным, третий – с вложенным. С каждым из массивов осуществить действие по варианту (см. ниже таблица 1). В методе Main (в основной программе) осуществить заполнение переменных-массивов с клавиатуры, а затем передать их как параметр в метод. То, с каким массивом следует работать, указывает пользователь, и в зависимости от этого заполняется переменная нужного типа. Организовать это в виде псевдографического меню с возможностью возврата к нему после выполнения действий из выбранного пункта. Выбранный пункт должен менять цвет и обводиться рамочкой, которая по клавишам «вверх-вниз» должна циклически перемещаться по пунктам. Ограничение на ввод вложенного массива: он не должен быть прямоугольным, т.е. разное количество элементов в разных строках должно проверяться программно. Затем происходит вызов метода вашего объекта, который выводит на экран исходный массив и результат своей работы. У пользователя запрещается спрашивать, сколько элементов будет в массиве – программа должна определять окончание ввода самостоятельно (например, по введенному ключевому символу).
Решение задачи: «Реализация меню в консоли»
textual
Листинг программы
using System; namespace ConsoleApplication1 { class MyArrayClass { public void OneDArray(int[] arr) { Console.WriteLine("Press any key..."); Console.ReadKey(true); } public void TwoDArray(int[,] arr) { Console.WriteLine("Press any key..."); Console.ReadKey(true); } public void JaggedArray(int[][] arr) { Console.WriteLine("Press any key..."); Console.ReadKey(true); } } class Menu { private string[] _items; public int SelectedItem { get; private set; } public ConsoleColor ForegroundColor = ConsoleColor.White; public ConsoleColor BackgroundColor = ConsoleColor.Black; public ConsoleColor SelectedForegroundColor = ConsoleColor.Black; public ConsoleColor SelectedBackgroundColor = ConsoleColor.White; public Menu(string[] items) { _items = items; SelectedItem = 0; ShowMenu(); } public void SelectUp() { SelectedItem--; if (SelectedItem < 0) SelectedItem = _items.Length - 1; ShowMenu(); } public void SelecDown() { SelectedItem++; if (SelectedItem >= _items.Length) SelectedItem = 0; ShowMenu(); } public void HideMenu() { Console.Clear(); } public void ShowMenu() { Console.Clear(); Console.BackgroundColor = this.BackgroundColor; Console.ForegroundColor = this.ForegroundColor; for (int i = 0; i < _items.Length; i++) { if (i == SelectedItem) { Console.BackgroundColor = this.SelectedBackgroundColor; Console.ForegroundColor = this.SelectedForegroundColor; Console.WriteLine(_items[i]); Console.BackgroundColor = this.BackgroundColor; Console.ForegroundColor = this.ForegroundColor; } else Console.WriteLine(_items[i]); } } } class Program { public static void Main(string[] args) { Console.Title = "Array"; Menu m = new Menu(new string[] { "One-dimensional array", "Two-dimensional array", "Jagged array", "Quit" }); MyArrayClass mac = new MyArrayClass(); ConsoleKeyInfo ki; bool flag = true; do { ki = Console.ReadKey(); switch (ki.Key) { case ConsoleKey.DownArrow: m.SelecDown(); break; case ConsoleKey.UpArrow: m.SelectUp(); break; case ConsoleKey.Enter: m.HideMenu(); switch (m.SelectedItem) { case 0: Console.WriteLine("Enter the elements of the array is separated by a space"); string[] nums = Console.ReadLine().Split(' '); int[] array = new int[nums.Length]; for (int i = 0; i < nums.Length; i++) { int n = 0; int.TryParse(nums[i], out n); array[i] = n; } mac.OneDArray(array); break; case 1: //заполнение двухмерного массива и вызов соответствующего метода break; case 2: //заполнение ступенчатого массива и вызов соответствующего метода break; case 3: m.HideMenu(); flag = false; break; default: break; } m.ShowMenu(); break; default: break; } } while (flag); Console.WriteLine("You decide to exit from program. Goodbye"); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д