Kako narediti kalkulator z Visual Basic

Odprite Visual Basic 6 in v meniju novega projekta izberite "Standard EXE". Na zaslonu se bo prikazal prazen obrazec.

Preimenujte svoj projekt in obrazec s klikom na "Projekt1" na desni strani zaslona, ​​v seznamu projektov, in vnesete novo ime v vrstico »Ime« v polju Lastnosti, ki se mora pojaviti pod seznamom projekta do privzeto. Pritisnite "Enter", da sprejmete novo ime. Enako storite za svoj obrazec (predlagano ime obrazca je "CalculatorUI"), pri čemer pazite, da vnesete podobno ime tudi v lastnost "Caption", kar bo spremenilo besedilo v zgornji vrstici obrazca. Projekt shranite v novo mapo na vašem računalniku.

V obrazec dodajte gumbe in polje z besedilom. Najprej dodajte besedilno polje, kjer bodo prikazane številke, vnesene v kalkulator, in rezultati izračunov. To storite tako, da v orodni vrstici na levi strani zaslona izberete gumb TextBox in nato z miško povlečete želeno velikost in lokacijo za TextBox. Ko postavite polje za besedilo, lahko spremenite velikost in lokacijo tako, da ga povlečete na drugo mesto obrazca ali povlečete ročice (majhne kvadratke) vzdolž meje polja za besedilo. Ne pozabite spremeniti naslednjih vrstic v oknu Lastnosti z izbranim TextBox: "(Ime)" = tbResult, "Poravnava" = 1- Desna poravnava, "Oblika podatkov" = (kliknite gumb "..." za izbiro) Številka, "Zaklenjeno" = Res in "Besedilo" = 0.

Izberite ikono CommandButton v orodni vrstici in ustvarite prvi gumb na enak način, kot ste ustvarili TextBox za dodajanje gumbov. Za referenco uporabite kalkulator Windows v standardnem pogledu (Programi > Dodatki > Kalkulator) kot osnovo za postavitev kalkulatorja, pri čemer izpustite gumbe »MC«, »MR«, »MS« in »M+«. Na vsakem gumbu spremenite naslednje lastnosti (z uporabo gumba "+" kot primer): "(Ime)" = btnPlus, "Napis" = +. Enako storite za preostale gumbe kalkulatorja in nato shranite svoje delo. Vaš obrazec bi moral zdaj biti podoben primeru, prikazanemu tukaj.

Dodajte kodo. Upoštevajte, da boste potrebovali, če vaši gumbi in polje z besedilom niso poimenovani enako, kot pričakuje tukaj navedena koda da spremenite imena, da se ujemajo z vašimi gumbi in besedilnim poljem, ali spremenite svoje gumbe in polje z besedilom, da se ujemajo s tem Koda. Najprej moramo ustvariti nekaj spremenljivk za obdelavo vnosa kalkulatorja:

Dim levo kot niz, desno kot niz, operator kot niz Dim iLeft kot dvojno, iRight kot dvojno, iResult kot dvojno Dim bLeft kot logično

Vsak izračun je sestavljen iz štirih delov: števila levo od operatorja (sLeft, iLeft), operatorja (sOperator), števila desno od operatorja (sRight, iRight) in rezultata (iResult). Za sledenje, ali uporabnik vnaša levo ali desno številko, moramo ustvariti logično spremenljivko bLeft. Če je bLeft res, se vnese leva stran izračuna; če je bLeft napačno, se vnese desna stran.

Inicializirajte spremenljivko bLeft. To naredimo tako, da ustvarimo podprogram Form_Load, ki ga lahko vnesete, kot je navedeno tukaj, ali samodejno ustvarite tako, da dvokliknete kateri koli del obrazca, ki ni zajet z gumbom ali poljem z besedilom. Znotraj funkcije moramo bLeft nastaviti na True, ker bo prva vnesena številka levi del:

Ustvarite podprogram, ki bo upravljal klikanje katerega koli od številskih gumbov. To ustvarimo kot podprogram, ker uporabljamo identično kodo za vsak gumb, uporaba podprograma pa pomeni, da ni treba desetkrat ponoviti iste kode. Pod vrstico End Sub podprograma Form_Load vnesite naslednje:

Kot lahko vidite, ta funkcija vzame parameter niza sNumber, ki bo vseboval številko, na katero je uporabnik kliknil. Če je bLeft res, se ta številka doda nizu, ki predstavlja številko, ki jo vnesete, sLeft, in besedilno polje tbResult se posodobi tako, da prikaže novo številko. Če je bLeft napačno, se ista operacija izvede z uporabo sRight.

Končno ustvarite funkcijo dogodka Click za vsako številko, ki pokliče naš podprogram AddNumber. To lahko enostavno storite tako, da dvokliknete vsak številčni gumb, ki vam bo ustvaril strukturo podprogramov. Nato dodajte klic v AddNumber in zamenjajte številko v narekovajih s številko, povezano z gumbom. Za gumb nič bo vaša koda videti tako:

Podobno bo za en gumb vaša koda videti takole:

Upravljajte z operaterji: plus, minus, časi in deli. To bomo naredili kot zadnji korak in ustvarili podprogram, ki se kliče v dogodkih Click za gumbe operaterja. Podprogram bo videti takole:

Če je bLeft res, kar pomeni, da je uporabnik pravkar vnesel levi del izračuna, ta podprogram nastavi Spremenljivka sOperator, ki smo jo ustvarili v 5. koraku, da je enaka vnesenemu operaterju, ki se posreduje AddOperatorju kot niz sNewOperator. Drugi korak je, da nastavite bLeft na False, ker vnos operatorja pomeni, da je uporabnik končal z vnosom leve strani enačbe. Za obdelavo vnosov, ki nizajo več operatorjev skupaj, kot je 9 * 3 * 2 * 6, moramo preverite tudi, ali je bLeft napačen, kar pomeni, da je uporabnik vnesel operator, kjer smo pričakovali enaka. Najprej pokličemo dogodek Click for the equals (opisan v naslednjem koraku), ki opravi izračun in nastavi tbResult na rezultat že vnesenega. Nato počistimo sRight, da lahko uporabnik vnese naslednjo številko, in nastavimo bLeft na False, da program ve, da naslednjič vnašamo desno stran izračuna.

Končno dodajte klic AddOperator dogodku Click vsakega operaterskega gumba z uporabo iste metode, kot smo jo uporabili v 7. koraku za ustvarjanje dogodkov Click za številske gumbe. Vaša koda za gumb plus bo videti tako:

Ustvarite dogodek Click za gumb enako, ki je najbolj zapletena koda v tem programu. Ustvarite strukturo podprogramov, kot ste naredili za druge gumbe, tako da dvokliknete gumb za enako na obrazcu. Ko vnesete kodo, bo vaš podprogram izgledal takole:

Prve tri vrstice kode preverijo, ali sta bili obe strani izračuna vneseni skupaj z operaterjem. Če sta vnesena le leva stran in operator, se vrednost leve strani kopira na desno, tako da lahko posnemamo standardno obnašanje kalkulatorja za obdelavo vnosa, kot je 9 * =, ki pomnoži 9 sam po sebi, da dobi rezultat 81. Preostali del kode se bo izvajal le, če so vneseni levi, desni in operator ter se začne s kopiranjem nize številk v naše dvojno tipizirane spremenljivke iLeft in iRight, ki lahko naredijo dejansko izračuni. Stavek Select Case nam omogoča, da zaženemo različno kodo, odvisno od tega, kateri operater je bil vnesen, in izvede dejanski izračun, pri čemer rezultat postavi v iResult. Na koncu posodobimo besedilno polje z rezultatom, kopiramo rezultat v sLeft, ponastavimo sRight in nastavimo bLeft = True. Te zadnje vrstice nam omogočajo, da vzamemo rezultat izračuna in ga uporabimo za izvedbo drugega izračuna.

Upravljajte z zadnjimi tremi operacijskimi gumbi: sqrt, % in 1/x. Za dogodek Click gumba kvadratnega korena bo vaša koda videti tako:

Prvih 11 vrstic kode zagotavlja, da če nimamo vnesene vrednosti za nobeno stran enačbe, nadomestimo nič, namesto da bi poskušali kopirati prazen niz v iLeft ali iRight, kar bo ustvarilo napaka. Srednje črte izvajajo funkcijo kvadratnega korena na trenutnem delu izračuna, levo ali desno. Na koncu obrnemo preverjanja, ki smo jih naredili na začetku, tako da se ničla kot prazen niz kopira nazaj v sLeft in sRight.

Za gumb za odstotek je koda podobna, z eno izjemo: operacijo v odstotkih je mogoče izvesti le, če sta vnesena leva in desna stran.

Nazadnje, dogodek 1/x ali fraction Click, ki je zelo podoben zgornji kodi:

Dodajte kodo za upravljanje gumbov C in CE. C počisti vse vnose v kalkulator, medtem ko CE počisti samo številko, ki se trenutno vnese.

Zaženite program kalkulatorja in naredite poljuben izračun. Ta kalkulator je mogoče enostavno razširiti za več operacij, bolj zapletene izračune ali celo za znanstveni kalkulator z malo dodatnega dela.

Nasvet

Če naletite na napake, preverite svojo kodo vrstico za vrstico, pri čemer se osredotočite na vrstice, za katere je VB označil, da vsebujejo napake, in jo primerjajte z zgornjo kodo. Koda v tem članku je bila v celoti preizkušena, da ne vsebuje napak, zato bo njeno zvesto kopiranje povzročilo funkcionalen program. Če uporabljate prejšnjo različico Visual Basica, lahko naletite na nekaj težav, ko so bile v različnih različicah spremenjene jezike. Prejšnje različice VB so na primer uporabljale Math. Sqrt() namesto Math. Sqr() za izvedbo operacije kvadratnega korena. Preverite Reference za svojo različico in preverite, ali so potrebne kakršne koli spremembe.