Как да направите калкулатор с Visual Basic

Отворете Visual Basic 6 и изберете "Standard EXE" от новото меню на проекта. На екрана ще видите празен формуляр.

Преименувайте своя проект и формуляра си, като щракнете върху „Проект1“ от дясната страна на екрана, в списъка с проекти, и въвеждане на ново име в реда "Име" на полето Properties, което трябва да се появи под списъка на проекта от по подразбиране. Натиснете "Enter", за да приемете новото име. Направете същото за вашия формуляр (предложено име на формуляр е „CalculatorUI“), като не забравяйте да въведете подобно име и в свойството „Caption“, което ще промени текста в горната лента на формуляра. Запазете проекта в нова папка на вашия компютър.

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

Изберете иконата CommandButton в лентата с инструменти и създайте първия бутон по същия начин, по който сте създали TextBox за добавяне на бутони. За справка използвайте калкулатора на Windows в стандартен изглед (Програми > Аксесоари > Калкулатор) като основа за оформлението на вашия калкулатор, като пропускате бутоните "MC", "MR", "MS" и "M+". На всеки бутон променете следните свойства (използвайки бутона "+" като пример): "(Име)" = btnPlus, "Надпис" = +. Направете същото за останалите бутони на калкулатора и след това запазете работата си. Вашият формуляр вече трябва да прилича на примера, показан тук.

Добавете кода. Имайте предвид, че ако вашите бутони и текстово поле не са наименувани по същия начин, както очаква кодът, изброен тук, ще ви трябва за да промените имената, за да съответстват на вашите бутони и текстово поле, или да промените вашите бутони и текстово поле, за да съответстват на това код. Първо трябва да създадем няколко променливи за обработка на входа на калкулатора:

Dim sLeft като низ, sRight като низ, sOperator като низ Dim iLeft като двойно, iRight като двойно, iResult като двойно Dim bLeft като булев

Всяко изчисление се състои от четири части: число вляво от оператора (sLeft, iLeft), оператор (sOperator), число вдясно от оператора (sRight, iRight) и резултат (iResult). За да проследим дали потребителят въвежда лявото или дясното число, трябва да създадем булева променлива, bLeft. Ако bLeft е вярно, се въвежда лявата страна на изчислението; ако bLeft е false, се въвежда дясната страна.

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

Създайте подпрограма, която ще обработва щракането на някой от бутоните с цифри. Създаваме това като подпрограма, защото използваме идентичен код за всеки бутон, а използването на подпрограма означава, че не се налага да повтаряте един и същ код десет пъти. Въведете следното под крайния подред на подпрограмата Form_Load:

Както можете да видите, тази функция приема параметър на низ, sNumber, който ще съдържа номера, върху който потребителят е щракнал. Ако bLeft е вярно, това число се добавя към низа, който представлява въвежданото число, sLeft, а текстовото поле, tbResult, се актуализира, за да покаже новото число. Ако bLeft е false, същата операция се извършва с помощта на sRight вместо това.

Накрая създайте функция за събитие Click за всяко число, което извиква нашата подпрограма AddNumber. Можете да направите това лесно, като щракнете двукратно върху всеки цифров бутон, което ще създаде структурата на подпрограмата за вас. След това добавете повикването към AddNumber, като замените числото в кавички с номера, свързан с бутона. За бутона нула вашият код ще изглежда така:

По същия начин, за един бутон вашият код ще изглежда така:

Работете с операторите: плюс, минус, времена и деление. Ще направим това като последната стъпка, създавайки подпрограма, която се извиква в събитията на щракване за бутоните на оператора. Подпрограмата ще изглежда по следния начин:

Ако bLeft е вярно, което означава, че потребителят току-що е въвел лявата част на изчислението, тази подпрограма задава 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 и sRight.

За бутона процент кодът е подобен, с едно изключение: операцията процент може да се извърши само ако са въведени и лявата и дясната страна.

И накрая, събитието 1/x, или фракция, Click, което е много подобно на кода по-горе:

Добавете код за работа с бутоните C и CE. C изчиства всички въведени в калкулатора, докато CE изчиства само числото, което се въвежда в момента.

Стартирайте програмата си за калкулатор и направете каквото желаете. Този калкулатор може лесно да бъде разширен, за да обработва повече операции, по-сложни изчисления или дори да бъде научен калкулатор с малко допълнителна работа.

Бакшиш

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