Een rekenmachine maken met Visual Basic

Stap 1

Open Microsoft Visual Basic 6 en selecteer "Standard EXE" in het nieuwe projectmenu. Er verschijnt een leeg formulier op het scherm.

Stap 2

Wijzig de naam van uw project en uw formulier door te klikken op "Project1" aan de rechterkant van het scherm, in de lijst met projecten en voer een nieuwe naam in de regel "Naam" van de eigenschappen in, die zou moeten verschijnen door standaard onder de lijst met projecten. Druk op "Enter" om de nieuwe naam te accepteren. Doe hetzelfde voor uw formulier dat "CalculatorUI" kan zijn, en zorg ervoor dat u ook een vergelijkbare naam invoert in de eigenschap "Bijschrift", waardoor de tekst in de bovenste balk van het formulier wordt gewijzigd. Sla het project op in een nieuwe map op uw computer.

Stap 3

Knoppen en tekst toevoegen aan het formulier. Voeg eerst een tekstvak toe waar de cijfers verschijnen die u in de calculator invoert, evenals de berekeningsresultaten. Doe dit door de TextBox-knop op de werkbalk aan de linkerkant van het scherm te selecteren en teken vervolgens met je muis de grootte en plaats waar je de TextBox wilt plaatsen. Wanneer u de TextBox hebt geplaatst, kunt u de grootte en positie wijzigen door een andere positie op het formulier te tekenen of door de handgrepen, dat wil zeggen de kleine vierkantjes, langs de rand van de TextBox te tekenen. Zorg ervoor dat u de volgende regels in het venster "Eigenschappen" wijzigt met de geselecteerde TextBox: "(Name)" = tbResult, "Alignment" = 1- Right Justify, "Data Format" = (klik op de "... "knop om te selecteren) Nummer, " Vergrendeld "= Waar en" Tekst "= 0.

Stap 4

Selecteer het pictogram "CommandButton" op de werkbalk en maak de eerste knop op dezelfde manier waarop u de TextBox-knoppen hebt gemaakt. Als u een vraag wilt stellen, gebruikt u de Windows-rekenmachine in de standaardweergave (Programma's> Accessoires> Rekenmachine) als basis voor het ontwerp van uw rekenmachine, waarbij u de knoppen "MC", "MR", "MS" en "M +" weglaat. Bij elke knop moet u de volgende eigenschappen wijzigen, gebruik de knop "+" als voorbeeld: "(Name)" = btnPlus, "Caption" = +. Doe hetzelfde voor de rest van de rekenmachineknoppen en sla vervolgens uw werk op.

Stap 5

Voeg de code toe Merk op dat als de knoppen en de TextBox niet hetzelfde zijn als de hier weergegeven code, u de namen moet wijzigen om overeen te komen met uw knoppen en de TextBox of uw knoppen en de TextBox moet wijzigen om met deze code te corresponderen. Eerst moeten we een paar variabelen maken voor gegevensinvoer van de rekenmachine:

Dim sLeft As String, sRight As String, sOperator As String Dim iLeft As Double, iRight As Double, iResult As Double Dim bLeft As Boolean

Elke berekening bestaat uit vier delen: een nummer links van de operator (sLeft, iLeft), een operator (sOperator), een nummer rechts van de operator (sRight, iRight) en een resultaat (iResult). Om te weten of de gebruiker het linker- of rechternummer invoert, moeten we een booleaanse variabele maken, bLeft. Als bLeft waar is, wordt de linkerkant geïntroduceerd; als bLeft false is, wordt de rechterkant ingevoerd.

Stap 6

Initialiseer de variabele bLeft. U moet dit doen door een Form_Load-subroutine te maken, die u kunt schrijven, zoals hier wordt vermeld, of door deze automatisch te maken door tweemaal te klikken op een deel van het formulier dat niet onder een knop of een tekstvak valt. Binnen de functie moeten we bLeft instellen op True omdat het eerste ingevoerde nummer het derde deel zal zijn:

Private Sub Form_Load () bLeft = True End Sub

Stap 7

Maak een subroutine die de klik van een van de cijfertoetsen verwerkt. Je gaat dit als een subroutine maken omdat je voor elke knop identieke codes gebruikt en één gebruiken betekent dat je dezelfde code niet tien keer hoeft te herhalen. Voer het volgende in onder de subroutine Form_Load End Sub Line:

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

Zoals u kunt zien, heeft de functie een seriële parameter, sNumber, die het nummer bevat waarop de gebruiker heeft gedrukt. Als bLeft waar is, wordt dit nummer toegevoegd aan de reeks die het nummer vertegenwoordigt dat u hebt ingevoerd, sLeft en wordt het tekstvak tbResult bijgewerkt om het nieuwe nummer weer te geven. Als bLeft false is, wordt dezelfde bewerking uitgevoerd, maar met sRight. Maak ten slotte een Click-functie voor elk nummer dat de AddNumber-subroutine benoemt. U kunt dit doen door te dubbelklikken op elke cijferknop om de structuur van de subroutine te maken. Voeg vervolgens het Addnumber toe, waarbij het nummer in afspraken wordt vervangen door het nummer dat aan de knop is gekoppeld.

Om de nulknop te maken, moet uw code er als volgt uitzien: Private Sub btn0_Click () AddNumber ("0") End Sub Evenzo, voor knop één is de code: Private Sub btn1_Click () AddNumber ("1") End Sub.

Stap 8

Beheer bewerkingen: meer, minder, uren en delen. We zullen dit als laatste stap doen, een subroutine maken die wordt genoemd in de Klikken voor de bedieningsknoppen. De subroutine lijkt op het volgende:

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

Als bLeft waar is, betekent dit dat de gebruiker het linkerdeel van de berekening heeft ingevoerd. Deze subroutine past de variabele sOperator aan die u in stap 5 hebt gemaakt, zodat deze overeenkomt met de ingevoerde operator, die wordt doorgegeven aan de AddOperator als sNewOperator. De tweede stap is om bLeft in te stellen op false, omdat de invoer van een bewerking betekent dat de gebruiker de linkerkant van de vergelijking invoert. Om items te verwerken die operators vermenigvuldigen, zoals 9 3 2 * 6, moeten we ook controleren of bLeft een valse waarde heeft, wat betekent dat de gebruiker een operator heeft ingevoerd waar hij wacht op equivalenten. Eerst noemen we de Click-knop voor de equivalente knop die in de volgende stap wordt beschreven, die de berekening uitvoert en tbResult instelt op het resultaat dat al is ingevoerd. Vervolgens verwijderen we sRight zodat de gebruiker het volgende nummer kan invoeren en bLeft op false kan zetten, zodat het programma herkent dat we het juiste deel van de berekening invoeren.

Voeg ten slotte een AddOperator toe aan de knop Klik voor elke operator, met dezelfde methode die u in stap 7 hebt gebruikt om de Click-gebeurtenissen voor de cijfertoetsen te maken. Uw code voor de vermenigvuldigingsknop moet er als volgt uitzien:

Private Sub btnPlus_Click () AddOperator ("+") End Sub Op dezelfde manier is de code voor de aftrekknop: Private Sub btnMinus_Click () AddOperator ("-") End Sub.

Stap 9

Het maken van de Click voor dezelfde knoppen is de meest complexe code in dit programma. Maak de subroutinestructuur zoals u deed voor de andere knoppen, door tweemaal op dezelfde knoppen op uw formulier te klikken. Uw subroutine ziet er zo uit wanneer u de code hebt ingevoerd:

Private Sub btnEquals_Click () If sLeft "" And sRight = "" And sOperator "" Dan sRight = sLeft End If

Als sLeft "" And sRight "" And sOperator "" Dan iLeft = sLeft iRight = sRight

Selecteer 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 End Sub

Controleer de eerste drie regels van de code om te zien of de twee zijden van de berekening samen met een operator zijn ingevoerd. Als alleen de linkerkant en één operator zijn ingevoerd, wordt de waarde aan de linkerkant rechts gekopieerd, dus we kunnen het gedrag van de standaardcalculator nabootsen door een invoer als 9 * = te gebruiken, die 9 met zichzelf vermenigvuldigt om een resultaat van 81. De rest van de code werkt als u de linker-, rechter- en operatorzijde invoert en de reeks getallen in onze variabelen twee keer iLeft en iRight gaat kopiëren, waarmee de huidige berekeningen kunnen worden gemaakt. Met de zin Select Case kunnen we verschillende codes uitvoeren, afhankelijk van de ingevoerde operator, de berekening uitvoeren en het resultaat in iResult plaatsen. Ten slotte moeten we het tekstvak met het resultaat bijwerken, het resultaat naar sLeft kopiëren, sRight herstellen en iResult aanpassen. Met deze laatste regels kunnen we het resultaat van de berekening nemen en gebruiken om een ​​andere berekening uit te voeren.

Stap 10

Verwerk de laatste drie bedieningsknoppen: sqrt, % en 1 / x. Om op de vierkantswortelknop te klikken, moet uw code er als volgt uitzien:

Privé Sub btnPercent_Click () Indien niet bLeft Dan Als sRight "" Dan iRight = sRight Anders iRight = 0 Einde Als

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

If iRight 0 Then sRight = iRight Else sRight = "" End If End If End Sub

We moeten ervoor zorgen dat er geen waarde aan beide zijden van de vergelijking wordt ingevoerd in de eerste elf regels van de code, we moeten nul vervangen in plaats van proberen een lege tekenreeks naar iLeft of iRight te kopiëren, omdat dit een fout genereert. De middelste lijnen voeren de vierkantswortelfunctie uit in het deel van de berekening, links of rechts. Ten slotte moeten we de controles die we in het begin hebben uitgevoerd, ondersteboven zetten, zodat een nul wordt gekopieerd als een lege reeks in sLeft en sRight.

Voor de percentageknop moet de code als volgt zijn, maar met één uitzondering: de procentuele bewerking kan alleen worden uitgevoerd als zowel de linker- als rechterkant zijn ingevoerd:

Privé Sub btnPercent_Click () Indien niet bLeft Dan Als sRight "" Dan iRight = sRight Anders iRight = 0 Einde Als

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

If iRight 0 Then sRight = iRight Else sRight = "" End If End If End Sub

Ten slotte, de 1 / x, of breuk, Click-gebeurtenis, die erg lijkt op de bovenstaande code: Private Sub btnFraction_Click () If sLeft "" Then iLeft = sLeft Else iLeft = 0 End If

If sRight "" Dan iRight = sRight Else iRight = 0 Einde If

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

If iLeft 0 Then sLeft = iLeft Else sLeft = "" End If

If iRight 0 Then sRight = iRight Else sRight = "" End If End Sub

Stap 11

Voeg de code toe om de C- en CE-knoppen te verwerken. De knop C reinigt alle gegevensinvoer van de rekenmachine, terwijl de CE alleen het nummer verwijdert dat u zojuist hebt ingevoerd. De code zou zijn:

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

Stap 12

Werk met uw calculatorprogramma en voer elke gewenste berekening uit. Deze calculator kan eenvoudig worden uitgebreid om elk type bewerking uit te voeren, complexere berekeningen te maken of zelfs een wetenschappelijke calculator te zijn met een beetje werk.

Interessante Artikelen