Laskin tekeminen Visual Basicilla

Avaa Visual Basic 6 ja valitse "Standard EXE" uudesta projektivalikosta. Näet näytölle tyhjän lomakkeen.

Nimeä projektisi ja lomake uudelleen napsauttamalla "Projekti1" ruudun oikealla puolella projektiluettelossa, ja kirjoittamalla uusi nimi Ominaisuudet-ruudun "Nimi"-riville, jonka pitäisi ilmestyä projektiluettelon alle oletuksena. Paina "Enter" hyväksyäksesi uuden nimen. Tee sama lomakkeellesi (ehdotettu lomakkeen nimi on "CalculatorUI") ja varmista, että kirjoitat samanlaisen nimen myös "Caption"-ominaisuuteen, mikä muuttaa tekstiä lomakkeen yläpalkissa. Tallenna projekti uuteen kansioon tietokoneellesi.

Lisää painikkeet ja tekstilaatikko lomakkeeseen. Lisää ensin tekstiruutu, jossa näkyvät laskimeen syötetyt numerot sekä laskelmien tulokset. Tee tämä valitsemalla TextBox-painike näytön vasemman reunan työkalupalkista ja vetämällä sitten hiirellä haluamasi kokoinen ja sijainti TextBoxille. Kun olet sijoittanut TextBoxin, voit muuttaa sen kokoa ja sijaintia vetämällä sen toiseen lomakkeen paikkaan tai vetämällä kahvoja (pieniä neliöitä) TextBoxin reunaa pitkin. Muista muuttaa seuraavat rivit Ominaisuudet-ikkunassa, kun TextBox on valittuna: "(Nimi)" = tbResult, "Alignment" = 1- Tasaa oikealle, "Data Format" = (valitse napsauttamalla "..." -painiketta) Numero, "Lukittu" = tosi ja "Teksti" = 0.

Valitse työkaluriviltä CommandButton-kuvake ja luo ensimmäinen painike samalla tavalla kuin loit tekstilaatikon painikkeiden lisäämistä varten. Käytä Windows-laskinta perusnäkymässä (Ohjelmat > Apuohjelmat > Laskin) laskimen asettelun perustana jättämällä pois "MC", "MR", "MS" ja "M+" -painikkeet. Muuta kunkin painikkeen seuraavia ominaisuuksia (käyttäen "+"-painiketta esimerkkinä): "(Nimi)" = btnPlus, "Teksti" = +. Tee sama muille laskimen painikkeille ja tallenna sitten työsi. Lomakkeesi pitäisi nyt muistuttaa tässä esitettyä esimerkkiä.

Lisää koodi. Huomaa, että jos painikkeiden ja tekstilaatikon nimi ei ole sama kuin tässä lueteltu koodi odottaa, tarvitset muuttaaksesi nimet vastaamaan painikkeitasi ja tekstilaatikkoasi, tai muuta painikkeet ja tekstilaatikko vastaamaan tätä koodi. Ensin meidän on luotava muutama muuttuja laskimen syötteen käsittelyä varten:

Himmeä sLeft As String, sight As String, sOperator Kuten String Dim iLeft As Double, iRight As Double, iResult As Double Dim bLeft As Boolean

Jokainen laskutoimitus koostuu neljästä osasta: numero operaattorin vasemmalla puolella (sLeft, iLeft), operaattori (sOperator), numero operaattorin oikealla puolella (sRight, iRight) ja tulos (iResult). Jotta voimme seurata, kirjoittaako käyttäjä vasemman vai oikean numeron, meidän on luotava boolen muuttuja, bLeft. Jos bLeft on tosi, laskutoimituksen vasenta puolta syötetään; jos bLeft on false, oikeaa puolta syötetään.

Alusta bLeft-muuttuja. Teemme sen luomalla Form_Load-aliohjelman, jonka voit joko kirjoittaa tässä luetellulla tavalla tai luoda automaattisesti kaksoisnapsauttamalla mitä tahansa lomakkeen osaa, jota painike tai tekstilaatikko ei kata. Toiminnon sisällä meidän on asetettava bLeft arvoon True, koska ensimmäinen syötetty numero on vasen osa:

Luo aliohjelma, joka käsittelee minkä tahansa numeropainikkeen napsautuksen. Luomme tämän aliohjelmana, koska käytämme samaa koodia jokaiselle painikkeelle, ja aliohjelman käyttö tarkoittaa, että samaa koodia ei tarvitse toistaa kymmentä kertaa. Kirjoita Form_Load-aliohjelman End-alirivin alle:

Kuten näet, tämä toiminto ottaa merkkijonoparametrin, sNumber, joka sisältää numeron, jota käyttäjä on napsauttanut. Jos bLeft on tosi, tämä numero lisätään merkkijonoon, joka edustaa syötettävää numeroa, sLeft, ja tekstilaatikko tbResult päivitetään näyttämään uusi numero. Jos bLeft on epätosi, sama toiminto suoritetaan käyttämällä sen sijaan sRightia.

Luo lopuksi Click-tapahtumatoiminto jokaiselle numerolle, joka kutsuu AddNumber-alirutiinimme. Voit tehdä tämän helposti kaksoisnapsauttamalla kutakin numeropainiketta, mikä luo sinulle aliohjelman rakenteen. Lisää sitten puhelu AddNumberiin ja korvaa lainausmerkeissä oleva numero painikkeeseen liittyvällä numerolla. Nollapainikkeen koodi näyttää tältä:

Samoin yhden painikkeen koodi näyttää tältä:

Käsittele operaattoreita: plus, miinus, ajat ja jako. Teemme tämän kuten viimeinen vaihe luomalla aliohjelman, jota kutsutaan käyttäjäpainikkeiden Click-tapahtumissa. Aliohjelma näyttää tältä:

Jos bLeft on tosi, eli käyttäjä on juuri syöttänyt laskutoimituksen vasemman osan, tämä aliohjelma asettaa sOperator-muuttuja, jonka loimme vaiheessa 5 vastaamaan syötettyä operaattoria, joka välitetään AddOperatorille merkkijonona UusiOperaattori. Toinen vaihe on asettaa bLeft arvoon False, koska operaattorin syöttäminen tarkoittaa, että käyttäjä on syöttänyt yhtälön vasemmalle puolelle. Jotta voimme käsitellä merkintöjä, jotka sisältävät useita operaattoreita, kuten 9 * 3 * 2 * 6, meidän on Tarkista myös, onko bLeft false, mikä tarkoittaa, että käyttäjä on syöttänyt operaattorin, johon odotimme on yhtä suuri. Ensin kutsumme Click-tapahtumaa yhtäläisyydelle (kuvattu seuraavassa vaiheessa), joka suorittaa laskutoimituksen ja asettaa tbResultin jo syötetyn tuloksen. Sitten tyhjennämme sRightin, jotta käyttäjä voi syöttää seuraavan numeron, ja asetamme bLeftin arvoksi False, jotta ohjelma tietää, että siirrymme seuraavaksi laskutoimituksen oikealle puolelle.

Lisää lopuksi AddOperator-kutsu kunkin operaattoripainikkeen Click-tapahtumaan samalla menetelmällä kuin käytimme vaiheessa 7 luodaksemme Click-tapahtumat numeropainikkeille. Plus-painikkeen koodi näyttää tältä:

Luo Click-tapahtuma yhtäläisyyspainikkeelle, joka on tämän ohjelman monimutkaisin koodi. Luo aliohjelmarakenne kuten teit muille painikkeille kaksoisnapsauttamalla lomakkeen yhtäläisyyspainiketta. Aliohjelmasi näyttää tältä, kun olet syöttänyt koodin:

Kolme ensimmäistä koodiriviä tarkistavat, onko laskennan molemmat puolet syötetty operaattorin kanssa. Jos syötetään vain vasen puoli ja operaattori, vasemman puolen arvo kopioidaan oikealle, jotta voimme matkia Laskimen vakiokäyttäytyminen syötteen, kuten 9 * =, käsittelyssä, joka kertoo 9:n itsellään saadakseen tuloksen 81. Loput koodista suoritetaan vain, jos syötetään vasen, oikea ja operaattori, ja se alkaa kopioimalla numerot iLeft- ja iRight-kaksikirjoitettuihin muuttujiimme, jotka voivat tehdä todellisen laskelmat. Select Case -käsky antaa meille mahdollisuuden suorittaa eri koodia sen mukaan, mikä operaattori on syötetty, ja suorittaa varsinaisen laskelman sijoittamalla tuloksen iResultiin. Lopuksi päivitämme tekstilaatikon tuloksella, kopioimme tuloksen sLeftiin, nollaamme sRightin ja asetamme bLeft = True. Näiden viimeisten rivien avulla voimme ottaa laskennan tuloksen ja käyttää sitä toisen laskutoimituksen suorittamiseen.

Käsittele kolmea viimeistä käyttöpainiketta: sqrt, % ja 1/x. Neliöjuuripainikkeen Click-tapahtumassa koodisi näyttää tältä:

Ensimmäiset 11 koodiriviä varmistavat, että jos yhtälön kummallekin puolelle ei ole syötetty arvoa, korvaamme nollan sen sijaan, että yrittäisimme kopioida tyhjän merkkijonon iLeft- tai iRight-kenttään, mikä luo virhe. Keskiviivat suorittavat neliöjuurifunktion laskennan nykyisessä osassa, joko vasemmalla tai oikealla. Lopuksi käännämme alussa tekemämme tarkistukset niin, että nolla kopioidaan tyhjänä merkkijonona takaisin sLeft- ja sRight-merkkiin.

Prosenttipainikkeen koodi on samanlainen yhdellä poikkeuksella: prosenttitoiminto voidaan suorittaa vain, jos sekä vasen että oikea puoli on syötetty.

Lopuksi 1/x eli murto-osa, Click-tapahtuma, joka on hyvin samanlainen kuin yllä oleva koodi:

Lisää koodi C- ja CE-painikkeiden käsittelemiseksi. C tyhjentää kaikki syötteet laskimeen, kun taas CE tyhjentää vain syötettävän numeron.

Suorita laskinohjelmasi ja suorita haluamasi laskutoimitukset. Tämä laskin voidaan helposti laajentaa käsittelemään enemmän operaatioita, monimutkaisempia laskelmia tai jopa tieteelliseksi laskimeksi pienellä lisätyöllä.

Kärki

Jos kohtaat virheitä, tarkista koodisi rivi riviltä keskittyen riveihin, jotka VB on ilmoittanut sisältäviksi virheitä, ja vertaa sitä yllä olevaan koodiin. Tämän artikkelin sisältämä koodi on täysin testattu virheettömäksi, joten sen uskollinen kopioiminen johtaa toimivaan ohjelmaan. Jos käytät aiempaa Visual Basicin versiota, saatat kohdata ongelmia, joissa kieleen on tehty muutoksia eri versioissa. Esimerkiksi VB: n aiemmissa versioissa käytettiin matematiikkaa. Sqrt() matematiikan sijaan. Sqr() suorittaa neliöjuurioperaation. Tarkista haluamasi version viittaukset nähdäksesi, tarvitaanko muutoksia.