Як створити калькулятор за допомогою Visual Basic

Відкрийте Visual Basic 6 і виберіть «Стандартний EXE» у новому меню проекту. На екрані з’явиться порожня форма.

Перейменуйте свій проект і форму, натиснувши «Проект1» у правій частині екрана, у списку проектів, і введіть нове ім’я в рядок «Ім’я» поля «Властивості», яке має з’явитися під списком проекту за за замовчуванням. Натисніть «Enter», щоб прийняти нове ім'я. Зробіть те ж саме для своєї форми (пропоноване ім’я форми — «CalculatorUI»), переконавшись, що введіть подібне ім’я у властивості «Caption», що змінить текст у верхній панелі форми. Збережіть проект у новій папці на вашому комп’ютері.

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

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

Додайте код. Зауважте, що якщо ваші кнопки та текстове поле мають не такі назви, як очікується в наведеному тут коді, вам знадобиться щоб змінити назви, щоб вони відповідали вашим кнопкам і текстовому полі, або змінити свої кнопки та текстове поле, щоб вони відповідали цьому код. Спочатку нам потрібно створити кілька змінних для обробки введених даних калькулятора:

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, то вводиться правий бік.

Ініціалізуйте змінну bLeft. Ми робимо це, створюючи підпрограму Form_Load, яку ви можете ввести, як зазначено тут, або автоматично створити, двічі клацнувши будь-яку частину форми, не покриту кнопкою або текстовим полем. Усередині функції нам потрібно встановити bLeft на True, тому що першим введеним числом буде ліва частина:

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

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

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

Аналогічно, для однієї кнопки ваш код матиме такий вигляд:

Обробіть оператори: плюс, мінус, час і ділення. Ми зробимо це, як і останній крок, створивши підпрограму, яка викликається в подіях Click для кнопок оператора. Підпрограма буде виглядати так:

Якщо bLeft має значення true, тобто користувач щойно ввів ліву частину обчислення, ця підпрограма встановлює sOperator змінна, яку ми створили на кроці 5, щоб дорівнювати введеному оператору, який передається AddOperator як рядок sNewOperator. Другим кроком є ​​встановлення для bLeft значення False, оскільки введення оператора означає, що користувач закінчив введення лівої частини рівняння. Щоб обробляти записи, які об’єднують декілька операторів, наприклад 9 * 3 * 2 * 6, нам потрібно також перевірте, чи є bLeft false, тобто користувач ввів оператор там, де ми очікували дорівнює. Спочатку ми викликаємо подію Click для кнопки дорівнює (описано на наступному кроці), яка виконує обчислення та встановлює tbResult на результат того, що вже було введено. Потім ми очищаємо sRight, щоб користувач міг ввести наступне число, і встановлюємо для bLeft значення False, щоб програма знала, що ми вводимо праву частину обчислення.

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

Створіть подію Click для кнопки дорівнює, що є найскладнішим кодом у цій програмі. Створіть структуру підпрограми, як і для інших кнопок, двічі клацнувши кнопку дорівнює у формі. Ваша підпрограма матиме такий вигляд, коли ви введете код:

Перші три рядки коду перевіряють, чи введено обидві сторони обчислення разом з оператором. Якщо введено лише ліву частину та оператор, значення лівої сторони копіюється вправо, тому ми можемо імітувати стандартна поведінка калькулятора для обробки запису, наприклад 9 * =, який множить 9 сам на себе, щоб отримати результат 81. Решта коду буде виконуватися, лише якщо введено лівий, правий та оператор, і починається з копіювання рядки чисел у наші подвійні змінні iLeft та iRight, які можуть виконувати фактичні розрахунки. Оператор Select Case дозволяє нам запускати різний код залежно від того, який оператор було введено, і виконує фактичне обчислення, поміщаючи результат в iResult. Нарешті, ми оновлюємо текстове поле результатом, копіюємо результат у sLeft, скидаємо sRight і встановлюємо bLeft = True. Ці останні рядки дозволяють нам взяти результат обчислення та використати його для виконання іншого обчислення.

Обробляйте останні три кнопки операції: sqrt, % і 1/x. Для події Click кнопки квадратного кореня ваш код матиме такий вигляд:

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

Для кнопки відсотка код подібний, за одним винятком: операцію відсотка можна виконати, лише якщо введено ліву та праву сторони.

Нарешті, подія Click 1/x або дробу, яка дуже схожа на код вище:

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

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

Порада

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