Реализация меню в консоли - C#

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

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

Помогите пожалуйста разобраться с программой. У меня не получается реализация пунктов меню. Вот код функции main:
Листинг программы
  1. public static void main(string[] args)
  2. {
  3. int p;
  4. Console.Title = "Array";
  5. do
  6. {
  7. Console.WriteLine("Menu:");
  8. Console.WriteLine();
  9. Console.WriteLine("1. One-dimensional array");
  10. Console.WriteLine("2. Two-dimensional array");
  11. Console.WriteLine("3. Jagged array");
  12. Console.WriteLine("0. Quit");
  13. Console.WriteLine();
  14. p = int.Parse(Console.ReadLine());
  15. switch (p)
  16. {
  17. case 1:
  18. string s=" ";
  19. int[] massiv=null;
  20. do
  21. {
  22. Console.ForegroundColor = ConsoleColor.Red;
  23. Console.WriteLine("Enter the elements of the array is separated by a space");
  24. Console.ResetColor();
  25. string str=Console.ReadLine();
  26. if (str.[B]trim[/B]()!='e') //"string" не содержит определения для trim и не был найден
  27. //метод расширения trim...
  28. s+=str+'!';
  29. }while(str.trim()!='e'); //элемент "str" не существует в данном контексте
  30. break;
  31. Array(k);//элемент "k" не существует в данном контексте
  32. case 2:
  33. string st=" ";
  34. int[,] Massiv=null;
  35. do
  36. {
  37. Console.ForegroundColor = ConsoleColor.DarkGreen;
  38. Console.WriteLine("Enter the elements of the row is separated by a space");
  39. Console.ResetColor();
  40. string str=Console.ReadLine();
  41. if (str.trim()!='e')
  42. st+=str+'!';
  43. }while(str.trim()!='e');
  44. break;
  45. Array(k,l);
  46. case 3:
  47. string Das_Line=" ";
  48. int[][] Das_Massiv=null;
  49. do
  50. {
  51. Console.ForegroundColor = ConsoleColor.Blue;
  52. Console.WriteLine("Enter the elements of the row is separated by a space");
  53. Console.WriteLine();
  54. Console.WriteLine("Warning: no need to enter the same number of elements of jagged array for all rows");
  55. Console.ResetColor();
  56. string str=Console.ReadLine();
  57. if (str.trim()!='e')
  58. Das_Line+=str+'!';
  59. }while(str.trim()!='e');
  60. break;
  61. if (k == l) Console.WriteLine("Error");
  62. Array(k,l);
  63. case 0:
  64. Console.WriteLine("You decide to exit from program. Goodbye");
  65. break;
  66. default:
  67. Console.WriteLine("You pressed the wrong button. Re-enter");
  68. break;
  69. }
  70. Console.Write("\n\n\t\t\tEnter any key");
  71. Console.ReadLine();
  72. Console.Clear();
  73. }
  74. while (i != 3);
  75. }
  76. Console.WriteLine("Choose menu");//"Console.WriteLine()"является "метод", но используется как "тип"
  77. Console.ReadLine();//"Console.ReadLine()"является "метод", но используется как "тип"
Полный текст задания
Разработать консольное приложение. Написать класс, содержащий только три открытых полиморфных метода. Первый работает с одномерным массивом, второй – с двумерным, третий – с вложенным. С каждым из массивов осуществить действие по варианту (см. ниже таблица 1). В методе Main (в основной программе) осуществить заполнение переменных-массивов с клавиатуры, а затем передать их как параметр в метод. То, с каким массивом следует работать, указывает пользователь, и в зависимости от этого заполняется переменная нужного типа. Организовать это в виде псевдографического меню с возможностью возврата к нему после выполнения действий из выбранного пункта. Выбранный пункт должен менять цвет и обводиться рамочкой, которая по клавишам «вверх-вниз» должна циклически перемещаться по пунктам. Ограничение на ввод вложенного массива: он не должен быть прямоугольным, т.е. разное количество элементов в разных строках должно проверяться программно. Затем происходит вызов метода вашего объекта, который выводит на экран исходный массив и результат своей работы. У пользователя запрещается спрашивать, сколько элементов будет в массиве – программа должна определять окончание ввода самостоятельно (например, по введенному ключевому символу).

Решение задачи: «Реализация меню в консоли»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication1
  4. {
  5.     class MyArrayClass
  6.     {
  7.         public void OneDArray(int[] arr)
  8.         {
  9.             Console.WriteLine("Press any key...");
  10.             Console.ReadKey(true);
  11.         }
  12.         public void TwoDArray(int[,] arr)
  13.         {
  14.             Console.WriteLine("Press any key...");
  15.             Console.ReadKey(true);
  16.         }
  17.         public void JaggedArray(int[][] arr)
  18.         {
  19.             Console.WriteLine("Press any key...");
  20.             Console.ReadKey(true);
  21.         }
  22.     }
  23.     class Menu
  24.     {
  25.         private string[] _items;
  26.         public int SelectedItem { get; private set; }
  27.         public ConsoleColor ForegroundColor = ConsoleColor.White;
  28.         public ConsoleColor BackgroundColor = ConsoleColor.Black;
  29.         public ConsoleColor SelectedForegroundColor = ConsoleColor.Black;
  30.         public ConsoleColor SelectedBackgroundColor = ConsoleColor.White;
  31.         public Menu(string[] items)
  32.         {
  33.             _items = items;
  34.             SelectedItem = 0;
  35.             ShowMenu();
  36.         }
  37.         public void SelectUp()
  38.         {
  39.             SelectedItem--;
  40.             if (SelectedItem < 0)
  41.                 SelectedItem = _items.Length - 1;
  42.             ShowMenu();
  43.         }
  44.         public void SelecDown()
  45.         {
  46.             SelectedItem++;
  47.             if (SelectedItem >= _items.Length)
  48.                 SelectedItem = 0;
  49.             ShowMenu();
  50.         }
  51.         public void HideMenu()
  52.         {
  53.             Console.Clear();
  54.         }
  55.         public void ShowMenu()
  56.         {
  57.             Console.Clear();
  58.             Console.BackgroundColor = this.BackgroundColor;
  59.             Console.ForegroundColor = this.ForegroundColor;
  60.             for (int i = 0; i < _items.Length; i++)
  61.             {
  62.                 if (i == SelectedItem)
  63.                 {
  64.                     Console.BackgroundColor = this.SelectedBackgroundColor;
  65.                     Console.ForegroundColor = this.SelectedForegroundColor;
  66.                     Console.WriteLine(_items[i]);
  67.                     Console.BackgroundColor = this.BackgroundColor;
  68.                     Console.ForegroundColor = this.ForegroundColor;
  69.                 }
  70.                 else Console.WriteLine(_items[i]);
  71.             }
  72.         }
  73.     }
  74.     class Program
  75.     {
  76.         public static void Main(string[] args)
  77.         {
  78.             Console.Title = "Array";
  79.             Menu m = new Menu(new string[] { "One-dimensional array", "Two-dimensional array", "Jagged array", "Quit" });
  80.             MyArrayClass mac = new MyArrayClass();
  81.             ConsoleKeyInfo ki;
  82.             bool flag = true;
  83.             do
  84.             {
  85.                 ki = Console.ReadKey();
  86.                 switch (ki.Key)
  87.                 {
  88.                     case ConsoleKey.DownArrow:
  89.                         m.SelecDown();
  90.                         break;
  91.                     case ConsoleKey.UpArrow:
  92.                         m.SelectUp();
  93.                         break;
  94.                     case ConsoleKey.Enter:
  95.                         m.HideMenu();
  96.                         switch (m.SelectedItem)
  97.                         {
  98.                             case 0:
  99.                                 Console.WriteLine("Enter the elements of the array is separated by a space");
  100.                                 string[] nums = Console.ReadLine().Split(' ');
  101.                                 int[] array = new int[nums.Length];
  102.                                 for (int i = 0; i < nums.Length; i++)
  103.                                 {
  104.                                     int n = 0;
  105.                                     int.TryParse(nums[i], out n);
  106.                                     array[i] = n;
  107.                                 }
  108.                                 mac.OneDArray(array);
  109.                                 break;
  110.                             case 1:
  111.                                 //заполнение двухмерного массива и вызов соответствующего метода
  112.                                 break;
  113.  
  114.                             case 2:
  115.                                 //заполнение ступенчатого массива и вызов соответствующего метода
  116.                                 break;
  117.                             case 3:
  118.                                 m.HideMenu();
  119.                                 flag = false;
  120.                                 break;
  121.                             default:
  122.                                 break;
  123.                         }
  124.                         m.ShowMenu();
  125.                         break;
  126.                     default:
  127.                         break;
  128.                 }
  129.  
  130.             } while (flag);
  131.             Console.WriteLine("You decide to exit from program. Goodbye");
  132.             Console.ReadKey();
  133.         }
  134.     }
  135. }

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


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

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

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут