Закрытие консоли во время выполнения программы - 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);
}

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


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

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

9   голосов , оценка 4 из 5
Похожие ответы