Ako vytvoriť kalkulačku pomocou jazyka Visual Basic

click fraud protection

Otvorte Visual Basic 6 a vyberte "Standard EXE" z ponuky nového projektu. Na obrazovke sa zobrazí prázdny formulár.

Premenujte svoj projekt a svoj formulár kliknutím na „Project1“ na pravej strane obrazovky v zozname projektov, a zadaním nového názvu do riadku "Názov" poľa Vlastnosti, ktorý by sa mal objaviť pod zoznamom projektu podľa predvolená. Stlačte "Enter" pre prijatie nového názvu. Urobte to isté pre svoj formulár (navrhovaný názov formulára je „CalculatorUI“), pričom nezabudnite zadať podobný názov aj do vlastnosti „Caption“, čím sa zmení text v hornej lište formulára. Uložte projekt do nového priečinka v počítači.

Pridajte do formulára tlačidlá a textové pole. Najprv pridajte textové pole, v ktorom sa zobrazia čísla zadané v kalkulačke, ako aj výsledky výpočtov. Urobte to tak, že vyberiete tlačidlo TextBox na paneli nástrojov na ľavej strane obrazovky a potom myšou potiahnete požadovanú veľkosť a umiestnenie textového poľa. Po umiestnení textového poľa môžete zmeniť veľkosť a umiestnenie jeho presunutím na iné miesto formulára alebo potiahnutím rukovätí (malých štvorcov) pozdĺž okraja textového poľa. Nezabudnite zmeniť nasledujúce riadky v okne Vlastnosti s vybratým textovým rámčekom: "(Name)" = tbResult, "Zarovnanie" = 1- Zarovnanie doprava, "Formát údajov" = (vyberte kliknutím na tlačidlo "...") Číslo, "Zamknuté" = Pravda a "Text" = 0.

Vyberte ikonu CommandButton na paneli s nástrojmi a vytvorte prvé tlačidlo rovnakým spôsobom, akým ste vytvorili TextBox na pridávanie tlačidiel. Na porovnanie použite kalkulačku Windows v štandardnom zobrazení (Programy > Príslušenstvo > Kalkulačka) ako základ pre rozloženie kalkulačky, pričom vynechajte tlačidlá „MC“, „MR“, „MS“ a „M+“. Na každom tlačidle zmeňte nasledujúce vlastnosti (ako príklad použite tlačidlo "+"): "(Name)" = btnPlus, "Caption" = +. Urobte to isté pre ostatné tlačidlá kalkulačky a potom uložte svoju prácu. Váš formulár by sa teraz mal podobať príkladu uvedenému tu.

Pridajte kód. Upozorňujeme, že ak vaše tlačidlá a textové pole nie sú pomenované rovnako, ako očakáva tu uvedený kód, budete ho potrebovať zmeniť názvy tak, aby zodpovedali vašim tlačidlám a textovému poľu, alebo zmeniť tlačidlá a textové pole tak, aby sa zhodovali s týmto kód. Najprv musíme vytvoriť niekoľko premenných na spracovanie vstupu kalkulačky:

Stlmiť doľava ako reťazec, sprava ako reťazec, operátor ako reťazec Stlmiť iľavý ako dvojitý, ipravý ako dvojitý, i výsledok ako dvojitý Stlmiť bľavý ako booleovský

Každý výpočet sa skladá zo štyroch častí: číslo naľavo od operátora (sLeft, iLeft), operátor (sOperator), číslo napravo od operátora (sRight, iRight) a výsledok (iResult). Aby sme mohli sledovať, či používateľ zadáva ľavé alebo pravé číslo, musíme vytvoriť booleovskú premennú bLeft. Ak je bLeft pravdivé, zadáva sa ľavá strana výpočtu; ak je bLeft nepravda, zadáva sa pravá strana.

Inicializujte premennú bLeft. Urobíme to vytvorením podprogramu Form_Load, ktorý môžete buď napísať, ako je tu uvedené, alebo ho môžete automaticky vytvoriť dvojitým kliknutím na ľubovoľnú časť formulára, ktorú nepokrýva tlačidlo alebo textové pole. Vo funkcii musíme nastaviť bLeft na True, pretože prvé zadané číslo bude ľavá časť:

Vytvorte podprogram, ktorý zvládne kliknutie na ľubovoľné z číselných tlačidiel. Vytvárame to ako podprogram, pretože používame rovnaký kód pre každé tlačidlo a používanie podprogramu znamená, že nemusíme opakovať rovnaký kód desaťkrát. Zadajte nasledovné pod riadok End Sub podprogramu Form_Load:

Ako vidíte, táto funkcia preberá parameter reťazca sNumber, ktorý bude obsahovať číslo, na ktoré používateľ klikol. Ak je bLeft pravdivé, toto číslo sa pripojí k reťazcu, ktorý predstavuje zadávané číslo, sLeft, a textové pole tbResult sa aktualizuje, aby zobrazilo nové číslo. Ak je bLeft nepravdivé, rovnaká operácia sa namiesto toho vykoná pomocou sRight.

Nakoniec vytvorte funkciu udalosti Click pre každé číslo, ktoré volá náš podprogram AddNumber. Môžete to urobiť jednoducho dvojitým kliknutím na každé číselné tlačidlo, čím sa vytvorí štruktúra podprogramu za vás. Potom pridajte volanie do AddNumber a nahraďte číslo v úvodzovkách číslom spojeným s tlačidlom. Pre tlačidlo nula bude váš kód vyzerať takto:

Podobne pre jedno tlačidlo bude váš kód vyzerať takto:

Ovládajte operátory: plus, mínus, časy a delenie. Urobíme to ako posledný krok a vytvoríme podprogram, ktorý sa volá v udalostiach kliknutia pre tlačidlá operátora. Podprogram bude vyzerať takto:

Ak má bLeft hodnotu true, čo znamená, že používateľ práve zadal ľavú časť výpočtu, tento podprogram nastaví hodnotu Premenná sOperator, ktorú sme vytvorili v kroku 5, aby sa rovnala zadanému operátoru, ktorý sa odovzdá AddOperator ako reťazec sNewOperator. Druhým krokom je nastavenie bLeft na False, pretože zadanie operátora znamená, že používateľ dokončí zadávanie ľavej strany rovnice. Aby sme mohli spracovať položky, ktoré spájajú viacero operátorov, ako napríklad 9 * 3 * 2 * 6, musíme tiež skontrolujte, či je bLeft nepravdivé, čo znamená, že používateľ zadal operátor tam, kde sme očakávali rovná sa. Najprv zavoláme udalosť Click pre tlačidlo rovná sa (popísané v ďalšom kroku), ktoré vykoná výpočet a nastaví tbResult na výsledok už zadaného. Potom vymažeme sRight, aby používateľ mohol zadať ďalšie číslo, a nastavíme bLeft na False, aby program vedel, že ďalej vstupujeme na pravú stranu výpočtu.

Nakoniec pridajte volanie AddOperator k udalosti Click každého tlačidla operátora pomocou rovnakej metódy, akú sme použili v kroku 7 na vytvorenie udalostí Click pre číselné tlačidlá. Váš kód pre tlačidlo plus bude vyzerať takto:

Vytvorte udalosť Click pre tlačidlo rovná sa, čo je najzložitejší kód v tomto programe. Vytvorte štruktúru podprogramu, ako ste to urobili pre ostatné tlačidlá, dvojitým kliknutím na tlačidlo rovná sa vo formulári. Po zadaní kódu bude váš podprogram vyzerať takto:

Prvé tri riadky kódu skontrolujte, či boli obe strany výpočtu zadané spolu s operátorom. Ak je zadaná iba ľavá strana a operátor, hodnota ľavej strany sa skopíruje doprava, takže môžeme napodobniť štandardné správanie kalkulačky pri manipulácii so záznamom ako 9 * =, ktorý sa vynásobí 9 a získa sa výsledok 81. Zvyšok kódu sa spustí iba vtedy, ak je zadaný ľavý, pravý a operátor, a začína kopírovaním reťazce čísel do našich premenných s dvojitým typom iLeft a iRight, ktoré môžu robiť skutočné výpočty. Príkaz Select Case nám umožňuje spustiť odlišný kód v závislosti od toho, ktorý operátor bol zadaný, a vykoná skutočný výpočet, pričom výsledok umiestni do iResult. Nakoniec aktualizujeme textové pole s výsledkom, skopírujeme výsledok do sLeft, resetujeme sRight a nastavíme bLeft = True. Tieto posledné riadky nám umožňujú vziať výsledok výpočtu a použiť ho na vykonanie ďalšieho výpočtu.

Ovládajte posledné tri ovládacie tlačidlá: sqrt, %, a 1/x. Pre udalosť Click tlačidla druhej odmocniny bude váš kód vyzerať takto:

Prvých 11 riadkov kódu zabezpečuje, že ak nemáme zadanú hodnotu pre žiadnu stranu rovnice, dosadíme nulu namiesto toho, aby sme sa pokúsili skopírovať prázdny reťazec do iLeft alebo iRight, čím sa vygeneruje chyba. Stredné čiary vykonávajú funkciu druhej odmocniny v aktuálnej časti výpočtu, buď vľavo alebo vpravo. Nakoniec obrátime kontroly, ktoré sme vykonali na začiatku, takže nula sa skopíruje ako prázdny reťazec späť do sLeft a sRight.

Pre tlačidlo percent je kód podobný, s jednou výnimkou: operáciu s percentami je možné vykonať iba vtedy, ak sú zadané ľavá aj pravá strana.

Nakoniec udalosť kliknutia 1/x alebo zlomok, ktorá je veľmi podobná vyššie uvedenému kódu:

Pridajte kód na ovládanie tlačidiel C a CE. C vymaže všetky vstupy do kalkulačky, zatiaľ čo CE vymaže iba aktuálne zadané číslo.

Spustite program kalkulačky a vykonajte ľubovoľný výpočet. Túto kalkulačku je možné jednoducho rozšíriť, aby zvládla viac operácií, zložitejšie výpočty alebo dokonca mohla byť vedeckou kalkulačkou s trochou práce navyše.

Tip

Ak narazíte na chyby, skontrolujte svoj kód riadok po riadku so zameraním na riadky, ktoré VB označil za obsahujúce chyby, a porovnajte ho s kódom uvedeným vyššie. Kód obsiahnutý v tomto článku bol úplne otestovaný, aby bol bezchybný, takže jeho verným skopírovaním bude funkčný program. Ak používate predchádzajúcu verziu jazyka Visual Basic, môžete sa stretnúť s niektorými problémami, pri ktorých boli v rôznych verziách vykonané zmeny v jazyku. Predchádzajúce verzie VB napríklad používali Math. Sqrt() namiesto Math. Sqr() na vykonanie operácie druhej odmocniny. Skontrolujte referencie pre vašu konkrétnu verziu a zistite, či sú potrebné nejaké zmeny.