Закрытие консоли во время выполнения программы - C#

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

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

Консоль закрывается до того, как выполнится вся программа. В коде написаны комментарии и место, после которого операторы не выполняются и консоль закрывается. Код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Threading;
  7. namespace ConsoleApplication1
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13.  
  14. string[] Users = new string[6]; //Пользователи
  15. Users[0] = "Павел";
  16. Users[1] = "Артём";
  17. Users[2] = "Гость";
  18. Users[3] = "Admin";
  19. Users[4] = "Екатерина";
  20. Users[5] = "Ольга";
  21.  
  22. object[,] Objects = new object[6, 4]; // Массив Объектов и прав доступа к ним
  23. for (int i = 0; i < 6; i++)
  24. {
  25. for (int j = 0; j < 4; j++)
  26. {
  27. switch (i)
  28. {
  29. case 0: //Пользователь с id = 0
  30. switch (j)
  31. {
  32. case 0:
  33. Objects[i, j] = "Полные права";
  34. break;
  35. case 1:
  36. Objects[i, j] = "Чтение";
  37. break;
  38. case 2:
  39. Objects[i, j] = "Чтение";
  40. break;
  41. case 3:
  42. Objects[i, j] = "Запись";
  43. break;
  44. }
  45. break;
  46. case 1: //Пользователь с id = 1
  47. switch (j)
  48. {
  49. case 0:
  50. Objects[i, j] = "Полные права";
  51. break;
  52. case 1:
  53. Objects[i, j] = "Чтение";
  54. break;
  55. case 2:
  56. Objects[i, j] = "Передача прав";
  57. break;
  58. case 3:
  59. Objects[i, j] = "Запись";
  60. break;
  61. }
  62. break;
  63. case 2: //Пользователь с id = 2
  64. switch (j)
  65. {
  66. case 0:
  67. Objects[i, j] = "Чтение";
  68. break;
  69. case 1:
  70. Objects[i, j] = "Чтение";
  71. break;
  72. case 2:
  73. Objects[i, j] = "Чтение";
  74. break;
  75. case 3:
  76. Objects[i, j] = "Чтение";
  77. break;
  78. }
  79. break;
  80. case 3:
  81. switch (j)
  82. {
  83. case 0:
  84. Objects[i, j] = "Полные";
  85. break;
  86. case 1:
  87. Objects[i, j] = "Полные";
  88. break;
  89. case 2:
  90. Objects[i, j] = "Полные";
  91. break;
  92. case 3:
  93. Objects[i, j] = "Полные";
  94. break;
  95. }
  96. break;
  97. case 4:
  98. switch (j)
  99. {
  100. case 0:
  101. Objects[i, j] = "Полные права";
  102. break;
  103. case 1:
  104. Objects[i, j] = "Чтение";
  105. break;
  106. case 2:
  107. Objects[i, j] = "Чтение";
  108. break;
  109. case 3:
  110. Objects[i, j] = "Запись";
  111. break;
  112. }
  113. break;
  114. case 5:
  115. switch (j)
  116. {
  117. case 0:
  118. Objects[i, j] = "Полные права";
  119. break;
  120. case 1:
  121. Objects[i, j] = "Передача прав";
  122. break;
  123. case 2:
  124. Objects[i, j] = "Чтение";
  125. break;
  126. case 3:
  127. Objects[i, j] = "Чтение";
  128. break;
  129. }
  130. break;
  131. }
  132. }
  133. }
  134. /*for (int i = 0; i < 6; i++)
  135. {
  136. Console.WriteLine();
  137. Console.WriteLine("-------------------------------------------------");
  138. Console.WriteLine("Пользователь с id " + i);
  139. Console.WriteLine();
  140. for (int j = 0; j < 4; j++)
  141. {
  142. Console.Write("Об. " + j + ": " + Objects[i, j] + "; ");
  143. }
  144. }
  145. Console.ReadLine();*/
  146. string name;
  147. int id = 999;
  148. while (id == 999)
  149. {
  150. Console.WriteLine("Введите Ваше имя пользователя: ");
  151. name = Console.ReadLine();
  152. for (int i = 0; i < Users.Length; i++) //Выясняю id пользователя по имени
  153. {
  154. if (name == Users[i])
  155. {
  156. id = i;
  157. }
  158. }
  159. if (id == 999)
  160. {
  161. Console.WriteLine("Такого пользователя не существует. Попробуйте снова...");
  162. }
  163. }
  164. Console.WriteLine("Ваш id: " + id);
  165. Console.Read();
  166. Console.WriteLine("Ваши права: ");
  167. for (int j = 0; j < 4; j++) // Вывод прав на объекты для конкретного пользователя
  168. {
  169. Console.Write("Объект:" + j + " - ");
  170. Console.Write(Objects[id, j]);
  171. Console.WriteLine("; ");
  172. }
  173. Console.WriteLine("Жду указаний: (действие)"); // Дальше операторы не выполняются - закрывается консоль
  174. string cmd = Console.ReadLine();
  175. switch (cmd) // не завершено - проверка прав на действия с объектом
  176. {
  177. case "read":
  178. Console.WriteLine("Вы выбрали чтение объекта. Введите номер.");
  179. Console.ReadLine();
  180. break;
  181. case "write":
  182. Console.WriteLine("Вы выбрали запись объекта. Введите номер.");
  183. Console.ReadLine();
  184. break;
  185. case "get_rights":
  186. Console.WriteLine("Вы выбрали передачу прав. Введите номер объекта и имя пользователя.");
  187. Console.ReadLine();
  188. break;
  189.  
  190. }
  191. }
  192. }
  193. }
Ну и второстепенно - какие-нибудь комментарии к коду может будут. Задача:

Реализовать программное заполнение матрицы доступа, содержащей количество пользователей и объектов. Также может проводиться идентификация пользователя и вывод ему его прав на объекты. Наверное стоит переделать матрицу доступа в виде числовых идентификаторов прав, а там уже выводить название права по его ключу.

Решение задачи: «Закрытие консоли во время выполнения программы»

textual
Листинг программы
  1. Console.WriteLine("Введите Ваше имя пользователя: ");
  2. string name = Console.ReadLine();
  3. int id = Array.IndexOf(Users, name);
  4. while (id<0)
  5. {
  6.     Console.WriteLine("Такого пользователя не существует. Попробуйте снова...");
  7.     Console.WriteLine("Введите Ваше имя пользователя: ");
  8.     name = Console.ReadLine();
  9.     id = Array.IndexOf(Users, name);
  10. }

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


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

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

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

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

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

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