Реализация меню в консоли - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д