Закрытие консоли во время выполнения программы - C#
Формулировка задачи:
Консоль закрывается до того, как выполнится вся программа. В коде написаны комментарии и место, после которого операторы не выполняются и консоль закрывается.
Код:
Ну и второстепенно - какие-нибудь комментарии к коду может будут.
Задача:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string[] Users = new string[6]; //Пользователи Users[0] = "Павел"; Users[1] = "Артём"; Users[2] = "Гость"; Users[3] = "Admin"; Users[4] = "Екатерина"; Users[5] = "Ольга"; object[,] Objects = new object[6, 4]; // Массив Объектов и прав доступа к ним for (int i = 0; i < 6; i++) { for (int j = 0; j < 4; j++) { switch (i) { case 0: //Пользователь с id = 0 switch (j) { case 0: Objects[i, j] = "Полные права"; break; case 1: Objects[i, j] = "Чтение"; break; case 2: Objects[i, j] = "Чтение"; break; case 3: Objects[i, j] = "Запись"; break; } break; case 1: //Пользователь с id = 1 switch (j) { case 0: Objects[i, j] = "Полные права"; break; case 1: Objects[i, j] = "Чтение"; break; case 2: Objects[i, j] = "Передача прав"; break; case 3: Objects[i, j] = "Запись"; break; } break; case 2: //Пользователь с id = 2 switch (j) { case 0: Objects[i, j] = "Чтение"; break; case 1: Objects[i, j] = "Чтение"; break; case 2: Objects[i, j] = "Чтение"; break; case 3: Objects[i, j] = "Чтение"; break; } break; case 3: switch (j) { case 0: Objects[i, j] = "Полные"; break; case 1: Objects[i, j] = "Полные"; break; case 2: Objects[i, j] = "Полные"; break; case 3: Objects[i, j] = "Полные"; break; } break; case 4: switch (j) { case 0: Objects[i, j] = "Полные права"; break; case 1: Objects[i, j] = "Чтение"; break; case 2: Objects[i, j] = "Чтение"; break; case 3: Objects[i, j] = "Запись"; break; } break; case 5: switch (j) { case 0: Objects[i, j] = "Полные права"; break; case 1: Objects[i, j] = "Передача прав"; break; case 2: Objects[i, j] = "Чтение"; break; case 3: Objects[i, j] = "Чтение"; break; } break; } } } /*for (int i = 0; i < 6; i++) { Console.WriteLine(); Console.WriteLine("-------------------------------------------------"); Console.WriteLine("Пользователь с id " + i); Console.WriteLine(); for (int j = 0; j < 4; j++) { Console.Write("Об. " + j + ": " + Objects[i, j] + "; "); } } Console.ReadLine();*/ string name; int id = 999; while (id == 999) { Console.WriteLine("Введите Ваше имя пользователя: "); name = Console.ReadLine(); for (int i = 0; i < Users.Length; i++) //Выясняю id пользователя по имени { if (name == Users[i]) { id = i; } } if (id == 999) { Console.WriteLine("Такого пользователя не существует. Попробуйте снова..."); } } Console.WriteLine("Ваш id: " + id); Console.Read(); Console.WriteLine("Ваши права: "); for (int j = 0; j < 4; j++) // Вывод прав на объекты для конкретного пользователя { Console.Write("Объект:" + j + " - "); Console.Write(Objects[id, j]); Console.WriteLine("; "); } Console.WriteLine("Жду указаний: (действие)"); // Дальше операторы не выполняются - закрывается консоль string cmd = Console.ReadLine(); switch (cmd) // не завершено - проверка прав на действия с объектом { case "read": Console.WriteLine("Вы выбрали чтение объекта. Введите номер."); Console.ReadLine(); break; case "write": Console.WriteLine("Вы выбрали запись объекта. Введите номер."); Console.ReadLine(); break; case "get_rights": Console.WriteLine("Вы выбрали передачу прав. Введите номер объекта и имя пользователя."); Console.ReadLine(); break; } } } }
Реализовать программное заполнение матрицы доступа, содержащей количество пользователей и объектов. Также может проводиться идентификация пользователя и вывод ему его прав на объекты. Наверное стоит переделать матрицу доступа в виде числовых идентификаторов прав, а там уже выводить название права по его ключу.
Решение задачи: «Закрытие консоли во время выполнения программы»
textual
Листинг программы
Console.WriteLine("Введите Ваше имя пользователя: "); string name = Console.ReadLine(); int id = Array.IndexOf(Users, name); while (id<0) { Console.WriteLine("Такого пользователя не существует. Попробуйте снова..."); Console.WriteLine("Введите Ваше имя пользователя: "); name = Console.ReadLine(); id = Array.IndexOf(Users, name); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д