VB简单计算器编程代码(附图)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书正文
一、题目:计算器的创作和相应程序的编写
二、本题的主要功能:通过计算器的创作熟悉各控件的属性和练习程序的编写。
三、程序截图:
四、源程序清单:
Begin VB.Form Form1
Caption = "计算器"
ClientHeight = 3765
ClientLeft = 165
ClientTop = 855
ClientWidth = 5355
Icon = "Form1.frx":0000
LinkTopic = "Form1"
LockControls = -1 'True
ScaleHeight = 3765
ScaleWidth = 5355
StartUpPosition = 3 '窗口缺省
Begin mandButton Command4
Caption = "="
Height = 495
Left = 4470
TabIndex = 28
Top = 3060
Width = 735
End
Begin mandButton Command3 Caption = "1/x"
Height = 495
Left = 4470
TabIndex = 27
Top = 2520
Width = 735
End
Begin mandButton Command2 Caption = "%"
Height = 495
Left = 4470
TabIndex = 26
Top = 1980
Width = 735
End
Begin mandButton Command1 Caption = "sqrt"
Height = 495
Left = 4470
TabIndex = 25
Top = 1440
Width = 735
End
Begin mandButton cmbDOT Caption = "."
Height = 495
Left = 2910
TabIndex = 24
Top = 3060
Width = 735
End
Begin mandButton cmbZF Caption = "+/-"
Height = 495
Left = 2130
TabIndex = 23
Top = 3060
Width = 735 End
Begin mandButton cmbSign Caption = "+"
Height = 495
Index = 3
Left = 3690
TabIndex = 22
Top = 3060
Width = 735 End
Begin mandButton cmbSign Caption = "-"
Height = 495
Index = 2
Left = 3690
TabIndex = 21
Top = 2520
Width = 735 End
Begin mandButton cmbSign Caption = "*"
Height = 495
Index = 1
Left = 3690
TabIndex = 20
Top = 1980
Width = 735
End
Begin mandButton cmbSign Caption = "/"
Height = 495
Index = 0
Left = 3690
TabIndex = 19
Top = 1440
Width = 735
End
Begin mandButton cmbNUM Caption = "9"
Height = 495
Index = 9
Left = 2910
TabIndex = 18
Top = 1440
Width = 735
End
Begin mandButton cmbNUM Caption = "8"
Height = 495
Index = 8
Left = 2130
TabIndex = 17
Top = 1440
Width = 735
End
Begin mandButton cmbNUM Caption = "7"
Height = 495
Index = 7
Left = 1350
TabIndex = 16
Width = 735
End
Begin mandButton cmbNUM Caption = "6"
Height = 495
Index = 6
Left = 2910
TabIndex = 15
Top = 1980
Width = 735
End
Begin mandButton cmbNUM Caption = "5"
Height = 495
Index = 5
Left = 2130
TabIndex = 14
Top = 1980
Width = 735
End
Begin mandButton cmbNUM Caption = "4"
Height = 495
Index = 4
Left = 1350
TabIndex = 13
Top = 1980
Width = 735
End
Begin mandButton cmbNUM Caption = "3"
Height = 495
Index = 3
TabIndex = 12
Top = 2520
Width = 735
End
Begin mandButton cmbNUM Caption = "2"
Height = 495
Index = 2
Left = 2130
TabIndex = 11
Top = 2520
Width = 735
End
Begin mandButton cmbNUM Caption = "1"
Height = 495
Index = 1
Left = 1350
TabIndex = 10
Top = 2520
Width = 735
End
Begin mandButton cmbNUM Caption = "0"
Height = 495
Index = 0
Left = 1350
TabIndex = 9
Top = 3060
Width = 735
End
Begin mandButton cmbMa Caption = "M+"
Left = 150
TabIndex = 8
Top = 3060
Width = 975 End
Begin mandButton cmbMS Caption = "MS"
Height = 495
Left = 150
TabIndex = 7
Top = 2520
Width = 975 End
Begin mandButton cmbMR Caption = "MR"
Height = 495
Left = 150
TabIndex = 6
Top = 1980
Width = 975 End
Begin mandButton cmbMC Caption = "MC"
Height = 495
Left = 150
TabIndex = 5
Top = 1440
Width = 975 End
Begin mandButton cmbC Caption = "C"
Height = 495
Left = 4020
Top = 690
Width = 1155
End
Begin mandButton cmbCE
Caption = "CE"
Height = 495
Left = 2670
TabIndex = 3
Top = 690
Width = 1155
End
Begin mandButton cmbbackspace Caption = "Backspace"
Height = 495
Left = 1380
TabIndex = 2
Top = 690
Width = 1155
End
Begin VB.TextBox Text1
Alignment = 1 'Right Justify Height = 375
Left = 210
TabIndex = 0
Text = "0."
Top = 120
Width = 4935
End
Begin bel Label2
Alignment = 2 'Center
Height = 255
Left = 360
TabIndex = 29
Top = 840
Width = 375
End
Begin bel Label1
Alignment = 2 'Center
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "宋体"
Size = 14.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False EndProperty
Height = 495
Left = 240
TabIndex = 1
Top = 690
Width = 615
End
Begin VB.Menu edit
Caption = "编辑(&E)"
End
Begin VB.Menu look
Caption = "查看(&V)"
End
Begin VB.Menu help
Caption = "帮助(&H)"
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long Dim dotflag As Boolean
Dim fuhao As String
Dim first As Double
Dim second As Double
Dim isEqual As Boolean
Dim memory As Double '保存显示的数据
Dim lianyong As Double '当连续按等号时使用该变量
Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long Dim dotflag As Boolean
Dim fuhao As String
Dim first As Double
Dim second As Double
Dim isEqual As Boolean
Dim memory As Double '保存显示的数据
Dim lianyong As Double '当连续按等号时使用该变量
Private Sub cmbDesign_Click(Index As Integer)
End Sub
Private Sub cmbbackspace_Click()
If Right(Trim(Text1.Text), 1) = "." Then
Text1.Text = Mid(Text1.Text, 1, Len(Text1.Text) - 2) & "."
Else
Text1.Text = Mid(Text1.Text, 1, Len(Text1.Text) - 1)
End If
If Right(Text1.Text, 1) = "." Then
dotflag = False
End If
If Len(Text1.Text) = 1 Then
Text1.Text = "0."
End If
End Sub 单击Backspace时删除文本框内最后一个字符
Private Sub cmbC_Click()
dotflag = False
Text1.Text = "0."
first = 0
second = 0
End Sub 使文本框变成初始状态“0.”
Private Sub cmbCE_Click()
Text1.Text = "0."
End Sub 删除文本框内的所有内容,使文本框变成初始状态“0.”Private Sub cmbDOT_Click()
'标示点击了点“。
”
dotflag = True
End Sub 点的点击,
Private Sub cmbMa_Click()
Text1.Text = Str(Val(Text1.Text) + memory)
formatText
End Sub 记忆运算数值
Private Sub cmbMC_Click()
memory = 0
Label2.Caption = ""
End Sub 清除存储器内容.
Private Sub cmbMR_Click()
Text1.Text = Str(memory)
formatText
End Sub 调用存储器内容
Private Sub cmbMS_Click()
memory = Val(Text1.Text) '保存到内存中
Label2.Caption = "M"
End Sub 保存到内存中
Private Sub cmbNUM_Click(Index As Integer)
'判断是否按过等号键“="
If isEqual = True Then
Text1.Text = "0."
isEqual = False
End If
'判断是否点击过“点”按扭,如果未点击过在点前添加,否则在点后添加If dotflag = False Then
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1) & Index & "."
Else
Text1.Text = Text1.Text & Index
End If
formatText
End Sub
Private Sub cmbSign_Click(Index As Integer)
'恢复未点击点“。
”的状态
dotflag = False
isEqual = False '恢复等号在本次运算中未单击过状态
first = Text1.Text
fuhao = cmbSign(Index).Caption
Text1.Text = "0."
End Sub
Private Sub cmbZF_Click()
If Left(Trim(Text1.Text), 1) = "-" Then
Text1.Text = Mid(Text1.Text, 2)
Else
Text1.Text = "-" & Trim(Text1.Text)
End If
End Sub 对文本框进行取负运算
Private Sub Command1_Click()
Dim isDot As Boolean
Dim i As Integer
For i = 1 To Len(Trim(Text1.Text))
If Mid(Trim(Str(Sqr(Val(Text1.Text)))), i, 1) = "." Then
isDot = True
Exit For
End If
Next i
If isDot = False Then
Text1.Text = Str(Sqr(Val(Text1.Text))) & "."
Else
Text1.Text = Str(Sqr(Val(Text1.Text)))
End If
End Sub 对文本框的内容进行开方运算
Private Sub Command4_Click()
second = Val(Text1.Text)
If isEqual = False Then
lianyong = Val(Text1.Text)
Else
first = second
End If
Text1.Text = Str(compute(first, lianyong, fuhao))
formatText
isEqual = True
End Sub 等号的运算,并结束此次运算
Private Sub Form_Load()
dotflag = False
isEqual = False
lianyong = 0
End Sub 判断等号是否连用
Public Function compute(f As Double, s As Double, fuhao As String) As Double Select Case fuhao
Case "+"
compute = f + s
Case "-"
compute = f - s
Case "*"
compute = f * s
Case "/"
compute = f / s
Case Else
MsgBox "不明白"
End Select
End Function 对文本框的内容进行加、减、乘、除的运算Public Sub formatText()
Dim i As Integer
Dim isDot As Boolean
isDot = False
For i = 1 To Len(Text1.Text)
If Mid(Trim(Text1.Text), i, 1) = "." Then
isDot = True
Exit For
End If
Next i
If isDot = False Then
Text1.Text = Text1.Text + "."
End If
If Left(Text1.Text, 1) = "0" Then
Text1.Text = Mid(Text1.Text, 2)
End If
If Left(Trim(Text1.Text), 1) = "." Then
Text1.Text = "0" & Trim(Text1.Text)
End If
If Left(Trim(Text1.Text), 2) = "-." Then
Text1.Text = "-0" & Mid(Trim(Text1.Text), 2)
End If
End Sub
五、程序调试结果及程序改进意见
1)如何判断小数点是否按下?
当小数点没有按下是,文本框的内容最后一个字符是:“.”,当小数点按下时,文本框内容最后一个字符是输入的内容。
2)如何对按钮添加彩色图形?
在画图板上做出所需要彩色图形的图片,再把图片应用到控件按钮上。
3)如何判断除数不能为0,当除数为0时如何操作?
当除数为0时,单击等于运算时会显示除数不能为0,当除数为0时改变文本框的内容使除数不为0.。