1. камеры
  2. Аудио & Электроника автомобиля
  3. Главная Аудио
  4. Личная Аудио
  5. телевизоры
  6. Умный дом
  >> Россия Электронный Технологии >  >> Умный дом >> Умная жизнь

Как сделать калькулятор с помощью Visual Basic

Microsoft Visual Basic — это язык программирования, основанный на языке BASIC, изначально разработанный для облегчения изучения программирования. Visual Basic берет знакомые команды BASIC и добавляет объектно-ориентированные инструменты и интерфейсы для разработки WYSIWYG-подобных приложений Windows и веб-элементов управления, а также многие другие усовершенствования. Одним из относительно простых учебных проектов по Visual Basic является создание калькулятора для Windows.

Шаг 1

Откройте Visual Basic 6 и выберите «Стандартный EXE» в меню нового проекта. На экране появится пустая форма.

Шаг 2

Переименуйте свой проект и форму, щелкнув «Проект1» в правой части экрана в списке проектов и введя новое имя в строку «Имя» окна «Свойства», которое должно появиться под списком проектов. дефолт. Нажмите «Ввод», чтобы принять новое имя. Сделайте то же самое для своей формы (предлагаемое имя формы — «CalculatorUI»), обязательно введя аналогичное имя в свойство «Заголовок», что изменит текст в верхней панели формы. Сохраните проект в новой папке на вашем компьютере.

Шаг 3

Добавьте в форму кнопки и текстовое поле. Для начала добавьте текстовое поле, в котором будут отображаться введенные в калькулятор числа, а также результаты расчетов. Сделайте это, выбрав кнопку TextBox на панели инструментов в левой части экрана, а затем перетащив мышью нужный размер и местоположение для TextBox. После размещения текстового поля вы можете изменить его размер и местоположение, перетащив его в другое место формы или перетащив маркеры (маленькие квадраты) вдоль границы текстового поля. Обязательно измените следующие строки в окне «Свойства» с выбранным текстовым полем:«(Имя)» =tbResult, «Выравнивание» =1- Выровнять по правому краю, «Формат данных» =(нажмите кнопку «...», чтобы select) Число, "Заблокировано" =True и "Текст" =0.

Шаг 4

Выберите значок CommandButton на панели инструментов и создайте первую кнопку так же, как вы создали TextBox для добавления кнопок. Для справки:используйте калькулятор Windows в стандартном представлении («Программы»> «Стандартные»> «Калькулятор») в качестве основы для макета калькулятора, исключая кнопки «MC», «MR», «MS» и «M+». На каждой кнопке измените следующие свойства (на примере кнопки «+»):«(Name)» =btnPlus, «Caption» =+. Сделайте то же самое для остальных кнопок калькулятора, а затем сохраните свою работу. Теперь ваша форма должна напоминать пример, показанный здесь.

Шаг 5

Добавьте код. Обратите внимание, что если ваши кнопки и текстовое поле названы не так, как ожидает приведенный здесь код, вам нужно будет изменить имена, чтобы они соответствовали вашим кнопкам и текстовому полю, или изменить ваши кнопки и текстовое поле, чтобы они соответствовали этому коду. Сначала нам нужно создать несколько переменных для обработки ввода калькулятора:

Dim sLeft As String, sRight As String, sOperator As String Dim iLeft As Double, iRight As Double, iResult As Double Dim bLeft As Boolean

Каждое вычисление состоит из четырех частей:число слева от оператора (sLeft, iLeft), оператор (sOperator), число справа от оператора (sRight, iRight) и результат (iResult). Чтобы отслеживать, вводит ли пользователь левое или правое число, нам нужно создать логическую переменную bLeft. Если bLeft равно true, вводится левая часть вычисления; если bLeft равно false, вводится правая сторона.

Шаг 6

Инициализируйте переменную bLeft. Мы делаем это, создавая подпрограмму Form_Load, которую вы можете либо ввести, как указано здесь, либо автоматически создать, дважды щелкнув любую часть формы, не закрытую кнопкой или текстовым полем. Внутри функции нам нужно установить для bLeft значение True, потому что первое введенное число будет левой частью:

Частная подпрограмма Form_Load() bLeft =True End Sub

Шаг 7

Создайте подпрограмму, которая будет обрабатывать нажатие любой из цифровых кнопок. Мы создаем это как подпрограмму, потому что мы используем одинаковый код для каждой кнопки, а использование подпрограммы означает, что не нужно повторять один и тот же код десять раз. Введите следующее под строкой End Sub подпрограммы Form_Load:

Private Sub AddNumber(sNumber As String) If bLeft Then sLeft =sLeft + sNumber tbResult.Text =sLeft Else sRight =sRight + sNumber tbResult.Text =sRight End If End Sub

Как видите, эта функция принимает строковый параметр sNumber, который будет содержать число, на которое щелкнул пользователь. Если bLeft имеет значение true, это число добавляется к строке, представляющей введенное число, sLeft, а текстовое поле tbResult обновляется для отображения нового числа. Если bLeft равно false, то та же операция выполняется с использованием sRight.

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

Приватная подписка btn0_Click() AddNumber ("0") End Sub

Аналогично, для одной кнопки ваш код будет выглядеть так:

Приватная подписка btn1_Click() AddNumber ("1") End Sub

Шаг 8

Обработайте операторы:плюс, минус, время и деление. Мы сделаем это так же, как и в предыдущем шаге, создав подпрограмму, которая вызывается в событиях Click для кнопок оператора. Подпрограмма будет выглядеть следующим образом:

Private Sub AddOperator(sNewOperator As String) If bLeft Then sOperator =sNewOperator bLeft =False Else btnEquals_Click sOperator =sNewOperator sRight ="" bLeft =False End If End Sub

Если bLeft имеет значение true, что означает, что пользователь только что ввел левую часть вычисления, эта подпрограмма устанавливает переменную sOperator, которую мы создали на шаге 5, равной введенному оператору, который передается в AddOperator как строка sNewOperator. Второй шаг — установить для bLeft значение False, потому что ввод оператора означает, что пользователь закончил ввод левой части уравнения. Чтобы обрабатывать записи, которые объединяют несколько операторов, например 9 * 3 * 2 * 6, нам также нужно проверить, является ли значение bLeft ложным, то есть пользователь ввел оператор вместо ожидаемого равенства. Сначала мы вызываем событие Click для кнопки равенства (описано в следующем шаге), которое выполняет расчет и устанавливает tbResult в результат того, что уже было введено. Затем мы очищаем sRight, чтобы пользователь мог ввести следующее число, и устанавливаем для bLeft значение False, чтобы программа знала, что следующим шагом мы вводим правую часть вычисления.

Наконец, добавьте вызов AddOperator к событию Click каждой кнопки оператора, используя тот же метод, который мы использовали на шаге 7 для создания событий Click для цифровых кнопок. Ваш код кнопки плюса будет выглядеть так:

Private Sub btnPlus_Click() AddOperator ("+") End Sub

Точно так же код кнопки «минус» будет выглядеть так:

Private Sub btnMinus_Click() AddOperator ("-") End Sub

Шаг 9

Создайте событие Click для кнопки равенства, которая является самым сложным кодом в этой программе. Создайте структуру подпрограммы так же, как и для других кнопок, дважды щелкнув кнопку равенства в форме. Ваша подпрограмма будет выглядеть так, когда вы введете код:

Private Sub btnEquals_Click() If sLeft <> "" And sRight ="" And sOperator <> "" Then sRight =sLeft End If

If sLeft &amp;lt;&amp;gt; "" And sRight &amp;lt;&amp;gt; "" And sOperator &amp;lt;&amp;gt; "" Then
 iLeft = sLeft
 iRight = sRight

 Select Case sOperator
 Case "+"
 iResult = iLeft + iRight
 Case "-"
 iResult = iLeft - iRight
 Case "/"
 iResult = iLeft / iRight
 Case "*"
 iResult = iLeft * iRight
 End Select

 tbResult.Text = iResult

 sLeft = iResult
 sRight = ""
 bLeft = True
End If

Конец подписки

Первые три строки кода проверяют, были ли введены обе стороны вычисления вместе с оператором. Если введены только левая часть и оператор, значение левой части копируется вправо, поэтому мы можем имитировать стандартное поведение калькулятора для обработки ввода, такого как 9 * =, которое умножает 9 само на себя, чтобы получить результат 81. Остальная часть кода будет выполняться только в том случае, если введены левое, правое и оператор, и начинается с копирования строк чисел в наши переменные iLeft и iRight с двойным типом, которые могут выполнять фактические вычисления. Оператор Select Case позволяет нам запускать другой код в зависимости от того, какой оператор был введен, и выполняет фактические вычисления, помещая результат в iResult. Наконец, мы обновляем текстовое поле с результатом, копируем результат в sLeft, сбрасываем sRight и устанавливаем bLeft =True. Эти последние строки позволяют нам взять результат вычисления и использовать его для выполнения другого вычисления.

Шаг 10

Обработайте последние три кнопки операций:sqrt, % и 1/x. Для события Click кнопки квадратного корня ваш код будет выглядеть следующим образом:

Private Sub btnSqrt_Click() If sLeft <> "" Then iLeft =sLeft Else iLeft =0 End If

If sRight &amp;lt;&amp;gt; "" Then
 iRight = sRight
Else
 iRight = 0
End If

If bLeft Then
 iLeft = Math.Sqr(iLeft)
 tbResult.Text = iLeft
Else
 iRight = Math.Sqr(iLeft)
 tbResult.Text = iRight
End If

If iLeft &amp;lt;&amp;gt; 0 Then
 sLeft = iLeft
Else
 sLeft = ""
End If

If iRight &amp;lt;&amp;gt; 0 Then
 sRight = iRight
Else
 sRight = ""
End If

Конец подписки

Первые 11 строк кода гарантируют, что если мы не ввели значение ни для одной из сторон уравнения, мы подставим ноль вместо того, чтобы пытаться скопировать пустую строку в iLeft или iRight, что вызовет ошибку. Средние линии выполняют функцию извлечения квадратного корня из текущей части вычисления, либо слева, либо справа. Наконец, мы обращаем проверки, которые мы сделали в начале, чтобы ноль копировался как пустая строка обратно в sLeft и sRight.

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

Private Sub btnPercent_Click() Если не bLeft, то If sRight <> "" Then iRight =sRight Else iRight =0 End If

iRight = iRight * (iLeft / 100)
 tbResult.Text = iRight

 If iRight &amp;lt;&amp;gt; 0 Then
 sRight = iRight
 Else
 sRight = ""
 End If
End If

Конец подписки

Наконец, событие Click 1/x, или дробь, очень похоже на приведенный выше код:

Private Sub btnFraction_Click() If sLeft <> "" Then iLeft =sLeft Else iLeft =0 End If

If sRight &amp;lt;&amp;gt; "" Then
 iRight = sRight
Else
 iRight = 0
End If

If bLeft Then
 iLeft = 1 / iLeft
 tbResult.Text = iLeft
Else
 iRight = 1 / iRight
 tbResult.Text = iRight
End If

If iLeft &amp;lt;&amp;gt; 0 Then
 sLeft = iLeft
Else
 sLeft = ""
End If

If iRight &amp;lt;&amp;gt; 0 Then
 sRight = iRight
Else
 sRight = ""
End If

Конец подписки

Шаг 11

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

Private Sub btnC_Click() sLeft ="" sRight ="" sOperator ="" tbResult.Text ="0" bLeft =True End Sub

Private Sub btnCE_Click() If bLeft Then sLeft ="" Else sRight ="" End If tbResult.Text ="0" End Sub

Шаг 12

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

Совет

Если вы столкнулись с ошибками, проверьте свой код построчно, сосредоточив внимание на строках, которые VB назвал содержащими ошибки, и сравните их с приведенным выше кодом. Код, содержащийся в этой статье, был полностью протестирован на отсутствие ошибок, поэтому его точное копирование приведет к созданию функциональной программы. Если вы используете предыдущую версию Visual Basic, вы можете столкнуться с некоторыми проблемами, связанными с изменениями языка в разных версиях. Предыдущие версии VB, например, использовали Math.Sqrt() вместо Math.Sqr() для выполнения операции извлечения квадратного корня. Проверьте справочные материалы для вашей конкретной версии, чтобы узнать, нужны ли какие-либо изменения.


  1. Как сделать метлу С метлой кукурузы
  2. Могу ли я сделать Android приложений с Visual Basic
  3. Могу ли я сделать Android приложений с Visual Basic
  4. Как создать онлайн-регистрационную форму
  5. Как сделать флаер с помощью Gimp