VB.net2008编写计算器应用程序
Visual Studio2008发布后,有大量的VB.net爱好者抛弃原来的Visual Studio2005平台转向现在流行的Visual Studio2008平台。但是Visual Studio2008有一个缺点就是需要比较高的硬件配置才能正常平稳的运行,所以到现在为止还有一部分人处于观望中,并没有转向这个平台。然而Visual Studio2008的一些新的功能以及优化性比先前版本有了很大的进步。本篇文章将主要介绍怎样利用VB.net去编写一个计算器程序,程序虽然不复杂,但是其中所运用的知识和代码非常具有代表性,在平时开发中也是经常需要用到的。希望对VB.net2008的初学者带来帮助。
打开 Visual Studio 2008。在文件 (File) 菜单上,单击新建项目 (New Project)。 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序(Windows Application)。单击确定 (OK)。
在Form1窗体中添加一个TextBox1控件和19个Button按钮,详细属性设置请查看以下的表格。
TextBox1
数据显示框
Button1
0
Button2
.
Button3
归零
Button4
无
Button5
=
Button6
1
Button7
2
Button8
3
Button9
+
Button10
-
Button11
4
Button12
5
Button13
6
Button14
*
Button15
/
Button16
7
Button17
8
Button18
9
Button19
ON
Button20
OFF
详细的界面请查看图1
图1
图2
好了基本的界面已经设计好了,接下来我们来添加相应的代码了,首先进行必要的声明事件。
Public Class Form1
Dim strdx() As String = {"0", "0", "0"} '声明一个字符串,用以存取数值
Dim calcount1 As String = "0"
Dim calcount2 As String = "0"
Dim strvalue As Boolean = False
然后需要进入Button1.Click事件中.代码如下
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If strdx(0) = "0" Then
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "0"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "0"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button2.Click事件中.代码如下
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
strvalue = True
strdx(0) = strdx(0) & "."
TextBox1.Text = strdx(0)
End Sub
进入Button3.Click事件中.代码如下
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
strdx(0) = "0"
strdx(1) = "0"
strdx(2) = "0"
calcount1 = "0"
calcount2 = "0"
strvalue = False
TextBox1.Text = "0."
End Sub
进入Button5.Click事件中.代码如下
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
If strdx(2) = "0" Then
Select Case calcount1
Case "+"
TextBox1.Text = Str(Val(strdx(1)) + Val(strdx(0)))
Case "-"
TextBox1.Text = Str(Val(strdx(1)) - Val(strdx(0)))
Case "*"
TextBox1.Text = Str(Val(strdx(1)) * Val(strdx(0)))
Case "/"
If strdx(0) = "0" Then
TextBox1.Text = "error!"
Else
TextBox1.Text = Str(Val(strdx(1)) / Val(strdx(0)))
End If
End Select
ElseIf calcount2 = "*" Then
strdx(0) = Str(Val(strdx(0)) * Val(strdx(2)))
Select Case calcount1
Case "+"
TextBox1.Text = Str(Val(strdx(1)) + Val(strdx(0)))
Case "-"
TextBox1.Text = Str(Val(strdx(1)) - Val(strdx(0)))
Case "*"
TextBox1.Text = Str(Val(strdx(1)) * Val(strdx(0)))
Case "/"
If strdx(0) = "0" Then
TextBox1.Text = "error!"
Else
TextBox1.Text = Str(Val(strdx(1)) / Val(strdx(0)))
End If
End Select
Else : calcount2 = "/"
strdx(0) = Str(Val(strdx(2)) / Val(strdx(0)))
Select Case calcount1
Case "+"
TextBox1.Text = Str(Val(strdx(1)) + Val(strdx(0)))
Case "-"
TextBox1.Text = Str(Val(strdx(1)) - Val(strdx(0)))
Case "*"
TextBox1.Text = Str(Val(strdx(1)) * Val(strdx(0)))
Case "/"
If strdx(0) = "0" Then
TextBox1.Text = "error!"
Else
TextBox1.Text = Str(Val(strdx(1)) / Val(strdx(0)))
End If
End Select
End If
End Sub
进入Button6.Click事件中.代码如下
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
If strdx(0) = "0" Then
strdx(0) = "1"
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "1"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "1"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button7.Click事件中.代码如下
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
If strdx(0) = "0" Then
strdx(0) = "2"
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "2"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "2"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button8.Click事件中.代码如下
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
If strdx(0) = "0" Then
strdx(0) = "3"
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "3"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "3"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button9.Click事件中.代码如下
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
If calcount1 = "0" Then
calcount1 = "+"
strdx(1) = strdx(0)
strdx(0) = "0"
Else : Select Case calcount1
Case "+"
strdx(1) = Str(Val(strdx(0)) + Val(strdx(1)))
strdx(0) = "0"
calcount1 = "+"
Case "-"
strdx(1) = Str(Val(strdx(1)) - Val(strdx(0)))
strdx(0) = "0"
calcount1 = "+"
Case "*"
strdx(1) = Str(Val(strdx(0)) * Val(strdx(1)))
strdx(0) = "0"
calcount1 = "+"
Case "/"
strdx(1) = Str(Val(strdx(1)) / Val(strdx(0)))
strdx(0) = "0"
calcount1 = "+"
End Select
End If
End Sub
进入Button10.Click事件中.代码如下
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
If calcount1 = "0" Then
calcount1 = "-"
strdx(1) = strdx(0)
strdx(0) = "0"
Else : Select Case calcount1
Case "+"
strdx(1) = Str(Val(strdx(0)) + Val(strdx(1)))
strdx(0) = "0"
calcount1 = "-"
Case "-"
strdx(1) = Str(Val(strdx(1)) - Val(strdx(0)))
strdx(0) = "0"
calcount1 = "-"
Case "*"
strdx(1) = Str(Val(strdx(0)) * Val(strdx(1)))
strdx(0) = "0"
calcount1 = "-"
Case "/"
strdx(1) = Str(Val(strdx(1)) / Val(strdx(0)))
strdx(0) = "0"
calcount1 = "-"
End Select
End If
End Sub
进入Button11.Click事件中.代码如下
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
If strdx(0) = "0" Then
strdx(0) = "4"
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "4"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "4"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button12.Click事件中.代码如下
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
If strdx(0) = "0" Then
strdx(0) = "5"
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "5"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "5"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button13.Click事件中.代码如下
Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
If strdx(0) = "0" Then
strdx(0) = "6"
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "6"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "6"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button14.Click事件中.代码如下
Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
If calcount1 = "0" Then
calcount1 = "*"
strdx(1) = strdx(0)
strdx(0) = "0"
Else : Select Case calcount1
Case "+"
calcount2 = "*"
strdx(2) = strdx(0)
strdx(0) = "0"
Case "-"
calcount2 = "*"
strdx(2) = strdx(0)
strdx(0) = "0"
Case "*"
strdx(1) = Str(Val(strdx(0)) * Val(strdx(1)))
strdx(0) = "0"
calcount1 = "*"
Case "/"
strdx(1) = Str(Val(strdx(1)) / Val(strdx(0)))
strdx(0) = "0"
calcount1 = "*"
End Select
End If
End Sub
进入Button15.Click事件中.代码如下
Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
If calcount1 = "0" Then
calcount1 = "/"
strdx(1) = strdx(0)
strdx(0) = "0"
Else : Select Case calcount1
Case "+"
calcount2 = "/"
strdx(2) = strdx(0)
strdx(0) = "0"
Case "-"
calcount2 = "/"
strdx(2) = strdx(0)
strdx(0) = "0"
Case "*"
strdx(1) = Str(Val(strdx(0)) * Val(strdx(1)))
strdx(0) = "0"
calcount1 = "/"
Case "/"
strdx(1) = Str(Val(strdx(1)) / Val(strdx(0)))
strdx(0) = "0"
calcount1 = "/"
End Select
End If
End Sub
进入Button16.Click事件中.代码如下
Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
If strdx(0) = "0" Then
strdx(0) = "7"
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "7"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "7"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button17.Click事件中.代码如下
Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
If strdx(0) = "0" Then
strdx(0) = "8"
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "8"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "8"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button18.Click事件中.代码如下
Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
If strdx(0) = "0" Then
strdx(0) = "9"
TextBox1.Text = strdx(0) & "."
ElseIf strvalue = False Then
strdx(0) = strdx(0) & "9"
TextBox1.Text = strdx(0) & "."
Else
strdx(0) = strdx(0) & "9"
TextBox1.Text = strdx(0)
End If
End Sub
进入Button19.Click事件中.代码如下
Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click
TextBox1.Text = "0."
End Sub
进入Button20.Click事件中.代码如下
Private Sub Button20_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button20.Click
Me.Close()
End Sub
最后的代码如图2:
程序代码输入完成,接下来我们来运行一下程序,进行测试。最后程序运行效果如图3
图3
程序运行稳定能够进行正常的加减乘除等,如果你觉得功能不够,你还可以再去添加一些新的功能。