1. fotoaparati
  2. Car Audio & Electronics
  3. Home Audio
  4. Osobni Audio
  5. TV
  6. Pametna kuća
  >> Hrvatska Electronic Technology >  >> Pametna kuća >> Pametan život

Kako napraviti kalkulator s Visual Basicom

Microsoft Visual Basic je programski jezik temeljen na jeziku BASIC, izvorno razvijen kako bi programiranje učinio lakšim za učenje. Visual Basic preuzima poznate naredbe BASIC-a i dodaje objektno orijentirane alate i sučelja za dizajniranje WYSIWYG Windows aplikacija i web kontrola, među mnogim drugim poboljšanjima. Jedan relativno jednostavan projekt učenja za Visual Basic je stvaranje Windows kalkulatora.

1. korak

Otvorite Visual Basic 6 i odaberite "Standard EXE" iz izbornika novog projekta. Na ekranu ćete vidjeti prazan obrazac.

2. korak

Preimenujte svoj projekt i obrazac klikom na "Projekt1" na desnoj strani ekrana, u popisu projekata i unosom novog naziva u redak "Naziv" okvira Svojstva, koji bi se trebao pojaviti ispod popisa projekata do zadano. Pritisnite "Enter" za prihvaćanje novog naziva. Učinite isto za svoj obrazac (predloženi naziv obrasca je "CalculatorUI"), pazeći da unesete sličan naziv i u svojstvo "Caption", što će promijeniti tekst na gornjoj traci obrasca. Spremite projekt u novu mapu na svom računalu.

3. korak

Dodajte gumbe i tekstni okvir u obrazac. Najprije dodajte tekstualni okvir u kojem će se pojavljivati ​​brojevi uneseni u kalkulator, kao i rezultati izračuna. Učinite to odabirom gumba TextBox na alatnoj traci na lijevoj strani zaslona, ​​a zatim mišem povucite veličinu i mjesto koje želite za TextBox. Nakon što postavite TextBox, možete promijeniti veličinu i lokaciju povlačenjem na drugu lokaciju obrasca ili povlačenjem ručica (kvadratića) duž ruba TextBoxa. Obavezno promijenite sljedeće retke u prozoru Svojstva, s odabranim TextBoxom:"(Naziv)" =tbRezultat, "Poravnanje" =1- desno poravnanje, "Format podataka" =(kliknite na gumb "..." za odaberite) Broj, "Zaključano" =Istina i "Tekst" =0.

4. korak

Odaberite ikonu CommandButton na alatnoj traci i stvorite prvi gumb na isti način na koji ste stvorili TextBox za dodavanje gumba. Za referencu, koristite Windows kalkulator u standardnom prikazu (Programi> Pribor> Kalkulator) kao osnovu za izgled vašeg kalkulatora, izostavljajući gumbe "MC", "MR", "MS" i "M+". Na svakom gumbu promijenite sljedeća svojstva (koristeći gumb "+" kao primjer):"(Naziv)" =btnPlus, "Natpis" =+. Učinite isto za ostale gumbe kalkulatora, a zatim spremite svoj rad. Vaš bi obrazac sada trebao sličiti ovdje prikazanom primjeru.

Korak 5

Dodajte kôd. Imajte na umu da ako vaši gumbi i tekstni okvir nisu nazvani kao što očekuje ovdje naveden kod, morat ćete promijeniti nazive da odgovaraju vašim gumbima i tekstnom okviru ili promijeniti svoje gumbe i tekstni okvir da odgovaraju ovom kodu. Prvo moramo stvoriti nekoliko varijabli za obradu unosa kalkulatora:

Dim sLeft kao niz, sRight kao niz, sOperator kao niz Dim iLeft kao Double, iRight kao Double, iResult kao Double Dim bLeft kao Boolean

Svaki izračun sastoji se od četiri dijela:broja lijevo od operatora (sLeft, iLeft), operatora (sOperator), broja desno od operatora (sRight, iRight) i rezultata (iResult). Kako bismo pratili upisuje li korisnik lijevi ili desni broj, moramo stvoriti Booleovu varijablu, bLeft. Ako je bLeft istinito, upisuje se lijeva strana izračuna; ako je bLeft false, unosi se desna strana.

Korak 6

Inicijalizirajte varijablu bLeft. To činimo stvaranjem potprograma Form_Load, koji možete upisati kao što je ovdje navedeno ili ga automatski stvoriti dvostrukim klikom na bilo koji dio obrasca koji nije pokriven gumbom ili tekstualnim okvirom. Unutar funkcije moramo postaviti bLeft na True jer će prvi uneseni broj biti lijevi dio:

Private Sub Form_Load() bLeft =True End Sub

7. korak

Napravite potprogram koji će upravljati klikom na bilo koji od brojčanih gumba. Ovo stvaramo kao potprogram jer koristimo identičan kod za svaki gumb, a korištenje potprograma znači da ne moramo ponavljati isti kod deset puta. Unesite sljedeće ispod retka End Sub potprograma Form_Load:

Private Sub AddNumber(sNumber As String) If bLeft Then sLeft =sLeft + sNumber tbResult.Text =sLeft Else sRight =sRight + sNumber tbResult.Text =sRight End If End Sub

Kao što vidite, ova funkcija uzima parametar niza, sBroj, koji će sadržavati broj na koji je korisnik kliknuo. Ako je bLeft istinito, ovaj se broj dodaje nizu koji predstavlja broj koji se unosi, sLeft, a tekstualni okvir, tbResult, ažurira se za prikaz novog broja. Ako je bLeft false, ista se operacija izvodi korištenjem sRight umjesto toga.

Na kraju, stvorite funkciju događaja Click za svaki broj koji poziva našu potprogram AddNumber. To možete jednostavno učiniti dvostrukim pritiskom na svaki gumb s brojem, što će za vas stvoriti strukturu potprograma. Zatim dodajte poziv u AddNumber, zamjenjujući broj u navodnicima s brojem povezanim s gumbom. Za gumb nula vaš će kôd izgledati ovako:

Private Sub btn0_Click() AddNumber ("0") End Sub

Isto tako, za jedan gumb, vaš će kôd izgledati ovako:

Private Sub btn1_Click() AddNumber ("1") End Sub

Korak 8

Rukujte operatorima:plus, minus, puta i dijeljenje. Učinit ćemo ovo kao zadnji korak, stvarajući potprogram koji se poziva u događajima Click za gumbe operatora. Potprogram će izgledati ovako:

Private Sub AddOperator(sNewOperator As String) If bLeft Then sOperator =sNewOperator bLeft =False Else btnEquals_Click sOperator =sNewOperator sRight ="" bLeft =False End If End Sub

Ako je bLeft true, što znači da je korisnik upravo unio lijevi dio izračuna, ovaj potprogram postavlja varijablu sOperator koju smo stvorili u koraku 5 da bude jednaka unesenom operatoru, koji se prosljeđuje AddOperatoru kao niz sNewOperator. Drugi korak je postaviti bLeft na False, jer unos operatora znači da je korisnik završio s unosom lijeve strane jednadžbe. Kako bismo obradili unose koji spajaju više operatora zajedno, kao što je 9 * 3 * 2 * 6, također moramo provjeriti je li bLeft lažan, što znači da je korisnik unio operator gdje smo očekivali jednako. Prvo pozivamo događaj Click za gumb jednako (opisano u sljedećem koraku), koji izvodi izračun i postavlja tbResult na rezultat onoga što je već uneseno. Zatim brišemo sRight tako da korisnik može unijeti sljedeći broj, a bLeft postavljamo na False tako da program zna da sljedeću unosimo desnu stranu izračuna.

Na kraju dodajte poziv AddOperator događaju Click svakog gumba operatora, koristeći istu metodu koju smo koristili u koraku 7 za stvaranje događaja Click za brojčane gumbe. Vaš kod za gumb plus izgledat će ovako:

Private Sub btnPlus_Click() AddOperator ("+") End Sub

Isto tako, kôd za gumb minus izgledat će ovako:

Private Sub btnMinus_Click() AddOperator ("-") End Sub

Korak 9

Napravite događaj Click za gumb jednako, koji je najsloženiji kod u ovom programu. Stvorite strukturu potprograma kao što ste to učinili za druge gumbe, dvostrukim pritiskom na gumb jednako na vašem obrascu. Vaša podrutina će izgledati ovako kada unesete kod:

Private Sub btnEquals_Click() If sLeft <> "" And sRight ="" And sOperator <> "" Then sRight =sLeft End If

If sLeft &amp;lt;&amp;gt; "" And sRight &amp;lt;&amp;gt; "" And sOperator &amp;lt;&amp;gt; "" Then
 iLeft = sLeft
 iRight = sRight

 Select Case sOperator
 Case "+"
 iResult = iLeft + iRight
 Case "-"
 iResult = iLeft - iRight
 Case "/"
 iResult = iLeft / iRight
 Case "*"
 iResult = iLeft * iRight
 End Select

 tbResult.Text = iResult

 sLeft = iResult
 sRight = ""
 bLeft = True
End If

Kraj pod

Prva tri retka koda provjeravaju jesu li obje strane izračuna unesene zajedno s operatorom. Ako su uneseni samo lijeva strana i operator, vrijednost lijeve strane kopira se na desnu, tako da možemo oponašati standardno ponašanje kalkulatora za rukovanje unosom kao što je 9 * =, koji množi 9 sam sa sobom kako bi dobio rezultat 81. Ostatak koda pokrenut će se samo ako se unesu lijevo, desno i operator, a počinje kopiranjem nizova brojeva u naše dvostruko tipizirane varijable iLeft i iRight, koje mogu izvršiti stvarne izračune. Naredba Select Case omogućuje nam pokretanje različitog koda ovisno o tome koji je operator unesen i izvodi stvarni izračun, stavljajući rezultat u iResult. Na kraju ažuriramo tekstni okvir s rezultatom, kopiramo rezultat u sLeft, poništavamo sRight i postavljamo bLeft =True. Ovi posljednji redovi omogućuju nam da uzmemo rezultat izračuna i upotrijebimo ga za izvođenje drugog izračuna.

Korak 10

Upravljajte posljednja tri radna gumba:sqrt, % i 1/x. Za događaj Click gumba kvadratnog korijena, vaš će kôd izgledati ovako:

Private Sub btnSqrt_Click() If sLeft <> "" Then iLeft =sLeft Else iLeft =0 End If

If sRight &amp;lt;&amp;gt; "" Then
 iRight = sRight
Else
 iRight = 0
End If

If bLeft Then
 iLeft = Math.Sqr(iLeft)
 tbResult.Text = iLeft
Else
 iRight = Math.Sqr(iLeft)
 tbResult.Text = iRight
End If

If iLeft &amp;lt;&amp;gt; 0 Then
 sLeft = iLeft
Else
 sLeft = ""
End If

If iRight &amp;lt;&amp;gt; 0 Then
 sRight = iRight
Else
 sRight = ""
End If

Kraj pod

Prvih 11 redaka koda osigurava da, ako nemamo unesenu vrijednost ni za jednu stranu jednadžbe, zamijenimo nulu umjesto da pokušavamo kopirati prazan niz u iLeft ili iRight, što će generirati pogrešku. Srednje linije izvode funkciju kvadratnog korijena na trenutnom dijelu izračuna, bilo lijevo ili desno. Na kraju, poništavamo provjere koje smo napravili na početku tako da se nula kopira kao prazan niz natrag u sLeft i sRight.

Za gumb za postotak kod je sličan, s jednom iznimkom:operacija postotka može se izvesti samo ako su unesene i lijeva i desna strana.

Private Sub btnPercent_Click() If Not bLeft Then If sRight <> "" Then iRight =sRight Else iRight =0 End If

iRight = iRight * (iLeft / 100)
 tbResult.Text = iRight

 If iRight &amp;lt;&amp;gt; 0 Then
 sRight = iRight
 Else
 sRight = ""
 End If
End If

Kraj pod

Na kraju, događaj klika 1/x ili razlomak, koji je vrlo sličan gornjem kodu:

Private Sub btnFraction_Click() If sLeft <> "" Then iLeft =sLeft Else iLeft =0 End If

If sRight &amp;lt;&amp;gt; "" Then
 iRight = sRight
Else
 iRight = 0
End If

If bLeft Then
 iLeft = 1 / iLeft
 tbResult.Text = iLeft
Else
 iRight = 1 / iRight
 tbResult.Text = iRight
End If

If iLeft &amp;lt;&amp;gt; 0 Then
 sLeft = iLeft
Else
 sLeft = ""
End If

If iRight &amp;lt;&amp;gt; 0 Then
 sRight = iRight
Else
 sRight = ""
End If

Kraj pod

Korak 11

Dodajte kod za upravljanje tipkama C i CE. C briše sav unos u kalkulator, dok CE briše samo broj koji se trenutno unosi.

Private Sub btnC_Click() sLeft ="" sRight ="" sOperator ="" tbResult.Text ="0" bLeft =True End Sub

Private Sub btnCE_Click() If bLeft Then sLeft ="" Else sRight ="" End If tbResult.Text ="0" End Sub

Korak 12

Pokrenite svoj program kalkulatora i napravite bilo koji izračun koji želite. Ovaj se kalkulator može jednostavno proširiti kako bi mogao raditi s više operacija, složenijim izračunima ili čak postati znanstveni kalkulator uz malo dodatnog rada.

Savjet

Ako naiđete na pogreške, provjerite svoj kod red po red, fokusirajući se na retke za koje je VB prozvao da sadrže pogreške, i usporedite ga s kodom iznad. Kôd sadržan u ovom članku u potpunosti je testiran da ne sadrži pogreške, tako da će njegovo vjerno kopiranje rezultirati funkcionalnim programom. Ako koristite prethodnu verziju Visual Basica, možete naići na neke probleme u kojima su napravljene promjene u jeziku u različitim verzijama. Prethodne verzije VB-a, na primjer, koristile su Math.Sqrt() umjesto Math.Sqr() za izvođenje operacije vađenja kvadratnog korijena. Provjerite Reference za svoju specifičnu verziju da vidite jesu li potrebne promjene.


  1. Kako napraviti metlu s Broom kukuruza
  2. Mogu li zaraditi Android aplikacije s Visual Basic
  3. Mogu li zaraditi Android aplikacije s Visual Basic
  4. Kako napraviti online obrazac za registraciju
  5. Kako napraviti letak s Gimpom