Что не так в приведенном коде? - C#

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

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

что не так в этом коде, подскажите пожалуйста
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ClassTesting
{
 
    class Program
    {
        static void Main(string[] args)
        {
 
        }
    }
 
    public class Man
    {
        // конструктор класса (данная функция вызывается 
        // при создании нового экземпляра класса 
        public Man(string _name)
        {
            // переменная, которая будет хранить команду пользователя 
            string user_command = "";
 
            // бесконечный цикл 
            bool Infinity = true;
            // пустой (раный null) экземпляр класса Man 
            Man SomeMan = null;
 
            while (Infinity) // пока Infinity равно true 
            {
                // приглашение ввести команду 
                System.Console.WriteLine("Пожалуйста, введите команду");
 
                // получение строки (команды) от пользователя 
                user_command = System.Console.ReadLine();
 
                // обработка команды с помощью оператора ветвления 
                switch (user_command)
                {
 
                    // если user_command содержит строку exit 
                    case "exit":
                        {
                            Infinity = false;
                            // теперь цикл завершиться, и программа завершит свое выполнение 
                            break;
                        }
 
                    // если user_command содержит строку help 
                    case "help":
                        {
                            System.Console.WriteLine("Список команд:");
                            System.Console.WriteLine("---");
 
                            System.Console.WriteLine("create_man : команда создает человека, (экземпляр класса Man)");
                            System.Console.WriteLine("kill_man : команда убивает человека");
                            System.Console.WriteLine("talk : команда заставляет человека говорить (если создан экземпляр класса)");
                            System.Console.WriteLine("go : команда заставляет человека идти (если создан экземпляр класса)");
 
                            System.Console.WriteLine("---");
                            System.Console.WriteLine("---");
 
                            break;
                        } // если команду определить не удалось 
 
                    default:
                        {
                            System.Console.WriteLine("Ваша команда не определена, пожалуйста, повторите снова");
                            System.Console.WriteLine("Для вывода списка команд введите команду help");
                            System.Console.WriteLine("Для завершения программы введите команду exit");
                            break;
                        }

                    case "create_man":
                        {
                            // проверяем, создан ли уже какой либо человек 
                            if (SomeMan != null)
                            {
                                // человек уже существует. 
                                // убиваем его 
                                // (это не обязательная операция синтаксиса языка 
                                // а всего лишь каприз автора кода :), вы можете пропустить эту строку) 
 
                                SomeMan.Kill();
 
                            } // просим ввести имя человека 
 
                            System.Console.WriteLine("Пожалуйста, введите имя создаваемого человека ");
 
                            // получаем строку введенную пользователем 
                            user_command = System.Console.ReadLine();
 
                            // создаем новый объект в памяти, в качестве параметра 
                            // передаем имя человека 
                            SomeMan = new Man(user_command);
 
                            // сообщаем о создании 
                            System.Console.WriteLine("Человек успешно создан ");
 
                            break;
 
                        }
                    case "kill_man":
                        {
                            // проверяем, что объект существует в памяти 
                            if (SomeMan != null)
                            {
                                // вызываем фукнцию сметри 
                                SomeMan.Kill();
                            }
                            break;
                        }
                    case "talk":
                        {
                            // проверяем, что объект существует в памяти 
                            if (SomeMan != null)
                            {
                                // вызываем функцию разговора 
                                SomeMan.Talk();
                            }
                            else // иначе 
                            {
                                System.Console.WriteLine("Человек не создан. Команда не может быть выполнена");
                            }
 
                            break;
                        }
 
                    case "go":
                        {
 
                            // проверяем, что объект существует в памяти 
                            if (SomeMan != null)
                            {
                                // вызываем функцию передвижения 
                                SomeMan.Go();
                            }
                            else
                            {
                                System.Console.WriteLine("Человек не создан. Команда не может быть выполнена");
                            }
 
                            break;
 
                        }
 
                        // получаем имя человека из входного параметра 
                        // конструктора класса 
                        Name = _name;
                        // экземпляр жив 
                        isLife = true;
 
                        // генерируем возраст от 15 до 50 
                        Age = (uint)rnd.Next(15, 51);
                        // и здоровье, от 10 до 100% 
                        Health = (uint)rnd.Next(10, 101);
 
                }
            }
        }
            // экземпляр класса Random 
        // для генерации случайных чисел 
 
        private Random rnd = new Random();
 
        // закрытые члены, которые нельзя изменить 
        // извне класса
 
        // строка, содержащая имя 
        private string Name;
 
        // беззнаковое целое число, содержащая возраст 
        private uint Age;
 
        // беззнаковое целое число, отражающее уровень здоровья 
        private uint Health;
 
        // булево, означающее жив ли данный человек 
        private bool isLife;
 
        // заготовква функции "говорить" 
        public void Talk()
        {
            // генерируем случайное число от 1 до 3 
            int random_talk = rnd.Next(1, 4);
 
            // объявляем переменную, в которой мы будем хранить 
            // строку 
 
            string tmp_str = "";
            // в зависимости от случ значения random_talk 
            switch (random_talk)
            {
 
                case 1: // если 1 - называем свое имя 
                    { // генерируем текст сообщения 
                        tmp_str = "Привет, меня зовут " + Name + ", рад познакомиться";
                        // завершаем оператор выбора 
                        break;
                    }
 
                case 2: // возраст 
                    {
                        // генерируем текст сообщения 
                        tmp_str = "Мне " + Age + ". А тебе?";
                        // завершаем оператор выбора 
                        break;
                    }
 
                case 3: // говорим о своем здоровье 
                    {
 
                        // в зависимости от параметра здоровья 
                        if (Health > 50)
                            tmp_str = "Да я здоров как бык!";
                        else
                            tmp_str = "Со здоровьем у меня хреново, дожить бы до " + (Age + 10).ToString();
 
                        // завершаем оператор выбора 
                        break;
                    }
                    // выводим в консоль сгенерированное сообщение 
                    System.Console.WriteLine(tmp_str);
            }
 
        }

        // заготовка функции "идти" 
        public void Go()
        {
            // если объект жив 
            if (isLife == true)
            {
                // если показатель более 40 
                // считаем объект здоровым 
                if (Health > 40)
                {
                    // генерируем строку текста 
                    string outString = Name + " мирно прогуливается по городу";
                    // выводим в консоль 
                    System.Console.WriteLine(outString);
                }
                else
                {
                    // генерируем строку текста 
                    string outString = Name + " болен и не может гулять по городу";
                    // выводим в консоль 
                    System.Console.WriteLine(outString);
                }
 
            }
            else
            {
                // генерируем строку текста 
                string outString = Name + " не может идти, он умер";
                System.Console.ReadKey();
            }
 
        }
 
        // функция, возвращающая показатель - жив ли данный человек. 
        public bool IsAlive()
        {
            // возращаем значение, к которому мы не можем 
            // обратиться напрямую из вне класса, 
            // так как оно имеет статус private 
            return isLife;
        }
        public void Kill()
        {
            // устанавливаем значение isLife (жив) 
            // в false... 
            isLife = false;
        }
    }
}

Решение задачи: «Что не так в приведенном коде?»

textual
Листинг программы
            while (Infinity) // пока Infinity равно true, а оно всегда равно true
            {
                System.Console.WriteLine("Пожалуйста, введите команду");
                user_command = System.Console.ReadLine();
            }

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


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

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

7   голосов , оценка 3.286 из 5