Pull to refresh

Написание простейшего калькулятора на языке C#

Level of difficultyEasy

Всем привет! У меня есть цель - научиться программировать. В качестве первого языка я решил выбрать C#, хотя также иногда занимаюсь изучением языка C++. И я решил, что можно выкладывать свой код и свои программы здесь, на Хабре, так как тут есть много специалистов, которые смогут дать совет как улучшить код, подскажут интересные варианты решения различных проблем и так далее. В общем, если вы будете видеть в коде какие то недочеты, то я всегда за то, чтобы вы меня поправили в комментариях. А теперь приступим к написанию кода на языке C#.

Я буду писать код в среде Visual Studio 2022. Для меня данная среда максимально удобная и понятная. Чтобы написать консольное приложение в этой среде, необходимо создать проект. Так выглядит необходимый для нас тип проекта:

После создания проекта перед нами появляется окно с таким кодом:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;

namespace calculator
{
    internal class Program
    {
        static void Main(string[] args)
        {
        }

    }
}

Писать весь наш код мы будем в пределах фигурных скобок данного метода:

static void Main(string[] args)
        {
        }

Для начала необходимо создать переменные, отвечающие за числа, которые будет вводить пользователь, переменную, отвечающую за результат, который получит пользователь, и переменную, отвечающую за знак действия.

Для вводимых чисел и результата создаем переменные типа float.

float one, two, result;

Также создаем переменную типа char, которая будет отвечать за знак действия.

char sign;

Итого получаем такой код:

static void Main(string[] args)
        {
            float one, two, result;
            char sign;
        }

Теперь давайте выведем надпись в консоль, чтобы пользователь знал, что это за программа. Используем команду Console.WriteLine(). Также давайте напишем здесь то, что должен сделать пользователь.

 Console.WriteLine("Добро пожаловать в калькулятор. Вам нелбходимо ввести первое число, затем знак действия(+,-,*,/), которое хотите совершить и второе число.");

Теперь выводим надписи о вводе первого числа, знака, а также второго числа. И также используем команду Console.ReadLine(), чтобы получить от пользователя значения всех переменных. Но необходимо конвертировать значение, так как выше написанная команда принимает по умолчанию только строки.

            Console.Write("Введите первое число: ");
            one = Convert.ToSingle(Console.ReadLine());
            Console.Write("Введите знак действия : ");
            sign = Convert.ToChar(Console.ReadLine());
            Console.Write("Введите Второе число: ");
            two = Convert.ToSingle(Console.ReadLine());

Так выглядит весь наш написанный код на данный момент:

static void Main(string[] args)
        {
            float one, two, result;
            char sign;
            Console.WriteLine("Добро пожаловать в калькулятор. Вам нелбходимо ввести первое число, затем знак действия(+,-,*,/), которое хотите совершить и второе число.");
            Console.Write("Введите первое число: ");
            one = Convert.ToSingle(Console.ReadLine());
            Console.Write("Введите знак действия : ");
            sign = Convert.ToChar(Console.ReadLine());
            Console.Write("Введите Второе число: ");
            two = Convert.ToSingle(Console.ReadLine());


        }

А теперь необходимо написать несколько условий. Во-первых, для выбора действий - сложение, вычитание, деление и умножение. А во-вторых, если мы выбрали деление, то необходимо прописать условие, которое проверяет делитель на то, равен он нулю или же нет. Так как условия действий примерно похожие, то я выложу сразу 5 условий(5 условие - если пользователь ввел недопустимый знак).

            if (sign == '+')
            {
                result = one + two;
                Console.WriteLine("Сумма ваших чисел равна " + result);
                Console.WriteLine("Для выхода нажмите любую клавишу...");
                Console.ReadKey();
            }
            else if (sign == '-')
            {
                result = one - two;
                Console.WriteLine("Разность ваших чисел равна " + result);
                Console.WriteLine("Для выхода нажмите любую клавишу...");
                Console.ReadKey();
            }
            else if (sign == '*')
            {
                result = one * two;
                Console.WriteLine("Произведение ваших чисел равно " + result);
                Console.WriteLine("Для выхода нажмите любую клавишу...");
                Console.ReadKey();
            }
            else if (sign == '/')
            {
                result = one / two;
                Console.WriteLine("Частное ваших чисел равно " + result);
                Console.WriteLine("Для выхода нажмите любую клавишу...");
                Console.ReadKey();
                

            }
            else
            {
                Console.WriteLine("Ошибка. Вы ввели неверный знак.");
                Console.WriteLine("Для выхода нажмите любую клавишу...");
                Console.ReadKey();


            }

Как вы могли заметить, я также использовал команду Console.ReadKey(), она использовалась для того, чтобы наша программа не закрывалась сразу после завершения вычислений. В этих условиях мы проверяли на равенство какому либо знаку переменную sign, имеющую тип char. А теперь давайте напишем условие, которое проверяет второе число на равенство нулю, его мы будем писать в той части кода, где описаны действия при выборе деления.

if (two == 0)
{
    Console.WriteLine("Ошибка. Делитель не может быть равным нулю.");
    Console.WriteLine("Для выхода нажмите любую клавишу...");
    Console.ReadKey();
}
else
{
    result = one / two;
    Console.WriteLine("Частное ваших чисел равно " + result);
    Console.WriteLine("Для выхода нажмите любую клавишу...");
    Console.ReadKey();
}

Как вы можете заметить, ничего сложного тут нет. Итого имеем такой код при выборе деления:

else if (sign == '/')
            {
                if (two == 0)
                {
                    Console.WriteLine("Ошибка. Делитель не может быть равным нулю.");
                    Console.WriteLine("Для выхода нажмите любую клавишу...");
                    Console.ReadKey();
                }
                else
                {
                    result = one / two;
                    Console.WriteLine("Частное ваших чисел равна " + result);
                    Console.WriteLine("Для выхода нажмите любую клавишу...");
                    Console.ReadKey();
                }

Ну и вот весь код, который мы написали.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;

namespace calculator
{
    internal class Program
    {
        static void Main(string[] args)
        {
            float one, two, result;
            char sign;
            Console.WriteLine("Добро пожаловать в калькулятор. Вам нелбходимо ввести первое число, затем знак действия(+,-,*,/), которое хотите совершить и второе число.");
            Console.Write("Введите первое число: ");
            one = Convert.ToSingle(Console.ReadLine());
            Console.Write("Введите знак действия : ");
            sign = Convert.ToChar(Console.ReadLine());
            Console.Write("Введите Второе число: ");
            two = Convert.ToSingle(Console.ReadLine());
            if (sign == '+')
            {
                result = one + two;
                Console.WriteLine("Сумма ваших чисел равна " + result);
                Console.WriteLine("Для выхода нажмите любую клавишу...");
                Console.ReadKey();
            }
            else if (sign == '-')
            {
                result = one - two;
                Console.WriteLine("Разность ваших чисел равна " + result);
                Console.WriteLine("Для выхода нажмите любую клавишу...");
                Console.ReadKey();
            }
            else if (sign == '*')
            {
                result = one * two;
                Console.WriteLine("Произведение ваших чисел равно " + result);
                Console.WriteLine("Для выхода нажмите любую клавишу...");
                Console.ReadKey();
            }
            else if (sign == '/')
            {
                if (two == 0)
                {
                    Console.WriteLine("Ошибка. Делитель не может быть равным нулю.");
                    Console.WriteLine("Для выхода нажмите любую клавишу...");
                    Console.ReadKey();
                }
                else
                {
                    result = one / two;
                    Console.WriteLine("Частное ваших чисел равна " + result);
                    Console.WriteLine("Для выхода нажмите любую клавишу...");
                    Console.ReadKey();
                }


            }
            else
            {
                Console.WriteLine("Ошибка. Вы ввели неверный знак.");
                Console.WriteLine("Для выхода нажмите любую клавишу...");
                Console.ReadKey();


            }

        }

    }
}

А теперь давайте посмотрим, как работает наша программа.

Вводим числа и действие и видим, что все работает.

И давайте еще попробуем умножить дробное число на целое.

И опять видим, что все работает.

Вот такая получилась у нас программа. А на этом у меня всё. Если есть какие то вопросы, или же если вы хотите что то поправить, пишите в комментариях, я всегда на них с радостью отвечу!

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.