Πώς να φτιάξετε μια αριθμομηχανή με τη Visual Basic

Ανοίξτε τη Visual Basic 6 και επιλέξτε "Standard EXE" από το μενού του νέου έργου. Θα δείτε μια κενή φόρμα να εμφανίζεται στην οθόνη.

Μετονομάστε το έργο και τη φόρμα σας κάνοντας κλικ στο «Έργο1» στη δεξιά πλευρά της οθόνης, στη λίστα έργων, και εισάγοντας ένα νέο όνομα στη γραμμή "Όνομα" του πλαισίου Ιδιότητες, το οποίο θα πρέπει να εμφανίζεται κάτω από τη λίστα του έργου από Προκαθορισμένο. Πατήστε "Enter" για να αποδεχτείτε το νέο όνομα. Κάντε το ίδιο για τη φόρμα σας (ένα προτεινόμενο όνομα φόρμας είναι "CalculatorUI"), φροντίζοντας να εισαγάγετε ένα παρόμοιο όνομα και στην ιδιότητα "Caption", η οποία θα αλλάξει το κείμενο στην επάνω γραμμή της φόρμας. Αποθηκεύστε το έργο σε νέο φάκελο στον υπολογιστή σας.

Προσθέστε κουμπιά και ένα πλαίσιο κειμένου στη φόρμα. Αρχικά, προσθέστε ένα πλαίσιο κειμένου, όπου θα εμφανίζονται οι αριθμοί που εισάγονται στην αριθμομηχανή, καθώς και τα αποτελέσματα των υπολογισμών. Κάντε αυτό επιλέγοντας το κουμπί TextBox από τη γραμμή εργαλείων στην αριστερή πλευρά της οθόνης και, στη συνέχεια, σύροντας με το ποντίκι σας το μέγεθος και τη θέση που επιθυμείτε για το TextBox. Αφού τοποθετήσετε το TextBox, μπορείτε να αλλάξετε το μέγεθος και τη θέση σύροντάς το σε άλλη θέση της φόρμας ή σύροντας τις λαβές (τα μικρά τετράγωνα) κατά μήκος του περιγράμματος του πλαισίου κειμένου. Φροντίστε να αλλάξετε τις ακόλουθες γραμμές στο παράθυρο Ιδιότητες, με επιλεγμένο το TextBox: "(Όνομα)" = tbResult, "Στοίχιση" = 1- Δεξιά Δικαιολογήστε, "Μορφή δεδομένων" = (κάντε κλικ στο κουμπί "..." για να επιλέξετε) Αριθμός, "Κλειδωμένο" = Σωστό και "Κείμενο" = 0.

Επιλέξτε το εικονίδιο CommandButton στη γραμμή εργαλείων και δημιουργήστε το πρώτο κουμπί με τον ίδιο τρόπο που δημιουργήσατε το TextBox για να προσθέσετε κουμπιά. Για αναφορά, χρησιμοποιήστε την αριθμομηχανή των Windows σε τυπική προβολή (Προγράμματα > Αξεσουάρ > Αριθμομηχανή) ως βάση για τη διάταξη της αριθμομηχανής σας, αφήνοντας έξω τα κουμπιά "MC", "MR", "MS" και "M+". Σε κάθε κουμπί, αλλάξτε τις ακόλουθες ιδιότητες (χρησιμοποιώντας το κουμπί "+" ως παράδειγμα): "(Όνομα)" = btnPlus, "Caption" = +. Κάντε το ίδιο για τα υπόλοιπα κουμπιά της αριθμομηχανής και, στη συνέχεια, αποθηκεύστε την εργασία σας. Η φόρμα σας θα πρέπει τώρα να μοιάζει με το παράδειγμα που φαίνεται εδώ.

Προσθέστε τον κωδικό. Σημειώστε ότι εάν τα κουμπιά και το πλαίσιο κειμένου σας δεν έχουν το ίδιο όνομα με τον κωδικό που αναφέρεται εδώ, θα χρειαστείτε για να αλλάξετε τα ονόματα ώστε να ταιριάζουν με τα κουμπιά και το πλαίσιο κειμένου σας ή να αλλάξετε τα κουμπιά και το πλαίσιο κειμένου ώστε να ταιριάζουν με αυτό κώδικας. Πρώτα πρέπει να δημιουργήσουμε μερικές μεταβλητές για την επεξεργασία των εισόδων της αριθμομηχανής:

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

Κάθε υπολογισμός αποτελείται από τέσσερα μέρη: έναν αριθμό στα αριστερά του τελεστή (sLeft, iLeft), έναν τελεστή (sOperator), έναν αριθμό στα δεξιά του τελεστή (sRight, iRight) και ένα αποτέλεσμα (iResult). Για να παρακολουθήσουμε εάν ο χρήστης εισάγει τον αριστερό ή τον δεξιό αριθμό, πρέπει να δημιουργήσουμε μια μεταβλητή boole, bLeft. Εάν το bLeft είναι αληθές, εισάγεται η αριστερή πλευρά του υπολογισμού. εάν το bLeft είναι false, εισάγεται η δεξιά πλευρά.

Αρχικοποιήστε τη μεταβλητή bLeft. Αυτό το κάνουμε δημιουργώντας μια υπορουτίνα Form_Load, την οποία μπορείτε είτε να πληκτρολογήσετε όπως αναφέρεται εδώ είτε να δημιουργήσετε αυτόματα κάνοντας διπλό κλικ σε οποιοδήποτε μέρος της φόρμας που δεν καλύπτεται από κουμπί ή πλαίσιο κειμένου. Μέσα στη συνάρτηση, πρέπει να θέσουμε το bLeft σε True, επειδή ο πρώτος αριθμός που εισάγεται θα είναι το αριστερό μέρος:

Δημιουργήστε μια υπορουτίνα που θα χειρίζεται το κλικ οποιουδήποτε από τα αριθμητικά κουμπιά. Το δημιουργούμε ως υπορουτίνα επειδή χρησιμοποιούμε τον ίδιο κώδικα για κάθε κουμπί και η χρήση υπορουτίνας σημαίνει ότι δεν χρειάζεται να επαναλάβουμε τον ίδιο κώδικα δέκα φορές. Εισαγάγετε τα ακόλουθα κάτω από τη γραμμή End Sub της υπορουτίνας Form_Load:

Όπως μπορείτε να δείτε, αυτή η συνάρτηση παίρνει μια παράμετρο συμβολοσειράς, sNumber, η οποία θα περιέχει τον αριθμό στον οποίο έχει κάνει κλικ ο χρήστης. Εάν το bLeft είναι αληθές, αυτός ο αριθμός προστίθεται στη συμβολοσειρά που αντιπροσωπεύει τον αριθμό που εισάγεται, sLeft, και το πλαίσιο κειμένου, tbResult, ενημερώνεται για να εμφανίσει τον νέο αριθμό. Εάν το bLeft είναι false, η ίδια λειτουργία εκτελείται χρησιμοποιώντας το sRight.

Τέλος, δημιουργήστε μια συνάρτηση συμβάντος κλικ για κάθε αριθμό που καλεί την υπορουτίνα μας AddNumber. Μπορείτε να το κάνετε αυτό εύκολα κάνοντας διπλό κλικ σε κάθε αριθμητικό κουμπί, το οποίο θα δημιουργήσει τη δομή υπορουτίνας για εσάς. Στη συνέχεια, προσθέστε την κλήση στο AddNumber, αντικαθιστώντας τον αριθμό σε εισαγωγικά με τον αριθμό που σχετίζεται με το κουμπί. Για το κουμπί μηδέν, ο κωδικός σας θα μοιάζει με αυτό:

Ομοίως, για το ένα κουμπί, ο κωδικός σας θα μοιάζει με αυτό:

Χειριστείτε τους τελεστές: συν, πλην, φορές και διαίρεση. Θα το κάνουμε αυτό όπως το τελευταίο βήμα, δημιουργώντας μια υπορουτίνα που καλείται στα συμβάντα κλικ για τα κουμπιά χειριστή. Η υπορουτίνα θα έχει την εξής μορφή:

Εάν το bLeft είναι αληθές, που σημαίνει ότι ο χρήστης μόλις εισήγαγε το αριστερό μέρος του υπολογισμού, αυτή η υπορουτίνα ορίζει Μεταβλητή sOperator που δημιουργήσαμε στο βήμα 5 για να ισούται με τον τελεστή που εισήχθη, ο οποίος μεταβιβάζεται στο AddOperator ως συμβολοσειρά sNewOperator. Το δεύτερο βήμα είναι να ορίσετε το bLeft σε False, επειδή η εισαγωγή ενός τελεστή σημαίνει ότι ο χρήστης έχει ολοκληρώσει την είσοδο στην αριστερή πλευρά της εξίσωσης. Για να χειριστούμε καταχωρήσεις που συνδυάζουν πολλούς τελεστές μαζί, όπως 9 * 3 * 2 * 6, πρέπει να ελέγξτε επίσης εάν το bLeft είναι false, που σημαίνει ότι ο χρήστης έχει εισαγάγει έναν τελεστή όπου περιμέναμε ισοδυναμεί. Αρχικά καλούμε το συμβάν Click για το κουμπί ίσον (που περιγράφεται στο επόμενο βήμα), το οποίο κάνει τον υπολογισμό και ορίζει το tbResult στο αποτέλεσμα αυτού που έχει ήδη εισαχθεί. Στη συνέχεια διαγράφουμε το sRight ώστε ο χρήστης να μπορεί να εισαγάγει τον επόμενο αριθμό και ορίζουμε το bLeft σε False ώστε το πρόγραμμα να γνωρίζει ότι μπαίνουμε στη δεξιά πλευρά του υπολογισμού στη συνέχεια.

Τέλος, προσθέστε μια κλήση AddOperator στο συμβάν κλικ κάθε κουμπιού χειριστή, χρησιμοποιώντας την ίδια μέθοδο που χρησιμοποιήσαμε στο βήμα 7 για να δημιουργήσουμε τα συμβάντα κλικ για τα αριθμητικά κουμπιά. Ο κωδικός σας για το κουμπί συν θα μοιάζει με αυτό:

Δημιουργήστε το συμβάν κλικ για το κουμπί ίσον, που είναι ο πιο περίπλοκος κώδικας σε αυτό το πρόγραμμα. Δημιουργήστε τη δομή της υπορουτίνας όπως κάνατε για τα άλλα κουμπιά, κάνοντας διπλό κλικ στο κουμπί ίσον στη φόρμα σας. Η υπορουτίνα σας θα μοιάζει με αυτό όταν εισαγάγετε τον κωδικό:

Οι πρώτες τρεις γραμμές κώδικα ελέγχουν εάν έχουν εισαχθεί και οι δύο πλευρές του υπολογισμού μαζί με έναν τελεστή. Εάν εισαχθεί μόνο η αριστερή πλευρά και ένας τελεστής, η τιμή της αριστερής πλευράς αντιγράφεται στα δεξιά, ώστε να μπορούμε να μιμούμε η τυπική συμπεριφορά της αριθμομηχανής για το χειρισμό μιας καταχώρησης όπως 9 * =, η οποία πολλαπλασιάζει το 9 από μόνη της για να πάρει το αποτέλεσμα 81. Ο υπόλοιπος κωδικός θα εκτελεστεί μόνο εάν έχει εισαχθεί αριστερά, δεξιά και τελεστής και ξεκινά με αντιγραφή τις συμβολοσειρές των αριθμών στις μεταβλητές μας iLeft και iRight Διπλής πληκτρολόγησης, οι οποίες μπορούν να κάνουν το πραγματικό υπολογισμούς. Η δήλωση Select Case μας επιτρέπει να εκτελέσουμε διαφορετικό κώδικα ανάλογα με τον τελεστή που εισήχθη και εκτελεί τον πραγματικό υπολογισμό, τοποθετώντας το αποτέλεσμα στο iResult. Τέλος, ενημερώνουμε το πλαίσιο κειμένου με το αποτέλεσμα, αντιγράφουμε το αποτέλεσμα στο sLeft, επαναφέρουμε το sRight και ορίζουμε bLeft = True. Αυτές οι τελευταίες γραμμές μας επιτρέπουν να πάρουμε το αποτέλεσμα του υπολογισμού και να το χρησιμοποιήσουμε για να εκτελέσουμε έναν άλλο υπολογισμό.

Χειριστείτε τα τρία τελευταία κουμπιά λειτουργίας: sqrt, % και 1/x. Για το συμβάν κλικ του κουμπιού της τετραγωνικής ρίζας, ο κώδικάς σας θα μοιάζει με αυτό:

Οι πρώτες 11 γραμμές κώδικα διασφαλίζουν ότι εάν δεν έχουμε εισαγάγει μια τιμή για καμία από τις πλευρές της εξίσωσης, αντικαθιστούμε το μηδέν αντί να προσπαθήσουμε να αντιγράψουμε μια κενή συμβολοσειρά στο iLeft ή iRight, το οποίο θα δημιουργήσει λάθος. Οι μεσαίες γραμμές εκτελούν τη συνάρτηση της τετραγωνικής ρίζας στο τρέχον τμήμα του υπολογισμού, είτε αριστερά είτε δεξιά. Τέλος, αντιστρέφουμε τους ελέγχους που κάναμε στην αρχή, έτσι ώστε ένα μηδέν να αντιγραφεί ως κενή συμβολοσειρά πίσω στα sLeft και sRight.

Για το κουμπί επί τοις εκατό, ο κωδικός είναι παρόμοιος, με μία εξαίρεση: η λειτουργία ποσοστού μπορεί να εκτελεστεί μόνο εάν έχουν εισαχθεί και η αριστερή και η δεξιά πλευρά.

Τέλος, το συμβάν κλικ 1/x ή κλάσματος, το οποίο μοιάζει πολύ με τον παραπάνω κώδικα:

Προσθέστε κώδικα για να χειριστείτε τα κουμπιά C και CE. Το C διαγράφει όλες τις εισόδους στην αριθμομηχανή, ενώ το CE διαγράφει μόνο τον αριθμό που εισάγεται αυτήν τη στιγμή.

Εκτελέστε το πρόγραμμα της αριθμομηχανής σας και κάντε όποιον υπολογισμό θέλετε. Αυτή η αριθμομηχανή μπορεί εύκολα να επεκταθεί για να χειριστεί περισσότερες λειτουργίες, πιο σύνθετους υπολογισμούς ή ακόμα και να γίνει μια επιστημονική αριθμομηχανή με λίγη επιπλέον δουλειά.

Υπόδειξη

Εάν αντιμετωπίσετε σφάλματα, ελέγξτε τον κώδικά σας γραμμή προς γραμμή, εστιάζοντας στις γραμμές που η VB έχει χαρακτηρίσει ότι περιέχουν σφάλματα και συγκρίνετε τον με τον παραπάνω κώδικα. Ο κώδικας που περιέχεται σε αυτό το άρθρο έχει ελεγχθεί πλήρως για να είναι χωρίς σφάλματα, επομένως η πιστή αντιγραφή του θα έχει ως αποτέλεσμα ένα λειτουργικό πρόγραμμα. Εάν χρησιμοποιείτε μια προηγούμενη έκδοση της Visual Basic, ενδέχεται να αντιμετωπίσετε ορισμένα ζητήματα όπου έχουν γίνει αλλαγές στη γλώσσα σε όλες τις εκδόσεις. Προηγούμενες εκδόσεις της VB, για παράδειγμα, χρησιμοποιούσαν Math. Sqrt() αντί για Math. Sqr() για να εκτελέσετε μια λειτουργία τετραγωνικής ρίζας. Ελέγξτε τις αναφορές για τη συγκεκριμένη έκδοση για να δείτε εάν απαιτούνται αλλαγές.