示例#1
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Введите help для помощи, exit для выхода");
            while (true)
            {
                Console.Write("Вводите: ");
                string commandString = Console.ReadLine();
                var    separator     = new[] { ' ' };
                commandString = commandString.Trim().ToLower();
                if (commandString == "help")
                {
                    Helper.GetHelp();
                    continue;
                }

                if (commandString == "exit")
                {
                    break;
                }

                string[] receivedCommands = commandString.Split(separator, StringSplitOptions.RemoveEmptyEntries);

                if (receivedCommands.Length != 3)
                {
                    Console.WriteLine("Неверный формат ввода, введите <команда> <рациональное число> <рациональное число>");
                    continue;
                }

                Rational first;
                Rational second;

                bool isFirstCorrect  = Rational.TryParse(receivedCommands[1], out first);
                bool isSecondCorrect = Rational.TryParse(receivedCommands[2], out second);
                if (!isFirstCorrect && !isSecondCorrect)
                {
                    Console.WriteLine("Числа введенены в неверном формате, уточните формат ввода командой help");
                    continue;
                }

                if (!isFirstCorrect)
                {
                    Console.WriteLine("Число " + receivedCommands[1] +
                                      " введенено в неверном формате, уточните формат ввода командой help");
                    continue;
                }

                if (!isSecondCorrect)
                {
                    Console.WriteLine("Число " + receivedCommands[2] +
                                      " введенено в неверном формате, уточните формат ввода командой help");
                    continue;
                }

                Rational result = new Rational();
                switch (receivedCommands[0])
                {
                case Commands.Add:
                    result = first + second;
                    break;

                case Commands.Sub:
                    result = first - second;
                    break;

                case Commands.Mul:
                    result = first * second;
                    break;

                case Commands.Div:
                    try
                    {
                        result = first / second;
                    }
                    catch (DivideByZeroException)
                    {
                        Console.WriteLine("Делить на ноль нельзя");
                        continue;
                    }
                    break;

                default:
                    Console.WriteLine("Вы ввели некоректную команду");
                    continue;
                }
                Console.WriteLine(result);
            }
        }
示例#2
0
文件: Program.cs 项目: nzvcv/UrFU
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Write("Вводите команду (help - для справки): ");
                string commandString = Console.ReadLine();
                var    separator     = new[] { ' ' };
                commandString = commandString.Trim().ToLower();

                if (commandString == "exit")
                {
                    break;
                }

                string[] receivedCommands = commandString.Split(separator, StringSplitOptions.RemoveEmptyEntries);

                if (receivedCommands[0] == "help")
                {
                    Console.WriteLine("Программа выполняет арифметические действия над рациональными числами");
                    Console.WriteLine("Список команд:\n" +
                                      "add - сложение\n" +
                                      "sub - вычитание\n" +
                                      "mul - умножение\n" +
                                      "div - деление\n" +
                                      "exit-выход\n" +
                                      "help-помощь");
                    continue;
                }

                if (receivedCommands.Length != 3)
                {
                    Console.WriteLine("Неверный формат ввода, введите <команда> <рациональное число> <рациональное число>");
                    continue;
                }

                Rational first;
                Rational second;

                bool isFirstCorrect  = Rational.TryParse(receivedCommands[1], out first);
                bool isSecondCorrect = Rational.TryParse(receivedCommands[2], out second);
                if (!isFirstCorrect && !isSecondCorrect)
                {
                    Console.WriteLine("Числа введенены в неверном формате");
                    continue;
                }

                if (!isFirstCorrect)
                {
                    Console.WriteLine("Число " + receivedCommands[1] +
                                      " введенено в неверном формате");
                    continue;
                }

                if (!isSecondCorrect)
                {
                    Console.WriteLine("Число " + receivedCommands[2] +
                                      " введенено в неверном формате");
                    continue;
                }

                Rational result = new Rational();
                switch (receivedCommands[0])
                {
                case "add":
                    result = first + second;
                    break;

                case "sub":
                    result = first - second;
                    break;

                case "mul":
                    result = first * second;
                    break;

                case "div":
                    try
                    {
                        result = first / second;
                    }
                    catch (DivideByZeroException)
                    {
                        Console.WriteLine("Делить на ноль нельзя");
                        continue;
                    }
                    break;

                default:
                    Console.WriteLine("Вы ввели некоректную команду");
                    continue;
                }
                Console.WriteLine(result);
            }
        }