Простой консольный калькулятор - 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);
}
}
}