ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode


Калькулятор C# в консоли


В данном уроке опять создадим простенький калькулятор на языке C#, но в этот раз будем работать в консоли.
Калькуляторы на Windows Forms можно посмотреть здесь и здесь.

Данный калькулятор абсолютно элементарен и требует минимальных знаний языка. Создаём проект («Файл» ->»Создать»->»Проект»->»Консольное приложение») и объявляем наши переменные:

Double — это тип переменной с плавающей запятой, иными словами, тип, в который можно записать десятичные числа, причём довольно большие. В него поместится как значение 5, так и значение 5,45, и даже значение 5,4571601695, также в нём можно использовать и отрицательные числа.
В переменную a мы внесём первое число, которое запишет пользователь. В переменную b — второе число. А переменная total будет выводить результат математических операций с переменными а и b.

Char — это тип переменной в виде какого-либо символа, будь то буква, цифра или какой-нибудь знак. В переменную oper мы будем заносить знак математической операции над числами. В нашем калькуляторе будут только самые основные — «+», «-«, «*» и «/».

Итак, мы объявили переменные, теперь нам надо узнать, что конкретно нужно посчитать пользователю, а для этого придётся считывать данные, которые он будет вводить:

Сначала мы выводим на консоль надпись о том, чтобы пользователь ввёл первое число.

В следующей строке мы присваиваем переменной a введенное пользователем число, но при этом не забываем, что введенные пользователем данные всегда имеют строковой формат string, а так как у нашей переменной тип double, то надо отконвертировать string в double соответствующим методом Convert.

Примерно то же самое мы проделываем с переменной oper, но конвертируем string уже не в double, а в char, потому что переменная oper имеет такой тип данных.

Точно то же самое, что было с переменной a проделываем и с переменной b, так как они одинакового типа.

Числа получены. Но пока неизвестно, как ими оперировать, так как главное для нас — узнать что за знак скрывается в переменной oper, и уже исходя из этого, производить операции над числами:

Для этого мы используем оператор условия if (если).
Первая строка звучит примерно так: если в переменной oper записан знак «+», то..


..мы присваиваем переменной total сумму переменных a и b и выводим ответ на экран. В кавычках записаны слова, которые выводятся на экран, а переменные, расположившиеся среди плюсов выводят свои значения. Пример такого ответа выглядит вот так:

2015-10-12 22-42-59 Скриншот экрана

По подобию первого условия мы создаём остальные, используя операторы else if (так положено семантически, если для алгоритма необходимы какие-либо условия. Если условия не необходимы, то можно использовать оператор else, как написано ниже).

Мы расписали все необходимые нам операторы. Но что, если пользователь введёт какой-нибудь неверный оператор? Тогда нам следует предупредить его, что такого оператора нет. Для этого мы используем else. Логика такая — если у нас в oper имеется знак плюса — мы складываем, если же минус -вычитаем, знак умножения- умножаем, знак деления — делим, если в oper имеется любой другой знак (всё остальное), то нам уже не нужно какое-то определение условия (как, например, oper==’+’), поэтому можно обойтись простым else.

Наша программа уже работает, но, пожалуй, можно добавить ещё одну несложную деталь.
А что, если пользователь захочет выполнить несколько операций? Например, сначала сложить два числа, а затем умножить два других числа? Для этого ему пришлось бы перезапускать программу. Но можно сделать и иначе:

Это код всей нашей программы, но мы в неё кое-что добавили. А именно, переменную again типа char и цикл while. Итак, по замыслу, мы добавили после вывода посчитанных данных ещё один вопрос для пользователя, хотел бы он продолжить работу с калькулятором? Для выбора ответа ему предоставляются два знака д — да и н — нет. Если пользователь напишет в консоли «н», то программа закроется, т.к. у нас в коде нет ничего, что было бы связано с переменной again, имеющей значение «н». Но если пользователь выберет «д», то программа начнёт работу заново благодаря циклу while и будет работать до тех пор, пока пользователь не присвоит переменной again значение «н».
Данную программу можно улучшать дальше и дальше, но данный урок закончится на этом. Скачать исходный код программы «Калькулятор C#» можно по ссылке ниже. Спасибо за прочтение!

Скачать исходник

 

 

4.6/5 - (24 голоса)



Поделиться в соц. сетях:

2 комментария(ев) к статье “Калькулятор C# в консоли

  1. monoquad

    а как обезопасить себя от того, что пользователь введет вместо числа какую-то ерунду?

    1. Дима

      Используйте вот такой код:

      double a;
      double b;
      double total;
      char oper;
      try
      {
      Console.WriteLine(«Введите первое число:»);
      a = Convert.ToDouble(Console.ReadLine());

      Console.WriteLine(«Введите оператор:»);
      oper = Convert.ToChar(Console.ReadLine());

      Console.WriteLine(«Введите второе число:»);
      b = Convert.ToDouble(Console.ReadLine());
      }
      catch (System.FormatException)
      {
      // тут вывести в консоль ошибку.
      }

Добавить комментарий

Ваш адрес email не будет опубликован.