Jak zrobić kalkulator w Visual Basic

Otwórz Visual Basic 6 i wybierz "Standard EXE" z nowego menu projektu. Na ekranie pojawi się pusty formularz.

Zmień nazwę swojego projektu i formularza, klikając „Projekt1” po prawej stronie ekranu, na liście projektów, i wpisanie nowej nazwy w wierszu „Nazwa” pola Właściwości, która powinna pojawić się pod listą projektów przez domyślna. Naciśnij „Enter”, aby zaakceptować nową nazwę. Zrób to samo dla swojego formularza (sugerowana nazwa formularza to „CalculatorUI”), pamiętając o wprowadzeniu podobnej nazwy również we właściwości „Podpis”, co zmieni tekst na górnym pasku formularza. Zapisz projekt w nowym folderze na swoim komputerze.

Dodaj przyciski i pole tekstowe do formularza. Najpierw dodaj pole tekstowe, w którym pojawią się liczby wprowadzone w kalkulatorze, a także wyniki obliczeń. Zrób to, wybierając przycisk TextBox z paska narzędzi po lewej stronie ekranu, a następnie przeciągając myszą żądany rozmiar i lokalizację TextBox. Po umieszczeniu TextBox możesz zmienić rozmiar i lokalizację, przeciągając go do innej lokalizacji formularza lub przeciągając uchwyty (małe kwadraty) wzdłuż obramowania TextBox. Pamiętaj, aby zmienić następujące wiersze w oknie Właściwości, z zaznaczonym polem tekstowym: "(Nazwa)" = tbResult, „Wyrównanie” = 1- Wyrównanie do prawej, „Format danych” = (kliknij przycisk „...”, aby wybrać) Liczba, „Zablokowane” = Prawda i „Tekst” = 0.

Wybierz ikonę CommandButton na pasku narzędzi i utwórz pierwszy przycisk w taki sam sposób, w jaki utworzyłeś TextBox, aby dodać przyciski. Dla odniesienia, użyj kalkulatora Windows w widoku standardowym (Programy > Akcesoria > Kalkulator) jako podstawy układu kalkulatora, pomijając przyciski „MC”, „MR”, „MS” i „M+”. Na każdym przycisku zmień następujące właściwości (przy użyciu przycisku „+” jako przykładu): „(Name)” = btnPlus, „Caption” = +. Zrób to samo dla pozostałych przycisków kalkulatora, a następnie zapisz swoją pracę. Twój formularz powinien teraz przypominać pokazany tutaj przykład.

Dodaj kod. Pamiętaj, że jeśli twoje przyciski i pola tekstowe nie mają takich samych nazw, jak oczekuje wymieniony tutaj kod, będziesz potrzebować aby zmienić nazwy, aby pasowały do ​​przycisków i pola tekstowego, lub zmień przyciski i pole tekstowe, aby pasowały do ​​tego kod. Najpierw musimy stworzyć kilka zmiennych do przetwarzania danych wejściowych kalkulatora:

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

Każde obliczenie składa się z czterech części: liczby po lewej stronie operatora (sLeft, iLeft), operatora (sOperator), liczby po prawej stronie operatora (sRight, iRight) oraz wyniku (iResult). Aby śledzić, czy użytkownik wpisuje lewą czy prawą liczbę, musimy utworzyć zmienną logiczną bLeft. Jeśli bLeft ma wartość true, wprowadzana jest lewa strona obliczenia; jeśli bLeft jest fałszywe, wprowadzana jest prawa strona.

Zainicjuj zmienną bLeft. Robimy to, tworząc podprogram Form_Load, który można albo wpisać, jak podano tutaj, albo utworzyć automatycznie, klikając dwukrotnie dowolną część formularza nieobjętą przyciskiem lub polem tekstowym. Wewnątrz funkcji musimy ustawić bLeft na True, ponieważ pierwsza wprowadzona liczba będzie częścią lewą:

Utwórz podprogram, który będzie obsługiwał klikanie dowolnych przycisków numerycznych. Tworzymy to jako podprogram, ponieważ używamy identycznego kodu dla każdego przycisku, a użycie podprogramu oznacza, że ​​nie trzeba powtarzać tego samego kodu dziesięć razy. Wprowadź następujące informacje poniżej wiersza End Sub podprogramu Form_Load:

Jak widać, funkcja ta przyjmuje parametr tekstowy sNumber, który będzie zawierał liczbę, na którą kliknął użytkownik. Jeśli bLeft ma wartość true, ta liczba jest dołączana do ciągu, który reprezentuje wprowadzaną liczbę, sLeft, a pole tekstowe tbResult jest aktualizowane, aby wyświetlić nowy numer. Jeśli bLeft ma wartość false, ta sama operacja jest wykonywana za pomocą sRight.

Na koniec utwórz funkcję zdarzenia Click dla każdego numeru, który wywołuje nasz podprogram AddNumber. Możesz to zrobić łatwo, klikając dwukrotnie każdy przycisk numeryczny, co utworzy dla Ciebie strukturę podprogramu. Następnie dodaj wywołanie do AddNumber, zastępując numer w cudzysłowie numerem powiązanym z przyciskiem. Dla przycisku zero twój kod będzie wyglądał tak:

Podobnie dla jednego przycisku Twój kod będzie wyglądał tak:

Obsługuj operatory: plus, minus, razy i dziel. Zrobimy to jak ostatni krok, tworząc podprogram, który jest wywoływany w zdarzeniach Click dla przycisków operatora. Podprogram będzie wyglądał następująco:

Jeśli bLeft jest prawdziwe, co oznacza, że ​​użytkownik właśnie wprowadził lewą część obliczenia, ten podprogram ustawia Zmienna sOperator, którą utworzyliśmy w kroku 5, jest równa wprowadzonemu operatorowi, który jest przekazywany do AddOperator jako łańcuch sNowy Operator. Drugim krokiem jest ustawienie bLeft na False, ponieważ wprowadzenie operatora oznacza, że ​​użytkownik zakończył wprowadzanie lewej strony równania. Aby obsłużyć wpisy, które łączą wiele operatorów, takich jak 9 * 3 * 2 * 6, musimy sprawdź również, czy bLeft jest fałszywe, co oznacza, że ​​użytkownik wprowadził operator, w którym oczekiwaliśmy równa się. Najpierw wywołujemy zdarzenie Click dla przycisku równości (opisane w następnym kroku), które wykonuje obliczenia i ustawia tbResult na wynik tego, co już zostało wprowadzone. Następnie czyścimy sRight, aby użytkownik mógł wprowadzić następną liczbę, i ustawiamy bLeft na False, aby program wiedział, że w następnej kolejności wprowadzamy prawą stronę obliczeń.

Na koniec dodaj wywołanie AddOperator do zdarzenia Click każdego przycisku operatora, używając tej samej metody, której użyliśmy w kroku 7, aby utworzyć zdarzenia Click dla przycisków numerycznych. Twój kod przycisku plusa będzie wyglądał tak:

Utwórz zdarzenie Click dla przycisku równości, który jest najbardziej złożonym kodem w tym programie. Utwórz strukturę podprogramu, tak jak w przypadku innych przycisków, klikając dwukrotnie przycisk równości w formularzu. Twój podprogram będzie wyglądał tak po wpisaniu kodu:

Pierwsze trzy wiersze kodu sprawdzają, czy obie strony obliczenia zostały wprowadzone wraz z operatorem. Jeśli wprowadzono tylko lewą stronę i operator, wartość lewej strony jest kopiowana do prawej, dzięki czemu możemy naśladować standardowe zachowanie kalkulatora do obsługi wpisu takiego jak 9 * =, które mnoży 9 przez siebie, aby uzyskać wynik 81. Reszta kodu zostanie uruchomiona tylko po wprowadzeniu lewego, prawego i operatora, a zaczyna się od kopiowania ciągi liczb do naszych zmiennych iLeft i iRight o podwójnym typie, które mogą wykonywać rzeczywiste obliczenia. Instrukcja Select Case pozwala nam na uruchomienie innego kodu w zależności od wprowadzonego operatora i wykonuje rzeczywiste obliczenia, umieszczając wynik w iResult. Na koniec aktualizujemy pole tekstowe wynikiem, kopiujemy wynik do sLeft, resetujemy sRight i ustawiamy bLeft = True. Te ostatnie wiersze pozwalają nam wziąć wynik obliczenia i użyć go do wykonania innego obliczenia.

Obsługuj trzy ostatnie przyciski operacji: sqrt, % i 1/x. W przypadku zdarzenia Click przycisku pierwiastka kwadratowego Twój kod będzie wyglądał tak:

Pierwsze 11 wierszy kodu zapewnia, że ​​jeśli nie mamy wpisanej wartości dla żadnej ze stron równania, podstawiamy zero zamiast próbować skopiować pusty ciąg do iLeft lub iRight, co spowoduje wygenerowanie błąd. Linie środkowe wykonują funkcję pierwiastka kwadratowego w bieżącej części obliczenia, po lewej lub po prawej stronie. Na koniec odwracamy kontrole, które przeprowadziliśmy na początku, tak że zero jest kopiowane jako pusty ciąg z powrotem do sLeft i sRight.

W przypadku przycisku procentowego kod jest podobny, z jednym wyjątkiem: operację procentową można wykonać tylko wtedy, gdy wprowadzono zarówno lewą, jak i prawą stronę.

Na koniec zdarzenie 1/x, czyli ułamek, Click, które jest bardzo podobne do powyższego kodu:

Dodaj kod do obsługi przycisków C i CE. C czyści wszystkie dane wprowadzone do kalkulatora, podczas gdy CE czyści tylko aktualnie wprowadzoną liczbę.

Uruchom program kalkulatora i wykonaj dowolne obliczenia. Kalkulator ten można łatwo rozbudować, aby obsługiwać więcej operacji, bardziej złożone obliczenia, a nawet stać się kalkulatorem naukowym przy odrobinie dodatkowej pracy.

Wskazówka

Jeśli napotkasz błędy, sprawdź swój kod wiersz po wierszu, koncentrując się na wierszach, które VB nazwał jako zawierające błędy, i porównaj go z powyższym kodem. Kod zawarty w tym artykule został w pełni przetestowany pod kątem bezbłędności, więc jego wierne skopiowanie zaowocuje funkcjonalnym programem. Jeśli używasz poprzedniej wersji Visual Basic, możesz napotkać pewne problemy, w których w różnych wersjach wprowadzono zmiany w języku. Na przykład poprzednie wersje VB używały matematyki. Sqrt() zamiast Math. Sqr(), aby wykonać operację pierwiastka kwadratowego. Sprawdź Referencje dla konkretnej wersji, aby zobaczyć, czy konieczne są jakieś zmiany.