1. カメラ
  2. カーオーディオ&エレクトロニクス
  3. ホームオーディオ
  4. パーソナルオーディオ
  5. テレビ
  6. スマートホーム
  >> 電子技術オンライン >  >> スマートホーム >> スマートライフ

Visual Basic で電卓を作成する方法

Microsoft Visual Basic は、BASIC 言語に基づいたプログラミング言語であり、もともとプログラミングの学習を容易にするために開発されました。 Visual Basic は、BASIC の使い慣れたコマンドを使用し、WYSIWYG に似た Windows アプリケーションと Web コントロールを設計するためのオブジェクト指向のツールとインターフェイスを追加するなど、多くの拡張機能があります。 Visual Basic の比較的単純な学習プロジェクトの 1 つは、Windows 電卓の作成です。

ステップ 1

Visual Basic 6 を開き、新しいプロジェクト メニューから [標準 EXE] を選択します。画面に空白のフォームが表示されます。

ステップ 2

画面右側のプロジェクト リストで [Project1] をクリックし、プロジェクト リストの下に表示される [プロパティ] ボックスの [名前] 行に新しい名前を入力して、プロジェクトとフォームの名前を変更します。デフォルト。 「Enter」を押して新しい名前を受け入れます。フォーム (推奨されるフォーム名は「CalculatorUI」) にも同じことを行い、「Caption」プロパティにも同様の名前を入力してください。これにより、フォームの上部バーのテキストが変更されます。プロジェクトをコンピューターの新しいフォルダーに保存します。

ステップ 3

ボタンとテキスト ボックスをフォームに追加します。まず、電卓に入力された数値と計算結果が表示されるテキスト ボックスを追加します。これを行うには、画面の左側にあるツールバーから TextBox ボタンを選択し、TextBox に必要なサイズと位置にマウスでドラッグします。 TextBox を配置したら、フォームの別の場所にドラッグするか、TextBox の境界に沿ってハンドル (小さな四角形) をドラッグして、サイズと位置を変更できます。 [プロパティ] ウィンドウで、TextBox を選択した状態で次の行を変更してください:"(Name)" =tbResult, "Alignment" =1- Right Justify, "Data Format" =([...] ボタンをクリックしてselect) Number、"Locked" =True、および "Text" =0.

ステップ 4

ツールバーの CommandButton アイコンを選択し、TextBox を作成してボタンを追加したのと同じ方法で最初のボタンを作成します。参考までに、「MC」、「MR」、「MS」、および「M+」ボタンを除外して、標準ビュー ([プログラム]> [アクセサリ]> [電卓]) の Windows 電卓を電卓レイアウトのベースとして使用します。各ボタンで、次のプロパティを変更します (例として「+」ボタンを使用):「(名前)」=btnPlus、「キャプション」=+。残りの電卓ボタンについても同じことを行い、作業を保存します。フォームは、ここに示す例のようになります。

ステップ 5

コードを追加します。ボタンとテキストボックスの名前がここにリストされているコードと同じでない場合は、ボタンとテキストボックスに一致するように名前を変更するか、このコードに一致するようにボタンとテキストボックスを変更する必要があることに注意してください。最初に、電卓の入力を処理するための変数をいくつか作成する必要があります:

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) の 4 つの部分で構成されます。ユーザーが左の数字を入力しているか右の数字を入力しているかを追跡するには、ブール変数 bLeft を作成する必要があります。 bLeft が true の場合、計算の左側が入力されています。 bLeft が false の場合、右側が入力されています。

ステップ 6

bLeft 変数を初期化します。 Form_Load サブルーチンを作成することでこれを行います。このサブルーチンは、ここにリストされているように入力するか、ボタンまたはテキスト ボックスで覆われていないフォームの任意の部分をダブルクリックして自動的に作成できます。入力された最初の数値が左部分になるため、関数内で bLeft を True に設定する必要があります。

Private Sub Form_Load() bLeft =True End Sub

ステップ 7

数字ボタンのクリックを処理するサブルーチンを作成します。各ボタンに同じコードを使用するため、これをサブルーチンとして作成します。サブルーチンを使用すると、同じコードを 10 回繰り返す必要がなくなります。 Form_Load サブルーチンの End Sub 行の下に次のように入力します:

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

ご覧のとおり、この関数は文字列パラメータ sNumber を受け取ります。これには、ユーザーがクリックした番号が含まれます。 bLeft が true の場合、入力された数値を表す文字列 sLeft にこの数値が追加され、テキスト ボックス tbResult が更新されて新しい数値が表示されます。 bLeft が false の場合、代わりに sRight を使用して同じ操作が実行されます。

最後に、AddNumber サブルーチンを呼び出す番号ごとに Click イベント関数を作成します。これは、各番号ボタンをダブルクリックすることで簡単に実行できます。これにより、サブルーチン構造が作成されます。次に、AddNumber への呼び出しを追加し、引用符で囲まれた番号をボタンに関連付けられた番号に置き換えます。ゼロ ボタンの場合、コードは次のようになります:

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

同様に、1 つのボタンの場合、コードは次のようになります。

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

ステップ 8

演算子を処理します:プラス、マイナス、時間、除算。最後のステップと同様に、オペレータ ボタンの Click イベントで呼び出されるサブルーチンを作成します。サブルーチンは次のようになります:

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

bLeft が true の場合、つまりユーザーが計算の左側の部分を入力したことを意味し、このサブルーチンは、手順 5 で作成した sOperator 変数を、入力した演算子と等しくなるように設定します。これは、文字列 sNewOperator として AddOperator に渡されます。 2 番目のステップは、bLeft を False に設定することです。これは、演算子の入力は、ユーザーが方程式の左辺の入力を完了したことを意味するためです。 9 * 3 * 2 * 6 など、複数の演算子を組み合わせたエントリを処理するには、bLeft が false であるかどうかも確認する必要があります。これは、等しいと予想される場所にユーザーが演算子を入力したことを意味します。最初に等号ボタンの Click イベントを呼び出します (次の手順で説明します)。これにより、計算が行われ、既に入力されている結果が tbResult に設定されます。次に、sRight をクリアして、ユーザーが次の数値を入力できるようにし、bLeft を False に設定して、次に計算の右辺を入力していることをプログラムが認識できるようにします。

最後に、番号ボタンの Click イベントを作成するために手順 7 で使用したのと同じメソッドを使用して、各演算子ボタンの Click イベントに AddOperator 呼び出しを追加します。プラス ボタンのコードは次のようになります:

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

同様に、マイナス ボタンのコードは次のようになります。

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

ステップ 9

等号ボタンの Click イベントを作成します。これは、このプログラムで最も複雑なコードです。フォームの equals ボタンをダブルクリックして、他のボタンの場合と同様にサブルーチン構造を作成します。コードを入力すると、サブルーチンは次のようになります:

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

終了サブ

コードの最初の 3 行は、計算の両側が演算子と共に入力されているかどうかを確認します。左辺と演算子のみが入力された場合、左辺の値が右辺にコピーされるため、9 * =のようなエントリを処理するための標準的な電卓の動作を模倣できます。 81. コードの残りの部分は、左、右、および演算子が入力された場合にのみ実行され、実際の計算を実行できる iLeft および iRight の Double 型の変数に数値の文字列をコピーすることから始めます。 Select Case ステートメントを使用すると、入力した演算子に応じて異なるコードを実行し、実際の計算を実行して、結果を iResult に配置できます。最後に、テキスト ボックスを結果で更新し、結果を sLeft にコピーし、sRight をリセットして、bLeft =True に設定します。これらの最後の行により、計算結果を取得し、それを使用して別の計算を実行できます。

ステップ 10

最後の 3 つの操作ボタン (sqrt、%、および 1/x) を処理します。平方根ボタンのクリック イベントの場合、コードは次のようになります。

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

終了サブ

コードの最初の 11 行は、方程式のどちらの側にも値が入力されていない場合に、エラーを生成する空の文字列を iLeft または iRight にコピーしようとする代わりに、ゼロを代用することを確認します。中央の行は、計算の現在の部分 (左または右) に対して平方根関数を実行します。最後に、最初に行ったチェックを逆にして、ゼロが空の文字列として sLeft と sRight にコピーされるようにします。

パーセント ボタンのコードは似ていますが、1 つの例外があります。パーセント操作は、左側と右側の両方が入力された場合にのみ実行できます。

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

終了サブ

最後に、上記のコードと非常によく似た 1/x または分数のクリック イベント:

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

終了サブ

ステップ 11

C ボタンと CE ボタンを処理するコードを追加します。 C は計算機へのすべての入力をクリアしますが、CE は現在入力されている数値のみをクリアします。

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

ステップ 12

電卓プログラムを実行し、必要な計算を行います。この電卓は、簡単に拡張して、より多くの操作、より複雑な計算を処理したり、少し余分な作業を加えて関数電卓にすることもできます。

ヒント

エラーが発生した場合は、コードを 1 行ずつチェックし、VB がエラーを含んでいると指摘した行に注目し、上記のコードと比較します。この記事に含まれるコードは完全にテストされ、エラーがないことが確認されているため、忠実にコピーすると機能するプログラムになります。以前のバージョンの Visual Basic を使用している場合、バージョン間で言語が変更されているという問題が発生することがあります。たとえば、以前のバージョンの VB では、Math.Sqr() の代わりに Math.Sqrt() を使用して平方根演算を実行していました。特定のバージョンのリファレンスをチェックして、変更が必要かどうかを確認してください。