Как создать консольное приложение калькулятор

Обновлено: 07.07.2024

В этой статье простым языком изложена вся необходимая информация для программирования калькулятора на языке C. Применяемая программа используется на лабораторных занятиях студентов инженерных специальностей первого года обучения. Так что любой студент, например изучающий математическое моделирование в биологии, сможет самостоятельно запрограммировать калькулятор. Попробуем сделать калькулятор и мы.

Цель этой программы

Сделать простой калькулятор на языке программирования C с помощью оператора switch .

Понятия, используемые в программе

Типы данных

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

В этой программе использованы целочисленные и символьные типы данных — int и char соответственно.

int

Переменная int используется для хранения целых чисел.

Синтаксис для int: int variable_name =integer ;.

Например: int a=10;.

char

Самый распространенный тип данных на C. Он занимает в памяти один байт почти во всех компиляторах.

Синтаксис для char : char variable_name=”single character”;.

Например: char b=”x”;.

Операторы switch

Переключатель (оператор switch) позволяет проверить переменную на соответствие по списку значений. Каждое значение называется случаем (case) , и переменная, для которой задействуется оператор switch , проверяется для каждого случая внутри switch .

Синтаксис для switch :

switch(expression) case value1:
statement(s);
break;
case value2:
statement(s);
break;
…….
default:
statement(s)
>

Алгоритм для этой программы

Шаг 1 : начало.

Шаг 2 : объявляется переменная n, a, b, c типа данных int .

Шаг 3 : отображается меню для пользователя.

Шаг 4 : читается значение n от пользователя.

Шаг 5 : при вводе пользователем любого числа от 1 до 5 выполняется следующий шаг согласно случаю, соответствующему введенному числу.

a) случай 1. Читаются значения a и b . Высчитывается сумма a и b . Результат отображается с помощью break;.

б) случай 2. Читаются значения a и b . Высчитывается разность a и b . Результат отображается с помощью break;.

в) случай 3. Читаются значения a и b . Высчитывается произведение a и b . Результат отображается с помощью break;.

г) случай 4. Читаются значения a и b . Высчитывается частное от деления а на b . Результат отображается с помощью break;.

д) случай 5. Читаются значения a и b . Высчитывается квадрат а . Результат отображается с помощью break;.

е) default: отображается Invalid.

Шаг 7 : конец.

Блок-схема

Заголовочный файл stdio . h расшифровывается как “standard input output” («стандартный ввод/вывод»). В нем содержится информация, связанная с функциями ввода/вывода.

Что такое «main»?

Функция main () — это точка входа любой программы на Си . Здесь начинается выполнение программы. При этом контроль выполнения переходит непосредственно в функцию main (). Функция main () есть в каждой программе на C.

Что такое «printf» и «scanf»?

Функция printf () задействуется для отображения вывода, а функция scanf () — для принятия пользовательского ввода. Они часто используются в языке C, в частностив заголовочных файлах в качестве встроенных библиотечных функций.

Что такое «switch» и «case»?

Оператор switch позволяет проверить переменную на соответствие по списку значений. Каждое значение называется случаем ( case ), а переменная, для которой задействуется оператор switch , проверяется для каждого случая case внутри switch .

Что такое оператор «break»?

break — это ключевое слово, которое используется в языке C для вывода управления программой из цикла . Оператор break задействуется внутри циклов или внутри оператора switch, прерывая циклы один за другим. То есть в случае вложенных циклов сначала он прерывает внутренний цикл , а затем переходит к внешним.

А для чего на C нужен «default»?

Операторы switch и case используются только для конкретных значений выполняемых операторов case и для проверяемого выражения внутри switch . Когда выражение в switch не соответствует ни одному случаю case , программа выполняет операторы default .

Что такое «ruturn 0»?

return 0 в функции main означает, что программа выполнена успешно и определяемая пользователем функция возвращает false. return 1 в функции main означает, что программа не выполнена успешно и есть какая-то ошибка, а определяемая пользователем функция возвращает true.

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

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

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

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

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

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

Console . WriteLine ( "Cумма " + a + " и " + b + " равна " + total + "." ) ; Console . WriteLine ( "Разность " + a + " и " + b + " равна " + total + "." ) ; Console . WriteLine ( "Умножение " + a + " на " + b + " равно " + total + "." ) ; Console . WriteLine ( "Деление " + a + " на " + b + " равно " + total + "." ) ;

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

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

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


Для создания простого калькулятора воспользуемся стандартным консольным приложением в котором будем спрашивать пользователя и выводить ему результат работы на экран.

Для этого запустим Embarcadero Rad Studio XE 3


Создаем новый консольный проект для этого выполняем следующие действия.




Создается шаблон проекта все что написала среда разработки нужно оставлять так как есть



После отключения нам станут доступны следующие функции.

cout (console out - консольный вывод) - данная функция позволяет вывести содержимое любой переменной на экран консоли



когда нужно перенести текст на новую строчку нужно вывести на экран символ переноса строки \n


2) Функция получения данных с клавиатуры:

cin (console input - консольный ввод) - данная функция позволяет записать из клавиатуры значение переменной


Ввод пользователем символа клавиатуры и вывод его на экран


Ввод нескольких символов с клавиатуры и вывод их на экран, особенность данного подхода в том что символы вводить нужно без пробела так как cin читает данные до пробела.

В этом руководстве мы расскажем, как создать калькулятор на Java для Android. Если вы новичок в программировании и никогда раньше не создавали приложения, ознакомьтесь с нашим предыдущим руководством по написанию первого приложения для Android:


Предполагается, что у вас есть хотя бы минимальный базовый опыт создания Android – приложений .

Полный исходный код калькулятора, описанного ниже, доступен для использования и изменения на github .

Создание проекта

Создание проекта

Для этого руководства мы выбрали в панели « Add an Activity to Mobile » опцию « EmptyActivity », для « MainActivity » мы оставили имя по умолчанию – « Activity ». На этом этапе структура должна выглядеть, как показано на рисунке ниже. У вас есть MainActivity внутри пакета проекта и файл activity_main.xml в папке layout :

Создание проекта - 2

Включение привязки данных в проекте

Перед тем, как создать приложение для Андроид с нуля, нужно уяснить, что использование привязки данных помогает напрямую обращаться к виджетам ( Buttons , EditText и TextView ), а не находить их с помощью методов findViewById() . Чтобы включить привязку данных, добавить следующую строку кода в файл build.gradle .

Включение привязки данных в проекте

Разработка макета калькулятора

Для включения привязки данных в файле activity_main.xml требуется еще одно изменение. Оберните сгенерированный корневой тег ( RelativeLayout ) в layout , таким образом сделав его новым корневым тегом.

Как научиться создавать приложения для Андроид? Читайте наше руководство дальше.

Теперь перейдите к файлу MainActivity.java . Создайте закрытый экземпляр ActivityMainBinding внутри вашего класса, а в методе onCreate() удалите строку setContentView () и вместо нее добавьте DataBindingUtil.setContentView() , как показано ниже.

Общие принципы создания виджетов макета

В приложении калькулятора есть четыре основных элемента:

Создание макета калькулятора

Создание макета калькулятора

Код макета калькулятора объемный. Это связано с тем, что мы должны явно определять и тщательно позиционировать каждую из кнопок интерфейса. Ниже представлен фрагмент сокращенной версии файла макета activity_main :

Внутренние компоненты калькулятора

Этот простой калькулятор сможет выполнять только операции сложения, вычитания, умножения и деления. Поэтому мы определяем четыре статических символа для представления этих операций и переменную CURRENT_ACTION , содержащую следующую операцию, которую мы намереваемся выполнить.

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

Обработка нажатий на цифры

В нашем создаваемом простом приложении для Андроид всякий раз, когда пользователь нажимает на цифру или точку, нам нужно добавить эту цифру в editText . Пример кода ниже иллюстрирует, как это делается для цифры ноль ( 0 ).

Обработка кликов по кнопкам операторов

Обработка кликов по кнопкам операторов

Обработка нажатия кнопок операторов ( действий ) выполняется по-другому. Сначала нужно выполнить все ожидающие в очереди вычисления. Поэтому мы определяем метод computeCalculation . В computeCalculation , если valueOne является допустимым числом, мы считываем valueTwo из editText и выполняем текущие операции в очереди. Если же valueOne является NaN , для valueOne присваивается цифра в editText .

Продолжаем создавать копию приложения на Андроид . Для каждого оператора мы сначала вызываем computeCalculation() , а затем устанавливаем для выбранного оператора CURRENT_ACTION . Для оператора равно (=) мы вызываем computeCalculation() , а затем очищаем содержимое valueOne и CURRENT_ACTION .

Заключение

Если вы запустите и протестируете данное приложение, то увидите некоторые моменты, которые можно улучшить: 1) возможность нажимать на кнопку оператора, когда editText очищен ( т. е. без необходимости ввода первой цифры ), 2) возможность продолжать вычисления после нажатия кнопки « Равно ».

Полный код примера доступен на github .

Пожалуйста, опубликуйте свои отзывы по текущей теме статьи. За комментарии, подписки, лайки, дизлайки, отклики низкий вам поклон!

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

Читайте также: