Калькулятор на C++ (windows forms) в visual studio
Одна из задач, задаваемых студентам по программированию, это создание калькулятора. Раскрою вам небольшой секрет: немало практических, курсовых и лабораторных работ на C++, C# и Java можно и не делать самостоятельно – есть готовые решения в сети. Однако, я был несколько удивлен, что для такого распространенного задания, как визуальный калькулятор на C++ нет такого готового решения. Ну что ж, нет, так нет, давайте напишем его сами.
Итак, как в большинстве проектов, все начинается с создания приложения Windows Forms, а уже в нем – с редактирования формы. У нас получилась вот такая:
Проект для VS2015
В чем будем считать и хранить числа? Я выбрал тип double – точности его нам вполне хватит; это все же студенческая работа, а не для точных инженерных расчетов. Дальше определимся с тем, сколько чисел и операций будем хранить в памяти. Предположим, штук двадцать: тогда надо создать два массива – один для чисел, а другой для операций между ними.
static array ^mass = gcnew array; static array ^ukaz = gcnew array;
Почему мы воспользовались указателями, а не просто создали глобальные переменные за пределами windows forms? Дело в том, что, использование глобальных переменных – это плохой тон при программировании, и очень часто преподаватели против данной практики студентов.
В нашей программе будут три основных метода: vvod — принимает цифру (нажатую кнопку) в качестве аргумента и добавляет её к числу. ravno — нажатие на кнопку равно — все считает, ravno2 — это нажатие на кнопку знака. Факториал, деление единицы на число и корень квадратные — там реализуются методы сразу при нажатии все обрабатывается.
Добавим также флаг для памяти:
static int mem_flag=0;
И еще систему флагов:
//переменные для памяти static double memory_znachenie = 0.0; static int memory_status = 0; //предыдущая клавиша static int pred_klav = 0; static int flag_ravno = 0; static int put = 0;
Вот, например, как у нас будет выглядеть метод vvod():
//ввод цифр на экран private: System::Void vvod (double pr) < if (pred_klav==0) < String^ s = textBox1->Text; int dl = s->Length; if (dl<10) < String^ st = s + Convert::ToString(pr); textBox1->Text = st; mass[mem_flag] = Convert::ToDouble(textBox1->Text); textBox1->Text = Convert::ToString(mass[mem_flag]); pred_klav = 0; > > else < String^ st = Convert::ToString(pr); textBox1->Text = st; mass[mem_flag] = Convert::ToDouble(textBox1->Text); textBox1->Text = Convert::ToString(mass[mem_flag]); pred_klav = 0; > >
Здесь мы проверяем, какая клавиша в нашем калькуляторе была нажата перед этим – цифра, арифметическая операция или знак равно. Далее получаем из текстбокса значение, конвертируем предыдущее из массива, конкатенируем строки, потом обратно в double и обновляем значение массива. Также в этом методе мы проверяем длину числа – мы поставили ограничение на 10 знаков.
Обработка кнопки равно – то есть метод вычисления – также не представляет сложности. Пользуясь оператором ветвления switch перебираем все варианты.
Также реализуем собственный класс для обработки ошибок. Зачем это надо? Дело в том, что мы оперируем с числами типа double, а они не выбрасывают некоторые стандартные исключения, например – деление на ноль. Также мы предусмотрим обработку переполнения и вычисления квадратного корня из отрицательного числа. На вход конструкторов этого класса будем принимать пару чисел. Выводятся ошибки при:
- взятии корня четной степени из отрицательного числа
- логарифмировании отрицательного числа и нуля
- делении на нуль.
- переполнении (калькулятор все же не бесконечный)
MarshalString(s, s2); int pos = s2.find(«,») ; if (pos==-1)
Вот такие основные моменты надо знать для написания данной программы. Ну а если вы не можете самостоятельно написать визуальный калькулятор на C++, то обратитесь ко мне. Актуальную цену за архив с готовой программой и исходниками с подробными комментариями в настоящий моент 500 рублей. Это будет проект в Visual Studio C++ 2010 — он откроется в любой другой версии студии не ниже 2010. Также есть проект для Visual Studio 2015.
Мой калькулятор реализует все основные функции: сложение, вычитание, деление, умножение, факториал, возведение в степень, извлечение квадратного корня, вычисление 1/x, функции памяти (занести в память, вывести содержимое памяти, очистить память).
Добавились новые функции в калькуляторе. А именно:
- Извлечение корня четной и нечетной степени из числа
- Вычисление логарифма по любому основанию
- Вычисление экспоненты


Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
статьи IT, си плюс плюс, visual studio, калькулятор
Создаем калькулятор на C# и WinForms

В сегодняшней статье мы создадим простой калькулятор способный выполнять сложение, вычитание, умножение, а также деление. И все это мы реализуем на языке C# и шаблонах Windows Forms. Так что, давайте приступим.
Откройте Visual Studio или Visual C# Express Edition и создайте новый проект.
Установите его тип в приложение Windows Forms и задайте имя в приложения Калькулятор. Нажмите кнопку ОК.

Должно получиться следующее:

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

Далее во вкладке Вид находим панель элементов или ToolBox. Поместите элемент управления TextBox на форму и измените его размер. Выполните некоторые изменения в свойствах, как показано на рисунке.

Теперь мы начинаем работать с дисплеем, обычно при запуске калькулятора на нем должно отображаться число 0. В нашем случае это не так. Поэтому мы изменяем свойство Text и записываем в нем 0. Убедитесь, что вы не добавляете никаких пробелов до или после 0.
Второе, что следует отметить, это то, что число выровнено слева, в то время как калькуляторы выравнивают число справа. Найдите свойство TextAlign и измените его на Right.
Вот как будет выглядеть окно.

В окне панели инструментов перетащите кнопку на форму. Измените его свойство Name на n1. Это поможет нам определить, какой номер был нажат. Измените свойство backcolor для кнопки. После изменения цвета мы изменим текст, отображаемый кнопкой, поэтому измените свойство text на 1. Перейдите к свойству шрифта и установите для него значение шрифта Сourier new, а размер, например, 16.

Теперь мы можем повторить ту же операцию со всеми остальными девятью кнопками, или мы можем просто скопировать эту кнопку и быстро получить тот же результат. Просто удерживайте клавишу ctrl и перетащите элемент управления.
Измените названия кнопок (или вы можете оставить их как есть и пропустить эту часть). Имена по-прежнему будут n2, n3, n4, n5, n6, n7, n8, n9 и n0.Окно должно выглядеть так.

Дважды нажмите кнопку n1, чтобы перейти к ее обработчику события. Тогда n1_Click — это название этой процедуры. Он сообщает вам, что он выполняется, когда пользователь нажимает кнопку с именем n1. Запишите код, чтобы он был таким:
Вы должны повторить код для кнопок n2, n3, n4, n5, n6, n7, n8, n9 и n0, чтобы добавить числа 2,3,4,5,6,7,8,9,0 соответственно.
Теперь запустите приложение и нажмите несколько кнопок:

Таким образом, мы создали простой шаблон калькулятора с C# и Windows Forms, в который осталось добавить арифметическую логику.

![]()
Создано 25.11.2021 10:26:55
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.
Калькулятор C# Windows Forms
Доработаем этот проект по Вашим требованиям, напишите подробности нам в Телеграм


Данная программа позволит вам складывать, делить, умножать и вычитать числа. Она написана в Visual Studio 2010 на языке C#. По мимо этого в ней есть анимация «вылета» различных основных функций, таких как тангенс, синус, косинус, котангенс, модуль, возведение в степень, факториал, корень и т.д.
Ввод входных значений можно производить как с клавиатуры, так и с кнопок на форме, при этом учтены все ситуации, в которых могут возникнуть ошибки. Например: в текстовое поле нельзя ввести сразу 2 нуля или 2 точки для разделения дробной и целой части числа. Я думаю, что эта программа может кому нибудь понадобиться и поэтому я просто оставлю ее здесь.
Скриншот архива с проектом:
Фрагмент программного кода:
private void bRavno_Click(object sender, EventArgs e) // обработчик нажатия на кнопку "равно" < b = Convert.ToDouble(tb_Calc.Text); // записываем введеное число в переменную b switch (op) // в зависимости от мат. операции производим расчет < case 1: c = a + b; break; case 2: c = a - b; break; case 3: c = a * b; break; case 4: c = a / b; break; case 5: c = Math.Pow(a, b); break; >tb_Calc.Text = Convert.ToString(c); // выводим результат в текстовое поле NewOp = true; // устанавливаем флаг New operation в true op = -1; // устанавливаем текущую операцию >
Комментарии
Комментарии (0)
Здесь еще никто не оставлял свои комментарии, будь первым!
Простой калькулятор на C# для новичков
Плавно переходим к классической программе, которую просто обязан написать любой начинающий программист.
Это калькулятор. Вот если не написали свой калькулятор, то не имеете право носить почетное звание программиста =)
Сегодня расскажу как написать простой калькулятор, который выглядит примерно вот так:

В первых двух полях пользователь вводит числа, а затем выбирает одну из четырех арифметических операций:
- Сложение
- Вычитание
- Деление
- Умножение
Выбор производится через элемент ComboBox:

Калькулятор написан на C# с использованием WinForms.
Собственно, сама видео-инструкция:
Не забудьте подписаться на мой Видеоканал в Яндекс.Дзен.
Другие примеры программ для начинающих:
- Урок №1: Первая программа и создание проекта на C# в Visual Studio 2019
- Урок №2 по C#: Ввод и вывод данных в консоли
- Урок №6: Простой HTML — редактор на C# (C Sharp) за 5 минут
