калькулятор windows form c

Создание графического калькулятора

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

Сам по себе калькулятор довольно прост, но если вы совсем новичок в создании подобных приложений, тогда будет посложнее. Разработку калькулятора начнем с разработки формы (Windows Forms) приложения. Запускаем Visual Studio и создаем проект:

калькулятор windows form c

Интерфейс созданного проекта должен выглядеть так:

калькулятор windows form c

На интерфейсе мы видим: слева панель элементов для нашей формы, справа обозреватель решений и свойства выбранной формы/элемента и по середине виден сам конструктор с формой (по умолчанию он имеет имя “Form1”).

На форму нужно поместить кнопки, текстовое поле, а также надпись. Надпись нужна, чтобы пользователь видел первый операнд. Когда введет нужную цифру, нажмет кнопку, например “+”, надпись будет содержать введенное значение.

Все нужные элементы можно найти слева в панели элементов. Чтобы найти текстовое поле просто введите в поиске “textBox” и с помощью мышки перенесите его на свою форму. Для добавления кнопок просто введите в поиске “Button” и перенесите нужное количество кнопок на свою форму. Также добавьте на “ListBox” один пустой “Label”:

калькулятор windows form c

Изменять свойства формы можно с помощью окна “Свойства” справа внизу. Для этого нажмите на нужную форму, например “Button1” и поменяйте ему свойство “text” на “С”:

калькулятор windows form c

Добавьте все нужные кнопки. Измените свойство “Font” для элементов TextBox и Label. Цвет кнопок и имя программы меняйте на свое усмотрение.

калькулятор windows form c

С помощью “MultiLine” измените ширину элемента TextBox:

калькулятор windows form c

В итоге у нас получилось 19 кнопок Button, 1 TextBox и ещё 1 пустой Label:

калькулятор windows form c

Теперь посмотрим, как работает калькулятор. Мы используем четыре члена класса. Напишем их в самое начало программы:

Первые два – это наши операнды, a и b. Третий – это выбранный пользователем оператор. Четвертый – признак знака. Запрограммируем обработчик кнопки “+/-“, изменяющий знак числа. Для этого в форме нажмите на нужную кнопку два раза. Visual Studio переведет вас в нужную секцию кода:

В фигурных скобках пишем код:

Если znak=true, мы меняем знак операнда в textBox1, а если false, то знак числа удаляется из текстового поля.

Для каждой цифровой кнопки обработчик будет следующий:

На основе этого кода повесьте на цифровые кнопки от 0 до 9 обработчик событий. Нажмите на нужную цифровую кнопку и впишите код.

В данном коде мы в переменную “a” записываем значение из текстового поля, попутно преобразовав его в float посредством вызова метода float.Parse(). Далее мы очищаем текстовое поле, чтобы можно было вводить второй операнд. oper = 1 означает присвоение номера оператора (для + – это 1 и так далее по увеличению). Далее заносим в надпись информацию об операнде и операторе.

Обработчик кнопки “,” добавляет запятую в текстовое поле:

Далее нам понадобится создать функцию, которая будет применять нужные нам математические операции к числам. Назовём её calculate. Но перед этим мы кликнем дважды на кнопку “=” на форме и в коде к ней мы запишем:

При нажатии пользователем на кнопку “=” выполнится функция подсчёта calculate, и, заодно, очистится Label, так как результат мы в будущем коде выведем в TextBox.

Здесь мы используем конструкцию switch-case. Нам осталось обработать две кнопки:

Обработчик кнопки “С”. Данная кнопка будет очищать все записи из TextBox’a и Label’a. Код кнопки:

Кнопка
калькулятор windows form c

Источник

Программирование на C, C# и Java

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

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

Калькулятор Windows Forms на языке C#

Некогда мы уже создавали подобный калькулятор, но он был довольно простенький и не имел общего TextBox’a для всех чисел.

В данной статье же мы создадим более усовершенствованный калькулятор Windows Forms. Итак, выглядеть у нас он будет вот так:

калькулятор windows form c

Здесь у нас 19 кнопок Button, 1 Textbox и ещё 1 пустой Label (на рисунке он выделен). Применение его будет описано ниже.

Итак, создаём такую или похожую форму. Мы увеличили ширину TextBox’a, используя MultiLine:

калькулятор windows form c

Также в Свойствах мы увеличили размер шрифта в TextBox’e и Label’e до 12 пт.

калькулятор windows form c

Теперь делаем так, чтобы при нажатии на цифровые кнопки, в TextBox’e появлялась соответствующая цифра.

Для этого дважды кликаем на кнопке “0” и в открывшемся коде пишем:

Проверяем, несколько раз нажав на кнопку “0” у нас в форме.

калькулятор windows form c

Работает. Делаем то же самое с остальными цифровыми кнопками:

Таким же образом кликаем дважды на кнопку “.” в форме. Она будет использоваться для создания десятичной дроби. Пишем следующий код:

Кнопки нажимаются, в TextBox’e отображаются нажатые цифры. Теперь надо научить программу производить с ними какие-либо операции. Как видно из формы, наш калькулятор сможет производить стандартные математические операции: сложение, вычитание, умножение и деление. Для начала мы создадим в самом начале программы несколько переменных, которые нам для этого понадобятся:

Благодаря второй переменной мы будем давать программе указания, какую именно операцию производить с переменными, описанными выше. Здесь нам не нужна дробь, поэтому обойдёмся целочисленным типом int.

Последняя переменная znak нам понадобится для того, чтобы менять знаки у введённых чисел. Тип bool может иметь два значения – ture и false. Мы представим, что если znak имеет значение true в программе, то это означает, что у числа знак +, если false – число отрицательное и перед собой имеет знак . Изначально в калькуляторе вбиваются положительные числа, поэтому мы сразу присвоили переменной значение true.

Далее мы дважды нажимаем на кнопку “+”, обозначающую сложение, на форме и пишем следующий код:

В строке 3 мы присваиваем первой переменной a то, что будет написано в TextBox’e (а именно число, которое введёт пользователь перед тем, как нажать кнопку “+”).

Затем TextBox очищается, число, введённое пользователем, в нём пропадает (но остаётся в переменной a)

Переменной count присваивается число 1, которая потом укажет программе, что именно операцию сложения надо будет произвести с числами.

Затем в Label записывается число из переменной a (то самое, которое изначально ввёл пользователь) и знак плюса. Выглядеть в форме это будет так, как описано ниже.

Пользователь вводит какое-либо число:

калькулятор windows form c

Затем нажимает на кнопку “+” и после этого видит:

калькулятор windows form c

Кроме того, как бы не было странным с первого взгляда, мы присваиваем переменной znak значение true, хотя выше, в начале кода, мы и так присваивали это же значение. Подробнее данную переменную мы опишем ниже, но смысл в том, что мы присваиваем значение true, когда хотим сделать введённое число отрицательным, если оно положительно, а значение false, когда хотим сделать число положительным, если оно отрицательное. Изначально у нас вводятся положительные числа, сначала первое, потом второе. И если первое число мы сделаем отрицательным, то значение у znak перейдёт в false и тогда получится, что второе слагаемое как бы отрицательное (на практике, просто чтобы поставить перед ним минус, придётся нажать дважды на соответствующую кнопку, чтобы с false значение перешло в true, а затем обратно с true в false, и появился знак минуса).

Подобным образом заполняем код для кнопок “-“, “*” и “/”:

Разница лишь в значении переменной count и в том, какой знак добавляется в Label’e.

Далее нам понадобится создать функцию, которая будет применять нужные нам математические операции к числам. Назовём её calculate. Но перед этим мы кликнем дважды на кнопку “=” на форме и в коде к ней мы запишем:

То есть, при нажатии пользователем на кнопку “=”, как раз выполнится наша функция подсчёта calculate, и, заодно, очистится Label, так как результат мы в будущем коде выведем в TextBox.

Теперь-таки создаём нашу функцию calculate и пишем следующий код:

Здесь мы используем конструкцию switch-case.

Switch – это оператор управления. Он может включать в себя несколько case’ов. Case – метки, от значения которых зависит, какие операции будут происходить.

Строка switch(count) означает, что именно от значения count будет зависеть, какое действие будет происходить в коде switch’a.

Итак, если count=1 (в коде case 1:), то произойдёт следующее:

После того, как пользователь нажал “+”, он, естественно, должен ввести второе слагаемое, что он и делает по стандартному сценарию, а затем нажать кнопку “=” (и в ней, как мы помним, как раз выполнится наша функция).

Как только кнопка “=” будет нажата, программа сложит число из переменной a с тем вторым слагаемым, которое записал пользователь в TextBox, и запишет результат в переменную b (строка 6 кода функции). В строке 7 программа выведет в TextBox результат сложения – переменную b.

Оператор break (строка 8) завершает исполнение кода switch при выполнении кода метки case 1, так как больше нам в нём делать нечего.

Точно так же строится алгоритм при case 2, case 3 и case 4 с той разницей, что в них происходит не сложение, а вычитание, умножение и деление соответственно.

Оператор default срабатывает, если вдруг что-то пойдёт не по плану и count примет какое-либо иное значение, не описанное в switch. Тогда срабатывает лишь оператор break.

Львиная доля программы готова. Нам надо лишь написать код для трёх оставшихся нетронутыми до этого время кнопок.

Дважды жмём в форме на кнопку “С”. Она будет очищать все записи из TextBox’a и Label’a.

Источник

Программирование на C, C# и Java

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

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

Простенький калькулятор Windows Forms на C#

Создаем исходный код программы-калькулятора в Windows Forms на языке программирования C#.

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

Для начала нам надо расположить все нужные элементы на форме. Нам понадобятся три TextBox’a и 6 кнопок-Button. Устанавливаем их вот таким образом и переименовываем кнопки в свойствах:

калькулятор windows form c

Наш калькулятор основан на взаимодействии двух чисел, поэтому математические операции будут следующие:

Итак, после того, как с графическим оформлением закончено, приступаем к самому коду.

Для всех вышеописанных операций мы создадим отдельные функции. Функции – это, так сказать, подпрограммы в самой программе, выполняющие отдельные задачи. Они помогают сократить и облегчить код.

Вот так у нас будет выглядеть функция сложения:

Разберем этот код по частям:

Для начала мы объявляем программе, что создаем функцию (пишем public static), затем определяем тип функции(double – числовой тип повышенной точности с плавающей запятой, лучший вариант), после даём имя функции(sum) и в скобках записываем то, что, так сказать, получает функция от программы( double a и double b – первое и второе числа, которые мы запишем в первые два TextBox’a). Выражение return возвращает в функцию результат сложения a и b. То есть наша функция получает два числа от пользователя, который введет их в форме и, при помощи return’a, в неё же заносится результат вычисления.

Точно так же создаём функции остальных математических выражений:

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

Разбор кода начнём, как ни странно, с конца. Мы помним, что при объявлении функции мы писали вот такую часть кода: sum(double a, double b). То есть функция может получить только значения типа double. Также мы помним, что эти значения мы получаем от пользователя, который, в свою очередь, вводит их в первый и второй TextBox’ы. Однако проблема в том, что значения из TextBox’ов воспринимаются программой как строки, то есть типом string. Поэтому их надо конвертировать в нужный нам double, что мы и делаем: sum(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text))

Значения переведены, сумма посчитана. Осталось вывести её в TextBox3. Однако, у нас опять проблемы с типами. Наша посчитанная сумма принадлежит типу double, а TextBox принимает только string. Конвертируем sum в string и записываем её в TextBox3 как строку.
То же самое проделываем с остальными кнопками и функциями:

Источник

Программирование на C, C# и Java

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

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

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

В данном уроке мы разработаем с вами калькулятор на C#. Программа будет написана согласно принципам объектно-ориентированного программирования (ООП): будет определен интерфейс для методов, реализующих функционал клавиш математических операций калькулятора, от интерфейса выполним наследование и напишем соответствующий класс и методы. Калькулятор, помимо базовых операций сложения, вычитания, умножения и деления, будет предоставлять возможность выполнять операции: извлечения квадратного корня, извлечения корня произвольной степени, возведения в квадрат, возведения в произвольную степень, вычисления факториала, а также работу с регистром памяти (MRC).

Создание пользовательского интерфейса калькулятора

Создадим в Visual Studio проект на Visual C# Windows Forms. Добавим на форму элемент GroupBox, в который поместим Label. В свойстве Dock, элемента Label, необходимо указать Right, чтобы Label был привязан к правому краю. Связка данных элементов управления будет реализовывать дисплей калькулятора.

Калькулятор также содержит кнопки. Всего их 28 штук. Пользовательский интерфейс представлен на рисунке 1.

калькулятор windows form c

Рисунок 1. Интерфейс калькулятора

Кнопка “+/-” меняет знак операнда на противоположный.

Кнопка MRC, а также кнопки M+, M-, M×, M÷, реализуют отдельный регистр памяти калькулятора и команды для управления им. Что такое MRC можно прочитать – здесь.

Программирование калькулятора на C#

Реализация интерфейса класса

Поскольку наш калькулятор будет написан в рамках парадигмы ООП (объектно-ориентированного программирования), то начнем кодирование с описания структуры интерфейса для класса, реализующего математические операции программы.

Добавим в проект класс InterfaceCalc.cs и определим в созданном файле интерфейс InterfaceCalc.

Для выполнения математических операций понадобится два операнда: a и b (например, a + b). Операнд a придется хранить в памяти калькулятора, пока пользователь будет вводить второй аргумент операции. Для сохранения числа a объявим прототип метода void Put_A(double a), для очистки – void Clear_A(). Для умножения, деления, сложения и вычитания чисел a и b соответственно понадобятся методы: double Multiplication(double b), double Division(double b), double Sum(double b), double Subtraction(double b). Вычисление корня степени b из a: double SqrtX(double b). Возведение числа a в степень b: double DegreeY(double b). Вычисление квадратного корня: double Sqrt(). Возведение числа a в квадрат: double Square(). Вычисление факториала a!: double Factorial(). Теперь объявления методов для работы с регистром памяти (MRC) калькулятора. Показать содержимое памяти и очистить его: double MemoryShow(), void Memory_Clear(). M×, M÷, M+ и M- к регистру соответственно: void M_Multiplication(double b), void M_Division(double b), void M_Sum(double b), void M_Subtraction(double b).

Создание класса, реализующего интерфейс InterfaceCalc

Теперь добавим в калькулятор класс, который будет реализовывать написанный ранее интерфейс. Для этого в проекте создадим класс Calc : InterfaceCalc. Как вы видите, здесь используется наследование (оператор “двоеточие”). В данном классе напишем реализацию всех методов, требуемых спецификацией нашего интерфейса.

Источник

Программирование на C, C# и Java

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

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом 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 и выводим ответ на экран. В кавычках записаны слова, которые выводятся на экран, а переменные, расположившиеся среди плюсов выводят свои значения. Пример такого ответа выглядит вот так:

калькулятор windows form c

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

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

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *