Как сделать калькулятор в visual basic
Перейти к содержимому

Как сделать калькулятор в visual basic

  • автор:

visual basic калькулятор

По просьбе DenJoy» я сегодня мы будем делать калькулятор. Это наверно самое простое, что может быть в Basic» е =), т.к. там используются обычные знаки. Конечно это все легко, но я понимаю DenJoy , когда он не знает, как это делать. Я сам очень недавно был таким. Все хватит ! Приступаем к программированию. Для начала посмотрим вид калькулятора, он должен быть примерно такой:

В верхнее левое текстовое поле будут писаться цифры. В правое — выбраный знак. Ну и в низу кнопки с цифрами.

1. Два текстовых поля с именами Text1 и Text2 . У них свойство Enabled поставьте равным False , чтобы их нельзя было изменять.

2. Пятнадцать кнопок с их стандартными номерами. Но предупреждаю . У меня они

идут не попорядку, так что лучшескачайте мой калькулятор с исходниками, чтобы посмотреть какой номер у каждой кнопки!

Теперь пишем код:

» Вводим две переменные, для присвоения им значений, которые мы введем на калькуляторе
Dim a As String
Dim b As String

Private Sub Command1_Click()
» При нажа на кнопку с цифрой «1», в текстовом поле появится «1»
Text1.Text = Text1.Text & «1»
End Sub

Private Sub Command11_Click()

» После нажатия на «*», присваиваем переменной » a » число из текстового поля №1

» В маленькое текстовое поле, пишем знак «*»
Text2.Text = «*»

» Отчищаем тексотовое поле №1
Text1.Text = «»
End Sub

Private Sub Command12_Click()

» При нажатии на «=», присваиваем переменной » b » второе значение, но тоже из текстового поля №1
b = Text1.Text

» Смотрим, какой знак в текстовом поле №2 и делаем нужное действие
If Text2.Text = «*» Then
Text1.Text = a * b
End If
If
Text2.Text = «/» Then
Text1.Text = a / b
End If
If
Text2.Text = «-» Then
Text1.Text = a — b
End If
End Sub

Private Sub Command13_Click()

» Отчищаем все текстовые поля
Text1.Text = «»
Text2.Text = «»
End Sub

Private Sub Command14_Click()
» После нажатия на «-«, присваиваем переменной » a » число из текстового поля №1

a = Text1.Text
Text2.Text = «-«
Text1.Text = «»
End Sub

Private Sub Command15_Click()
» После нажатия на » / «, присваиваем переменной » a » число из текстового поля №1

a = Text1.Text
Text2.Text = «/»
Text1.Text = «»
End Sub

» Все что ниже можно откоментировать одинаково: при нажатии на кнопку с определенной цифрой, она отабражается в текстовом поле №1

Private Sub Command2_Click()
Text1.Text = Text1.Text & «5»
End Sub

Private Sub Command3_Click()
Text1.Text = Text1.Text & «4»
End Sub

Private Sub Command4_Click()
Text1.Text = Text1.Text & «3»
End Sub

Private Sub Command5_Click()
Text1.Text = Text1.Text & «2»
End Sub

Private Sub Command6_Click()
Text1.Text = Text1.Text & «6»
End Sub

Private Sub Command7_Click()
Text1.Text = Text1.Text & «0»
End Sub

Private Sub Command8_Click()
Text1.Text = Text1.Text & «9»
End Sub

Private Sub Command9_Click()
Text1.Text = Text1.Text & «8»
End Sub

Private Sub Command10_Click()
Text1.Text = Text1.Text & «7»
End Sub

Вот, в принципе, и все. Калькулятор готов к использованию. Я сделал его минут за 5-7. Так что можете поэкспериментировать, даже если у вас очень мало времени =). Еще раз настоятельно рекомендаюскачать мой калькулятор, чтобы знать какая кнопка, что обозначает.

Калькулятор

Author24 — интернет-сервис помощи студентам

Всем доброго здоровичка! Такая задачка: делаю калькулятор с vbscript, обычный код, но выдаёт ошибку. Код взял здесь на сайте. У меня win10 и vb2008 Подскажите плиз, как исправить.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Калькулятор
Мне нужен код для написания калькулятора на Visual Basic .net.

Калькулятор
У меня калькулятор совсем не работает. Если как-то можно исправить его, сделайте пожалуйста. Только.

Написать калькулятор
Пробовал создать тему тут. https://www.cyberforum.ru/vbscript-wsh/thread843135.html Но не.

Калькулятор на VisualBasic
Public Class Form1 Dim a As String Dim b As String Private Sub Button1_Click(ByVal.

4176 / 3766 / 767
Регистрация: 13.04.2015
Сообщений: 8,387

timsc1, код можете сюда скопировать?

Добавлено через 2 минуты

ЦитатаСообщение от timsc1 Посмотреть сообщение

А посвежее ничего нет?
Регистрация: 27.11.2011
Сообщений: 697

1 2 3 4 5 6 7 8
Dim sc1 As Object = CreateObject("ScriptControl") sc1.Language = "VBScript" sc1.AddObject("TextBox1", TextBox1) Try TextBox1.Text = TextBox1.Text & " = " & sc1.Eval(TextBox1.Text) Catch ex As DivideByZeroException MsgBox("Делить на 0 нельзя") End Try
1 2 3 4 5 6 7 8
Dim sc1 As Object = CreateObject("MSScriptControl.ScriptControl") sc1.Language = "VBScript" sc1.AddObject("TextBox1", t) Try o.Text = t.Text & " = " & sc1.Eval(t.Text) Catch ex As DivideByZeroException MsgBox("Делить на 0 нельзя") End Try

в обоих случаях ошибка. Даже подключил Imports MSScriptControl.

ЦитатаСообщение от I can Посмотреть сообщение

А посвежее ничего нет?

пока пользуюсь этим. Ставил 2019-й, но там проблемы с границами формы, всё время что-то съедается, окно получается узким, объекты закрыты границей. Ерунда в общем.

4386 / 3513 / 840
Регистрация: 02.02.2013
Сообщений: 3,405
Записей в блоге: 2
timsc1, взял ваш код и практически ничего не менял (в смысле те же операторы). Все работает.

1 2 3 4 5 6 7 8 9 10 11 12 13
Private sc1 As Object Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load sc1 = CreateObject("ScriptControl") sc1.Language = "VBScript" sc1.AddObject("TextBox1", TextBox1) End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Try TextBox1.Text = TextBox1.Text & " = " & sc1.Eval(TextBox1.Text) Catch ex As DivideByZeroException MsgBox("Делить на 0 нельзя") End Try End Sub

4176 / 3766 / 767
Регистрация: 13.04.2015
Сообщений: 8,387
timsc1, Вы бы хоть 2010 студию поставили, что ли.
4386 / 3513 / 840
Регистрация: 02.02.2013
Сообщений: 3,405
Записей в блоге: 2

timsc1, я бы рекомендовал использовать небольшую библиотеку (40кб) для оценивания строковых математических выражений. Это более интересно. Правда потребуется Net 4.0 (т.е. VS2010).
https://lundin.info/mathparser
https://www.nuget.org/packages. .math.dll/

Регистрация: 27.11.2011
Сообщений: 697

Это работало на винде7, почему выдавало ошибку на вин10?. Поставил VS2013 — заработало. Проблема решилась. Всем спасибо за помощь.

4386 / 3513 / 840
Регистрация: 02.02.2013
Сообщений: 3,405
Записей в блоге: 2

Лучший ответ

Сообщение было отмечено timsc1 как решение

Решение

Реализация о чем писал выше. Небольшая программка, калькулятор выражений y=f(x), с графиком и таблицей координат точек. Есть возможность копирования результатов. На мой взгляд удобно для анализа. VS2019, NET 4.0

EvaluatingExpressions.rar (55.4 Кб, 29 просмотров)

Регистрация: 27.11.2011
Сообщений: 697
ovva, Спасибо огромное! Интересная программа! Буду разбираться.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Обычный калькулятор
Ребята помогите мне создать обычный калькулятор с 1 текстбоксом. на вб 6 могу создать с помощью.

Написать калькулятор
В общем дали задание написать вот такой вот калькулятор (рис.1) Мы только начали учить VB и у.

> калькулятор
Сделал простенький калькулятор на VB.NET.А он использует 11 мб опертивки.Как уменьшить потребление?

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

Калькулятор времени
Приветствую. Сегодня у меня такой вопрос: как написать калькулятор времени. Допустим, через.

Инженерный калькулятор
Начинаем разработку калькулятора, фактически аналогического инженерному калькулятору Windows XP.

Или воспользуйтесь поиском по форуму:

Инженерный калькулятор

Author24 — интернет-сервис помощи студентам

Начинаем разработку калькулятора, фактически аналогического инженерному калькулятору Windows XP. Единственным дополнением пока будет ListBox в котором будет отображаться ход расчётов (ох как этого не хватает стандартному калькулятору). Приложу скрин и сам проект. Буду обновлять его по ходу жизни.

А теперь хотельсь бы спланировать алгоритм какой нибуть, по которому и будут идти вычисления. в виде плана. есть предложения?

Калькулятор.rar (715.0 Кб, 369 просмотров)

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Инженерный калькулятор
Привет. Подскажите как сделать переключатель форм в калькуляторе по типу Win на разные.

инженерный калькулятор
Хай, помогите сделать переводы систем счисления Bin, Oct,Dec, Hex при динамически изменяемым.

Инженерный калькулятор
Всем привет. Задумка такова: калькулятор,в форме есть ВСЕГО однин текст бокс и нужно что бы по.

Инженерный калькулятор — реализации
В общем такой вопрос, начав делать я немного поспешил и реализовал стандартные функции калькулятора.

Регистрация: 25.11.2010
Сообщений: 35
Нашел в книге пример,работают операции сложения и вычитания.Остальные можно по аналогии сделать.

Калькулятор1.rar (118.3 Кб, 160 просмотров)

Регистрация: 08.06.2010
Сообщений: 146

Хоть ты убей пишет что архив повреждён. Может лучше всё таки в rar? без сжатия и с инфой для востановления.

И я тут дал жизни кнопкам. с TextBox отлично работает, а вот ListBox. ума не приложу.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
Imports System.Math Public Class calculator Dim value As Double = 0 Dim rezult As Double = 0 Dim index As Short = 0 Dim oper As Char Private Sub calculator_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button_0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_0.Click Vvod.Text += CStr(0) End Sub Private Sub Button_1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_1.Click Vvod.Text += CStr(1) End Sub Private Sub Button_2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_2.Click Vvod.Text += CStr(2) End Sub Private Sub Button_3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_3.Click Vvod.Text += CStr(3) End Sub Private Sub Button_4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_4.Click Vvod.Text += CStr(4) End Sub Private Sub Button_5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_5.Click Vvod.Text += CStr(5) End Sub Private Sub Button_6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_6.Click Vvod.Text += CStr(6) End Sub Private Sub Button_7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_7.Click Vvod.Text += CStr(7) End Sub Private Sub Button_8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_8.Click Vvod.Text += CStr(8) End Sub Private Sub Button_9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_9.Click Vvod.Text += CStr(9) End Sub Private Sub Comma_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Comma_Button.Click Vvod.Text += "," Comma_Button.Enabled = False End Sub Private Sub Plus_Minus_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Plus_Minus_Button.Click Dim stroka As String If Microsoft.VisualBasic.Left(Vvod.Text, 1) = "-" Then Vvod.Text = Vvod.Text.Trim("-") stroka = Vuvod.Items.Item(index) stroka.Trim("-") Vuvod.Items.Add(stroka) Else Vvod.Text = "-" + Vvod.Text Vuvod.Items.Add("-") End If End Sub End Class

Вся проблема то в том что кажды Add начинает новую строку. а такого быть не должно. а иногда должно. Нужно как то это организовать.

По моей логике нужно дать пользователю вводить цифры сколько он хочет. Потом когда он нажмёт какой нибуть оператор, считать строку из TextBox, преобразовать в число, записать его куда нибуть. Ананалогично со вторым. третим. если жмёт равно, считаем. Походу нужен массив и некая index чтоб различать их по порядку

Как сделать калькулятор в visual basic

tele2

life

Лабораторная работа по Microsoft Visual Basic

Проект «Инженерный калькулятор»

1. Запустите программу Microsoft Visual Basic [Пуск — Все программы — Microsoft Visual Basic 6.0 — Microsoft Visual Basic 6.0]. Откроется окно программы:

На открывшейся диалоговой панели выбрать тип создаваемого проекта STANDART.EXE и нажать кнопку открыть. Появиться следующее окно интегрированной среды разработки Visual Basic:

  1. Поместите на форму три текстовых поля (TextBox) и пять кнопок (CommandButton). Поменять следующие свойства:
    1. Первому текстовому полю присвоить имя txt1 (в свойствах пункт Name) и убрать надпись внутри текстового поля (в свойствах очистить содержимое пункта Text). Для свойства Alignment установите значение Right Justufy (выравнивание по правому краю). Это поле отвечает за первое введённое число.
    2. Второму текстовому полю присвоить имя txt2 (в свойствах пункт Name) и убрать надпись внутри текстового поля (в свойствах очистить содержимое пункта Text). Для свойства Alignment установите значение Right Justufy (выравнивание по правому краю). Это поле отвечает за второе введённое число.
    3. Третьему текстовому полю присвоить имя txt3 (в свойствах пункт Name) и убрать надпись внутри текстового поля (в свойствах очистить содержимое пункта Text). Для свойства Alignment установите значение Right Justufy (выравнивание по правому краю). Это поле отвечает за выведенный результат.
    4. Первой кнопке присвоить имя cmdPlus (в свойствах пункт Name) и поменять надпись на кнопке (в свойствах пункт Caption ввести +). Это кнопка отвечает за сложение чисел.
    5. Второй кнопке присвоить имя cmdMinus (в свойствах пункт Name) и поменять надпись на кнопке (в свойствах пункт Caption ввести -). Это кнопка отвечает за вычитание чисел.
    6. Третьей кнопке присвоить имя cmdUmn (в свойствах пункт Name) и поменять надпись на кнопке (в свойствах пункт Caption ввести *). Это кнопка отвечает за умножение чисел.
    7. Четвертой кнопке присвоить имя cmdDelen (в свойствах пункт Name) и поменять надпись на кнопке (в свойствах пункт Caption ввести /). Это кнопка отвечает за деление чисел.
    8. Пятой кнопке присвоить имя cmdExit (в свойствах пункт Name) и поменять надпись на кнопке (в свойствах пункт Caption ввести ВЫХОД). Это кнопка отвечает за завершение работы программы.

    1. При двойном нажатии на кнопку CmdPlus открывается событийная процедура сложения CmdPlus_Сlic, которая должна изменять значение свойства Text текстового поля txt3 так, чтобы оно являлось суммой числовых значений свойства Text текстовых полей txt1 и txt2. Для преобразования строковых значений, вводимых в текстовые поля, в десятичные числа, воспользуемся функцией Val. Код событийной процедуры будет следующий:

    txt3.Text = Val (txt1.Text) + Val (txt2.Text)

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

    txt3.Text = Val (txt1.Text) — Val (txt2.Text) //для кнопки cmdMinus

    txt3.Text = Val (txt1.Text) * Val (txt2.Text) //для кнопки cmdUmn

    txt3.Text = Val (txt1.Text) / Val (txt2.Text) //для кнопки cmdDelen

    1. Обработаем событийную процедуру на выход. Нажмем два раза на кнопке ВЫХОД и наберем следующий код:

    1. Запустите свой проект и проверьте, чтобы программа работала корректно. Для этого вверху программы нажмите на кнопочку play

    Растяните открывшееся окно, потянув за нижний правый угол.

    1. Продолжаем работу. Добавьте на форму шесть кнопок cmdSin, cmdCos, cmdTan, cmdSqr, cmdSt и cmdLog. Это кнопки которые отвечают соответственно за вычисление синуса, косинуса, тангенса, квадратного корня, возведения в степень и вычисление натурального логарифма. (Кто забыл где и как меняются надписи и имена кнопок см пункт 2).

    1. Для каждой из этих кнопок создайте событийные процедуры, реализующие вычисление соответствующих функций: синуса, косинуса, тангенса, квадратного корня, возведения в степень и натурального логарифма.
    2. Например,
      1. для возведения в степень событийная процедура cmdSt_Click() примет вид:

      txt3.Text = Val(txt1.Text) ^ Val(txt2.Text)

      1. для вычисления косинуса событийная процедура cmdCos_Click() примет вид:
      1. для вычисления синуса событийная процедура cmdSin_Click() примет вид:
      1. для вычисления тангенса событийная процедура cmdTan_Click() примет вид:
      1. для вычисления квадратного корня событийная процедура cmdSqr_Click() примет вид:
      1. для вычисления логарифма событийная процедура cmdLog_Click() примет вид:
      1. Проверить работу проекта.
      2. Продолжаем работу. Добавим новые опции в наш калькулятор. Необходимо, чтобы появилась возможность переводить целые числа из десятичной системы счисления в восьмеричную и обратно – из восьмеричной и шестнадцатеричной в десятичную.

      Для этого добавим на форму три текстовых поля (txtDec, txtOct, txtHex) для ввода и вывода чисел, четыре кнопки (cmdDecOct, cmdDecHex, cmdOctDec, cmdHexDec) для создания событийных процедур, реализующих перевод чисел, и три метки (Label) для вывода поясняющих надписей над текстовыми полями. Получается следующее:

      1. Создайте событийную процедуру cmdOctDec_Click(), реализующую перевод чисел из восьмеричной системы в десятичную. Для этого к вводимым в текстовые поля txtOct и txtHex в строковой форме числам добавим восьмеричную и шестнадцатеричную приставки “&O” или “&H” с помощью операции конкатенации (соединения) строк. Полученное восьмеричное или шестнадцатеричное число в строковой форме переведем в десятичную числовую форму с помощью функции Val:

      txtDec.Text = Val («&O»+txtOct.Text)

      1. Создайте событийную процедуру cmdHexDec_Click(), реализующую перевод чисел из шестнадцатеричной системы в десятичную^

      txtDec.Text = Val(«&H» + txtHex.Text)

      1. Введенные в текстовое поле txtDec числа будем переводить сначала из строковой формы в числовую с помощью функции Val, а затем из десятичной числовой в строковую восьмеричную или шестнадцатеричную с помощью функций Oct или Hex.
      2. Создать событийную процедуру cmdDecHex_Click(), реализующую перевод чисел из десятичной системы в шестнадцатеричную:
      1. Создать событийную процедуру cmdDecOct_Click(), реализующую перевод чисел из десятичной системы в восьмеричную:
      1. Сохраните свой проект под названием «Инженерный калькулятор». Для этого выбрать [Файл – Сохранить проект как].

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

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