Kuidas teha kalkulaatorit Visual Basicuga

Avage Visual Basic 6 ja valige uuest projektimenüüst "Standard EXE". Näete, et ekraanile ilmub tühi vorm.

Nimetage oma projekt ja vorm ümber, klõpsates projektiloendis ekraani paremas servas "Projekt1", ja sisestades Atribuutide kasti reale "Nimi" uue nime, mis peaks ilmuma projektiloendi alla vaikimisi. Uue nime aktsepteerimiseks vajutage "Enter". Tehke sama oma vormi puhul (soovitatud vormi nimi on "CalculatorUI"), veendudes, et sisestaksite sarnase nime ka atribuudile "Caption", mis muudab vormi ülemisel ribal olevat teksti. Salvestage projekt oma arvuti uude kausta.

Lisa vormile nupud ja tekstikast. Esmalt lisage tekstikast, kuhu ilmuvad kalkulaatorisse sisestatud numbrid ja arvutuste tulemused. Selleks valige ekraani vasakpoolses servas olevalt tööriistaribalt nupp TextBox ja lohistage seejärel hiirega tekstikasti soovitud suurus ja asukoht. Kui olete tekstikasti paigutanud, saate selle suurust ja asukohta muuta, lohistades selle vormi teise asukohta või lohistades käepidemeid (väikesi ruute) mööda tekstikasti äärist. Muutke kindlasti aknas Atribuudid järgmisi ridu, kui tekstikast on valitud: "(Name)" = tbResult, "Joondamine" = 1- paremale joondamine, "Andmevorming" = (valimiseks klõpsake nuppu "...") Number, "Lukustatud" = Tõene ja "Tekst" = 0.

Valige tööriistaribal ikoon CommandButton ja looge esimene nupp samamoodi, nagu lõite nuppude lisamiseks tekstikasti. Kasutage oma kalkulaatori paigutuse aluseks Windowsi kalkulaatorit standardvaates (Programmid > Tarvikud > Kalkulaator), jättes välja nupud "MC", "MR", "MS" ja "M+". Muutke igal nupul järgmisi atribuute (kasutades näitena nuppu "+"): "(Nimi)" = btnPlus, "Piitrikiri" = +. Tehke sama ka ülejäänud kalkulaatori nuppudega ja seejärel salvestage oma töö. Teie vorm peaks nüüd sarnanema siin näidatud näitega.

Lisage kood. Pange tähele, et kui teie nuppude ja tekstikasti nimi ei ole sama, mida siin loetletud kood eeldab, vajate seda nimede muutmiseks, et need vastaksid teie nuppudele ja tekstikastile, või muutke oma nuppe ja tekstikasti, et need vastaksid sellele kood. Kõigepealt peame kalkulaatori sisendi töötlemiseks looma mõned muutujad:

Dim sLeft As String, Sright As String, sOperator as String Dim iLeft as Double, iRight as Double, iResult As Double Dim bLeft kui Boolean

Iga arvutus koosneb neljast osast: arv operaatorist vasakul (sLeft, iLeft), operaator (sOperator), number operaatorist paremal (sRight, iRight) ja tulemus (iResult). Selleks, et jälgida, kas kasutaja sisestab vasak- või parempoolse numbri, peame looma tõeväärtuse muutuja bLeft. Kui bLeft on tõene, sisestatakse arvutuse vasak pool; kui bLeft on vale, sisestatakse parem pool.

Initsialiseerige muutuja bLeft. Teeme seda, luues alamprogrammi Form_Load, mille saate kas tippida, nagu siin loetletud, või luua automaatselt, topeltklõpsates vormi mis tahes osal, mida nupp või tekstikast ei kata. Funktsiooni sees peame määrama bLeft väärtuseks True, sest esimene sisestatud number on vasakpoolne osa:

Looge alamprogramm, mis käsitleb mis tahes numbrinupu klõpsamist. Loome selle alamprogrammina, kuna kasutame iga nupu jaoks identset koodi ja alamprogrammi kasutamine tähendab, et ei pea sama koodi kümme korda kordama. Sisestage Form_Load alamprogrammi lõpu alamrea alla järgmine:

Nagu näete, võtab see funktsioon stringiparameetri sNumber, mis sisaldab numbrit, millel kasutaja on klõpsanud. Kui bLeft on tõene, lisatakse see number stringile, mis tähistab sisestatavat numbrit, sLeft, ja tekstikasti tbResult värskendatakse uue numbri kuvamiseks. Kui bLeft on väär, tehakse sama toiming selle asemel sRighti abil.

Lõpuks looge iga numbri jaoks, mis kutsub meie AddNumber alamprogrammi, funktsioon Click sündmuse. Seda saate hõlpsalt teha, topeltklõpsates igal numbrinupul, mis loob teie jaoks alamprogrammi struktuuri. Seejärel lisage kõne numbrile AddNumber, asendades jutumärkides oleva numbri nupuga seotud numbriga. Nullnupu puhul näeb teie kood välja järgmine:

Samamoodi näeb ühe nupu kood välja järgmine:

Käsitsege operaatoreid: pluss, miinus, korda ja jaga. Teeme seda nagu viimast sammu, luues alamprogrammi, mida kutsutakse operaatorinuppude Click sündmustes. Alamprogramm näeb välja järgmine:

Kui bLeft on tõene, mis tähendab, et kasutaja on just sisestanud arvutuse vasakpoolsesse ossa, määrab see alamprogramm sOperatori muutuja, mille lõime sammus 5, et see oleks võrdne sisestatud operaatoriga, mis edastatakse stringina AddOperatorile sUusOperaator. Teine samm on seada bLeft väärtuseks False, sest operaatori sisestamine tähendab, et kasutaja on võrrandi vasakpoolsesse serva sisestamise lõpetanud. Selleks et käsitleda kirjeid, mis koosnevad mitmest operaatorist, näiteks 9 * 3 * 2 * 6, peame Samuti kontrollige, kas bLeft on vale, mis tähendab, et kasutaja on sisestanud operaatori, kus me ootasime võrdub. Esmalt kutsume välja nupu Click sündmuse võrdub (seda kirjeldatakse järgmises sammus), mis teeb arvutuse ja seab tbResult juba sisestatu tulemuseks. Seejärel tühjendame sRighti, et kasutaja saaks sisestada järgmise numbri, ja määrame bLeft väärtuseks False, et programm teaks, et sisestame järgmisena arvutuse paremasse serva.

Lõpuks lisage iga operaatori nupu Click sündmusele AddOperatori kõne, kasutades sama meetodit, mida kasutasime 7. toimingus numbrinuppude jaoks Click sündmuste loomiseks. Teie plussnupu kood näeb välja järgmine:

Looge nupule Click sündmus, mis on selle programmi kõige keerulisem kood. Looge alamprogrammi struktuur nagu teiste nuppude jaoks, topeltklõpsates vormil võrdset nuppu. Kui olete koodi sisestanud, näeb teie alamprogramm välja järgmine:

Koodi esimesed kolm rida kontrollivad, kas arvutuse mõlemad pooled on sisestatud koos operaatoriga. Kui sisestatakse ainult vasak pool ja operaator, kopeeritakse vasaku külje väärtus paremale, et saaksime jäljendada standardne kalkulaatori käitumine kirje käsitlemisel nagu 9 * =, mis korrutab 9 endaga, et saada tulemuseks 81. Ülejäänud koodi käitatakse ainult siis, kui sisestatakse vasak, parem ja operaator, ning see algab kopeerimisega numbristringid meie iLeft ja iRight topelttüüpi muutujatesse, mis võivad teha arvutused. Lause Select Case võimaldab meil käivitada erinevat koodi olenevalt sisestatud operaatorist ja teostab tegeliku arvutuse, asetades tulemuse iResulti. Lõpuks värskendame tekstikasti tulemusega, kopeerime tulemuse kausta sLeft, lähtestame sRight ja määrame bLeft = True. Need viimased read võimaldavad meil võtta arvutuse tulemuse ja kasutada seda teise arvutuse tegemiseks.

Käsitsege kolme viimast töönuppu: sqrt, % ja 1/x. Ruutjuure nupu Click sündmuse puhul näeb teie kood välja järgmine:

Esimesed 11 koodirida tagavad, et kui meil pole võrrandi kummalegi poolele väärtust sisestatud, asendame nulliga selle asemel, et proovida kopeerida tühja stringi iLeft või iRight, mis genereerib viga. Keskmised jooned täidavad ruutjuure funktsiooni praeguses arvutuse osas, kas vasakul või paremal. Lõpuks pöörame alguses tehtud kontrollid vastupidiseks, nii et null kopeeritakse tühja stringina tagasi sLeft ja sRight.

Protsendinupu puhul on kood sarnane, välja arvatud üks erand: protsenditoimingut saab teha ainult siis, kui on sisestatud nii vasak kui ka parem pool.

Lõpuks sündmus 1/x ehk murdosa, kliki sündmus, mis on väga sarnane ülaltoodud koodiga:

C- ja CE-nuppude käsitsemiseks lisage kood. C kustutab kõik kalkulaatorisse sisestatud andmed, CE aga ainult hetkel sisestatava numbri.

Käivitage oma kalkulaatoriprogramm ja tehke soovitud arvutused. Seda kalkulaatorit saab hõlpsasti laiendada, et saaksite teha rohkem toiminguid, keerukamaid arvutusi või olla isegi väikese lisatööga teaduslik kalkulaator.

Näpunäide

Kui ilmnevad vead, kontrollige oma koodi ridade kaupa, keskendudes ridadele, mille VB on välja kutsunud kui vigu, ja võrrelge seda ülaltoodud koodiga. Selles artiklis sisalduv kood on täielikult testitud veavabaks, nii et selle tõepärase kopeerimise tulemuseks on funktsionaalne programm. Kui kasutate Visual Basicu eelmist versiooni, võib teil tekkida probleeme, mille puhul on erinevates versioonides keeles tehtud muudatusi. Näiteks VB varasemates versioonides kasutati matemaatikat. Sqrt() matemaatika asemel. Sqr() ruutjuuroperatsiooni sooritamiseks. Kontrollige oma konkreetse versiooni viiteid, et näha, kas muudatusi on vaja.