計算ソフトを作ろう!VB.NET

      2016/04/24


計算ソフトを作ろう。
まずは簡単な計算ソフトを作りましょう。

Visual Studioを起動します。
ファイル→新しいプロジェクトでVBを選択してwindowsフォームアプリケーションを選びましょう。
名前は計算ソフトとしましょう。

まずは仕様を決めましょう!
---------------------------------------------------------------
足し算
引き算
割り算
掛け算
が出来る。
3つテキストボックスがあり
二つのテキストボックスに数値を入力して3つ目に答えが出る。
どの処理をするかはラジオボックスが選択されているものとする。
処理を実行するタイミングはボタンをクリックした時にする。
数字以外やゼロ除算が入力された時はメッセージを出す。
テキストボックス1とテキストボックス2は10桁まで入力できる。
クリアボタンでクリアされる。
----------------------------------------------------------------

とりあえず構成です。
名前を本来はちゃんとつけるですがめんどいのでこれで。
ツールボックスからコントロールを貼り付けた時のname属性です。
これが初期値です。

TextBox1 ’入力用1
TextBox2 ’入力用2
TextBox3 ’合計表示用
GroupBox1 ’ラジオボタンをまとめるために配置
RadioButton1 ’足し算
RadioButton2 ’引き算
RadioButton3 ’掛け算
RadioButton4 ’割り算
Button1 ’実行ボタン
Button2 ’クリアボタン

TextBox1とTextBox2を入力桁数を10桁にしたいのでコントロールを選択してMAXLENGTHを10にしましょう。
数字以外の時はメッセージを出したいのですがタイミングとしては実行ボタンを押した時でいいでしょう。
チェックのサブルーチンを作成します。
最初に未入力チェックをしてます。
次にIsNumeric関数で数値がどうかチェックしてます。
IsNumericはFalseかTrueかを返すんですが空の時は数値ではないのでFalseを返すので未入力チェックを先に書いてます。
if文のElseIfは最初に評価したのが違う時に実行されますのでご注意下さい。
Exit Subでサブルーチンから抜けてます。
無駄に処理しても仕方ないので。
メッセージボックスは””の中に文字列です。
callはサブルーチンを呼び出してます。
---------------------------------------------------------
Private Sub check()
If TextBox1.Text = "" Then
MsgBox("TextBox1を入力してください")
Exit Sub
ElseIf TextBox2.Text = "" Then
MsgBox("TextBox2を入力してください")
Exit Sub
End If

If IsNumeric(TextBox1.Text) = False Then
MsgBox("TextBox1に数字以外が入力されています")
ElseIf IsNumeric(TextBox2.Text) = False Then
MsgBox("TextBox2に数字以外が入力されています")
Else
Call keisan()
End If
End Sub
---------------------------------------------------------
keisanのサブルーチンです。
ラジオボタンがチェックされているか判定してます。
テキストボックスのテキストプロパティは文字列なのでCDecで数字に変換してから計算してからCStrで文字列に直してます。
If TextBox3.Text = "+∞" Thenですがゼロで割り算したら+∞が表示されたのでその場合クリアしてます。
とりあえずこれでいいかなと。
CDecを今回は使いました。あまり桁数ないとオーバーフローします。
---------------------------------------------------------
Private Sub keisan()
If RadioButton1.Checked = True Then
TextBox3.Text = CStr(CDec(TextBox1.Text) + CDec(TextBox2.Text))
ElseIf RadioButton2.Checked = True Then
TextBox3.Text = CStr(CDec(TextBox1.Text) - CDec(TextBox2.Text))
ElseIf RadioButton3.Checked = True Then
TextBox3.Text = CStr(CDec(TextBox1.Text) * CDec(TextBox2.Text))
ElseIf RadioButton4.Checked = True Then

TextBox3.Text = CStr(CDec(TextBox1.Text) / CDec(TextBox2.Text))
If TextBox3.Text = "+∞" Then
TextBox3.Text = ""
MsgBox("0除算です")
End If
Else
MsgBox("ラジオボックスを選択してください")
End If
End Sub
---------------------------------------------------------
クリアボタンをクリックした時
---------------------------------------------------------
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub
---------------------------------------------------------
実行ボタン
チェックを呼び出してます。チェックからは計算を呼び出しますのでこれで終わります。
---------------------------------------------------------
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Call check()
End Sub
---------------------------------------------------------
全体
---------------------------------------------------------
Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Call check()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub
Private Sub check()
If TextBox1.Text = "" Then
MsgBox("TextBox1を入力してください")
Exit Sub
ElseIf TextBox2.Text = "" Then
MsgBox("TextBox2を入力してください")
Exit Sub
End If

If IsNumeric(TextBox1.Text) = False Then
MsgBox("TextBox1に数字以外が入力されています")
ElseIf IsNumeric(TextBox2.Text) = False Then
MsgBox("TextBox2に数字以外が入力されています")
Else
Call keisan()
End If
End Sub

Private Sub keisan()
If RadioButton1.Checked = True Then
TextBox3.Text = CStr(CDec(TextBox1.Text) + CDec(TextBox2.Text))
ElseIf RadioButton2.Checked = True Then
TextBox3.Text = CStr(CDec(TextBox1.Text) - CDec(TextBox2.Text))
ElseIf RadioButton3.Checked = True Then
TextBox3.Text = CStr(CDec(TextBox1.Text) * CDec(TextBox2.Text))
ElseIf RadioButton4.Checked = True Then

TextBox3.Text = CStr(CDec(TextBox1.Text) / CDec(TextBox2.Text))
If TextBox3.Text = "+∞" Then
TextBox3.Text = ""
MsgBox("0除算です")
End If
Else
MsgBox("ラジオボックスを選択してください")
End If
End Sub

End Class
---------------------------------------------------------

PR



 - 実践作成編 , ,

Translate »