Простой консольный калькулятор - C#

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

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

Задание такое: Реализовать усовершенствованный консольный арифметический калькулятор. С консоля ввести всё выражение, например, 15+63, результат вывести на консоль. При выборе операции использовать оператор switch. Выполнить разбор выражения, проверку допустимости входных данных. Обработку ошибок выполнить з использованием блока try...catch. Завершение работы программы сделать за запросом "Для заверешения работы введите exit" через цикл do... while . На форуме уже нашёл похожий калькулятор. Вот ссылка, автор его Delog. Но он слишком сложный, мне попроще нада + использовать оператор switch, а также там нету блока try...catch, нужен подсчёт только простых выражений, а там ещё реализовано со скобками. В интеренете нашёл ещё один пример, но он также неподходит по некоторым причинам. Помогите пожалуйста с реализацей задачки.

Решение задачи: «Простой консольный калькулятор»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace kalc for_cyberforum
{
    class Program
    {
        static void Main(string[] args)
        {
 
            bool quit = false;
            bool flag = false;
 
            float first = 0;
            float second = 0;
 
            char operation = '\0';
 
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine();
            Console.WriteLine(" + : сложение чисел");
            Console.WriteLine(" - : вычетание чисел");
            Console.WriteLine(" * : умножение чисел");
            Console.WriteLine(" / : деление чисел");
            Console.WriteLine(" q : ВЫХОД из программы ");
            Console.WriteLine();
 
 
            Console.ForegroundColor = ConsoleColor.Green;
            do
            {
                try
                {
                    Console.Write("Введите первое число: ");
                    first = float.Parse(Console.ReadLine());
 
                    Console.Write("Введите второе число: ");
                    second = float.Parse(Console.ReadLine());
 
                    Console.Write("Укажите операцию: ");
 
                    operation = char.Parse(Console.ReadLine());
                }
                catch
                {
                    flag = true;
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\aВНИМАТЕЛЬНО ЧИТАЙТЕ ИНСТРУКЦИЮ!!!");
                    Console.ForegroundColor = ConsoleColor.Green;
                }
 
 
                if(!flag)
                {
                    switch (operation)
                    {
                        case '+': Console.WriteLine("Сумма чисел составляет: " + (first + second));break;
                        case '-': Console.WriteLine("Разность чисел состовляет: " +(first - second));break;
                        case '*': Console.WriteLine("Произведение чисел составляет: " + (first * second));break;
                        case '/': Console.WriteLine("Отношение чисел составляет: " + (first / second));break;
                        case 'q': quit = true; break;
                        default:
                            {
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("\aВНИМАТЕЛЬНО ЧИТАЙТЕ ИНСТРУКЦИЮ!!!");
                                Console.ForegroundColor = ConsoleColor.Green;
                            } 
                            break;
                   }
                }
 
                flag = false;
 
            }
            while(!quit);
 
        }
    }
}

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

11   голосов , оценка 3.818 из 5