Come creare una calcolatrice con Visual Basic

Apri Visual Basic 6 e seleziona "EXE standard" dal menu del nuovo progetto. Vedrai apparire un modulo vuoto sullo schermo.

Rinominare il progetto e il modulo facendo clic su "Progetto1" sul lato destro dello schermo, nell'elenco dei progetti, e inserendo un nuovo nome nella riga "Nome" della casella Proprietà, che dovrebbe apparire sotto l'elenco del progetto da predefinito. Premi "Invio" per accettare il nuovo nome. Fai lo stesso per il tuo modulo (un nome di modulo suggerito è "CalculatorUI"), assicurandoti di inserire un nome simile anche nella proprietà "Caption", che cambierà il testo nella barra superiore del modulo. Salva il progetto in una nuova cartella sul tuo computer.

Aggiungi pulsanti e una casella di testo al modulo. Innanzitutto, aggiungi una casella di testo, che sarà il punto in cui verranno visualizzati i numeri inseriti nella calcolatrice, nonché i risultati dei calcoli. Fai ciò selezionando il pulsante TextBox dalla barra degli strumenti sul lato sinistro dello schermo, quindi trascinando con il mouse la dimensione e la posizione che desideri per la TextBox. Una volta posizionato il TextBox, puoi modificarne le dimensioni e la posizione trascinandolo in un'altra posizione del form o trascinando le maniglie (i quadratini) lungo il bordo del TextBox. Assicurati di modificare le seguenti righe nella finestra Proprietà, con la casella di testo selezionata: "(Nome)" = tbResult, "Allineamento" = 1- Giustifica a destra, "Formato dati" = (fare clic sul pulsante "..." per selezionare) Numero, "Bloccato" = Vero e "Testo" = 0.

Seleziona l'icona CommandButton sulla barra degli strumenti e crea il primo pulsante nello stesso modo in cui hai creato il TextBox per aggiungere pulsanti. Come riferimento, usa la calcolatrice di Windows nella vista Standard (Programmi > Accessori > Calcolatrice) come base per il layout della calcolatrice, tralasciando i pulsanti "MC", "MR", "MS" e "M+". Su ciascun pulsante, modifica le seguenti proprietà (usando il pulsante "+" come esempio): "(Nome)" = btnPlus, "Caption" = +. Fai lo stesso per il resto dei pulsanti della calcolatrice, quindi salva il tuo lavoro. Il modulo dovrebbe ora assomigliare all'esempio mostrato qui.

Aggiungi il codice. Nota che se i tuoi pulsanti e la tua casella di testo non hanno lo stesso nome previsto dal codice qui elencato, avrai bisogno per cambiare i nomi in modo che corrispondano ai pulsanti e alla casella di testo, o modificare i pulsanti e la casella di testo in modo che corrispondano a questo codice. Per prima cosa dobbiamo creare alcune variabili per elaborare l'input della calcolatrice:

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

Ciascun calcolo è costituito da quattro parti: un numero a sinistra dell'operatore (sLeft, iLeft), un operatore (sOperator), un numero a destra dell'operatore (sRight, iRight) e un risultato (iResult). Per monitorare se l'utente sta inserendo il numero sinistro o destro, dobbiamo creare una variabile booleana, bLeft. Se bLeft è vero, viene immesso il lato sinistro del calcolo; se bLeft è falso, viene inserito il lato destro.

Inizializzare la variabile bLeft. Lo facciamo creando una subroutine Form_Load, che puoi digitare come elencato qui o creare automaticamente facendo doppio clic su qualsiasi parte del modulo non coperta da un pulsante o da una casella di testo. All'interno della funzione, dobbiamo impostare bLeft su True, perché il primo numero inserito sarà la parte sinistra:

Creare una subroutine che gestirà il clic di uno qualsiasi dei pulsanti numerici. Lo creiamo come subroutine perché usiamo codice identico per ogni pulsante, e usare una subroutine significa non dover ripetere lo stesso codice dieci volte. Immettere quanto segue sotto la riga End Sub della subroutine Form_Load:

Come puoi vedere, questa funzione accetta un parametro stringa, sNumber, che conterrà il numero su cui l'utente ha cliccato. Se bLeft è vero, questo numero viene aggiunto alla stringa che rappresenta il numero immesso, sLeft, e la casella di testo, tbResult, viene aggiornata per visualizzare il nuovo numero. Se bLeft è false, la stessa operazione viene eseguita utilizzando invece sRight.

Infine, crea una funzione evento Click per ogni numero che chiama la nostra subroutine AddNumber. Puoi farlo facilmente facendo doppio clic su ciascun pulsante numerico, che creerà la struttura della subroutine per te. Quindi aggiungi la chiamata a AddNumber, sostituendo il numero tra virgolette con il numero associato al pulsante. Per il pulsante zero, il tuo codice sarà simile a questo:

Allo stesso modo, per un pulsante, il tuo codice sarà simile a questo:

Gestire gli operatori: più, meno, volte e dividere. Lo faremo come l'ultimo passaggio, creando una subroutine che viene chiamata negli eventi Click per i pulsanti dell'operatore. La subroutine sarà simile alla seguente:

Se bLeft è vero, ovvero l'utente è appena entrato nella parte sinistra del calcolo, questa subroutine imposta il sVariabile operatore che abbiamo creato nel passaggio 5 per eguagliare l'operatore inserito, che viene passato a AddOperator come stringa sNewOperator. Il secondo passaggio consiste nell'impostare bLeft su False, poiché l'immissione di un operatore significa che l'utente ha terminato di immettere il lato sinistro dell'equazione. Per gestire le voci che mettono insieme più operatori, come 9 * 3 * 2 * 6, dobbiamo controlla anche se bLeft è falso, il che significa che l'utente ha inserito un operatore in cui ci aspettavamo un equivale. Per prima cosa chiamiamo l'evento Click per il pulsante equals (descritto nel passaggio successivo), che esegue il calcolo e imposta tbResult sul risultato di ciò che è già stato inserito. Quindi cancelliamo sRight in modo che l'utente possa inserire il numero successivo e impostiamo bLeft su False in modo che il programma sappia che stiamo inserendo il lato destro del calcolo successivo.

Infine, aggiungi una chiamata AddOperator all'evento Click di ciascun pulsante operatore, utilizzando lo stesso metodo utilizzato nel passaggio 7 per creare gli eventi Click per i pulsanti numerici. Il tuo codice per il pulsante più sarà simile a questo:

Crea l'evento Click per il pulsante uguale, che è il codice più complesso in questo programma. Crea la struttura della subroutine come hai fatto per gli altri pulsanti, facendo doppio clic sul pulsante uguale sul modulo. La tua subroutine sarà simile a questa quando avrai inserito il codice:

Le prime tre righe di codice controllano se entrambi i lati del calcolo sono stati inseriti insieme a un operatore. Se vengono inseriti solo il lato sinistro e un operatore, il valore del lato sinistro viene copiato a destra, quindi possiamo imitare il comportamento standard della calcolatrice per gestire una voce come 9 * =, che moltiplica 9 per se stesso per ottenere un risultato di 81. Il resto del codice verrà eseguito solo se si inseriscono sinistra, destra e operatore e inizia copiando le stringhe di numeri nelle nostre variabili iLeft e iRight Double-typed, che possono fare l'effettivo calcoli. L'istruzione Select Case ci consente di eseguire un codice diverso a seconda dell'operatore inserito ed esegue il calcolo effettivo, inserendo il risultato in iResult. Infine, aggiorniamo la casella di testo con il risultato, copiamo il risultato in sLeft, resettiamo sRight e impostiamo bLeft = True. Queste ultime righe ci permettono di prendere il risultato del calcolo e utilizzarlo per eseguire un altro calcolo.

Gestire gli ultimi tre pulsanti operativi: sqrt, % e 1/x. Per l'evento Click del pulsante radice quadrata, il tuo codice sarà simile a questo:

Le prime 11 righe di codice assicurano che se non abbiamo inserito un valore per entrambi i lati dell'equazione, sostituiamo zero invece di provare a copiare una stringa vuota in iLeft o iRight, che genererà an errore. Le linee centrali eseguono la funzione di radice quadrata sulla parte corrente del calcolo, a sinistra oa destra. Infine, invertiamo i controlli che abbiamo fatto all'inizio in modo che uno zero venga copiato come una stringa vuota di nuovo in sLeft e sRight.

Per il pulsante percentuale, il codice è simile, con un'eccezione: l'operazione percentuale può essere eseguita solo se vengono immessi entrambi i lati sinistro e destro.

Infine, l'evento Click 1/x, o frazione, che è molto simile al codice sopra:

Aggiungi il codice per gestire i pulsanti C e CE. C cancella tutti gli input alla calcolatrice, mentre CE cancella solo il numero attualmente immesso.

Esegui il tuo programma calcolatrice e fai tutti i calcoli che desideri. Questa calcolatrice può essere facilmente ampliata per gestire più operazioni, calcoli più complessi o anche per essere una calcolatrice scientifica con un po' di lavoro in più.

Consiglio

Se riscontri errori, controlla il tuo codice riga per riga, concentrandoti sulle righe che VB ha chiamato come contenenti errori e confrontalo con il codice sopra. Il codice contenuto in questo articolo è stato completamente testato per essere privo di errori, quindi copiarlo fedelmente risulterà in un programma funzionante. Se stai utilizzando una versione precedente di Visual Basic, potresti riscontrare alcuni problemi in cui sono state apportate modifiche alla lingua tra le versioni. Le versioni precedenti di VB, ad esempio, utilizzavano Math. Sqrt() invece di Math. Sqr() per eseguire un'operazione di radice quadrata. Controlla i riferimenti per la tua versione specifica per vedere se sono necessarie modifiche.