VB6.0的小程序计算器

发布时间:2020-10-06 23:45:37   来源:文档文库   
字号:

的小程序 计算器

对于刚入门学习VB6的朋友来说肯定会做些小程序吧,这里就是给大家演示个简单的计算器程序,仅供参考啦。

界面上加减乘除四个按钮分别是cmdAddcmdPluscmdMultiplecmdDevide,小数点按钮是cmdDot,负号按钮是cmdMinuse,数字0~9为了偷懒,用了控件数组cmdNumber(0)~ cmdNumber(9),上面txtShow显示数字和结果用的,txtOperate是显示中间步骤的。

思路大致是这样,点加减乘除这类操作符的时候,把当前txtShow的值保存在模块变量mstrParam1里,同时把操作符保存到mstrOperate里,按等于号时把先把当前txtShow的值保存在模块变量mstrParam2里,然后对mstrParam1mstrParam2进行运算,当然要记得设法把String转换成数值进行运算。

转换的过程要注意,这里是用的Variant数据类型,vParam1vParam2都是Variant类型,保存的是mstrParam1mstrParam2的数值。之所以不用integer、long、double这些标准类型,是因为这些类型都有大小限制,做出来用着不方便,VB最大的整型long才到 47,这意味着计算器的计算结果只能限制在9位到10位。而Variant类型可以支持非常大的数,具体多大不清楚,但起码几十位是能够支持的。另外,最后算完的结果也要做格式化,因为如果数值非常大的话,VB会自动转成科学计数法,所以要用Format函数进行调整。

如果需要源代码的话在我百度空间里留言。 Explicit

Private Const mstrFORMATDEFAULT As String = "#.##"

Private mstrParam1 As String, mstrParam2 As String

Private mstrOperate As String

Private Sub cmdAdd_Click()

mstrParam1 = Trim

mstrOperate = "+"

= ""

= & mstrParam1 & vbCrLf

= & mstrOperate & vbCrLf

End Sub

Private Sub cmdPlus_Click()

mstrParam1 = Trim

mstrOperate = "-"

= ""

= & mstrParam1 & vbCrLf

= & mstrOperate & vbCrLf

End Sub

Private Sub cmdMultiple_Click()

mstrParam1 = Trim

mstrOperate = "*"

= ""

= & mstrParam1 & vbCrLf

= & mstrOperate & vbCrLf

End Sub

Private Sub cmdDevide_Click()

mstrParam1 = Trim

mstrOperate = "/"

= ""

= & mstrParam1 & vbCrLf

= & mstrOperate & vbCrLf

End Sub

Private Sub cmdDot_Click()

Dim mstrShow As String

Dim i As Integer

mstrShow = "."

i = InStr(1, , mstrShow)

If i <= 0 Then

= & mstrShow

End If

End Sub

Private Sub cmdMinuse_Click()

Dim mstrShow As String

Dim i As Integer

mstrShow = "-"

i = InStr(1, , mstrShow)

If i <= 0 Then

= mstrShow &

Else

= Right, Len - 1)

End If

End Sub

Private Sub cmdNumber_Click(Index As Integer)

Dim mstrShow As String

mstrShow = Index

= & mstrShow

End Sub

Private Sub cmdClear_Click()

= ""

End Sub

Private Sub cmdResult_Click()

Dim vParam1 As Variant, vParam2 As Variant

Dim vResult As Variant

Dim strResult As String

Dim i As Long

Dim blnBeforeDot As Boolean

Dim lngDotPos As Long

Dim blnMinuse As Boolean

mstrParam2 = Trim

= & mstrParam2 & vbCrLf

vParam1 = 0

blnBeforeDot = True

lngDotPos = -1

blnMinuse = False

For i = 1 To Len(mstrParam1)

If IsNumeric(Mid(mstrParam1, i, 1)) = True Then

If blnBeforeDot = True Then

vParam1 = vParam1 * 10 + CByte(Mid(mstrParam1, i, 1))

Else

vParam1 = vParam1 + CByte(Mid(mstrParam1, i, 1)) * ^ (i - lngDotPos))

End If

ElseIf Mid(mstrParam1, i, 1) = "." Then

blnBeforeDot = False

lngDotPos = i

ElseIf Mid(mstrParam1, i, 1) = "-" Then

blnMinuse = True

End If

Next i

If blnMinuse = True Then

vParam1 = -vParam1

End If

vParam2 = 0

blnBeforeDot = True

lngDotPos = -1

blnMinuse = False

For i = 1 To Len(mstrParam2)

If IsNumeric(Mid(mstrParam2, i, 1)) = True Then

If blnBeforeDot = True Then

vParam2 = vParam2 * 10 + CByte(Mid(mstrParam2, i, 1))

Else

vParam2 = vParam2 + CByte(Mid(mstrParam2, i, 1)) * ^ (i - lngDotPos))

End If

ElseIf Mid(mstrParam2, i, 1) = "." Then

blnBeforeDot = False

lngDotPos = i

ElseIf Mid(mstrParam2, i, 1) = "-" Then

blnMinuse = True

End If

Next i

If blnMinuse = True Then

vParam2 = -vParam2

End If

Select Case mstrOperate

Case "+"

vResult = vParam1 + vParam2

Case "-"

vResult = vParam1 - vParam2

Case "*"

vResult = vParam1 * vParam2

Case "/"

vResult = vParam1 / vParam2

End Select

= & "=" & vbCrLf

strResult = Format(vResult, mstrFORMATDEFAULT)

= strResult

= & strResult & vbCrLf

End Sub

Private Sub Form_Load()

= ""

= ""

End Sub

精心搜集整理,只为你的需要

本文来源:https://www.2haoxitong.net/k/doc/cea6aeedfbd6195f312b3169a45177232e60e413.html

《VB6.0的小程序计算器.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式