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