. 课程设计说明书正文
一、题目:计算器的创作和相应程序的编写
二、本题的主要功能:通过计算器的创作熟悉各控件的属性和练习程序的编写。 三、程序截图:
四、源程序清单: Begin VB.Form Form1
Caption = \计算器\ ClientHeight = 3765 ClientLeft = 165 ClientTop = 855 ClientWidth = 5355
Icon = \ LinkTopic = \ LockControls = -1 'True ScaleHeight = 3765 ScaleWidth = 5355 StartUpPosition = 3 '窗口缺省 Begin VB.CommandButton Command4 Caption = \ Height = 495 Left = 4470 TabIndex = 28 Top = 3060
0 / 14
. Width = 735 End
Begin VB.CommandButton Command3 Caption = \ Height = 495 Left = 4470 TabIndex = 27 Top = 2520 Width = 735 End
Begin VB.CommandButton Command2 Caption = \ Height = 495 Left = 4470 TabIndex = 26 Top = 1980 Width = 735 End
Begin VB.CommandButton Command1 Caption = \ Height = 495 Left = 4470 TabIndex = 25 Top = 1440 Width = 735 End
Begin VB.CommandButton cmbDOT Caption = \ Height = 495 Left = 2910 TabIndex = 24 Top = 3060 Width = 735 End
1 / 14
. Begin VB.CommandButton cmbZF Caption = \ Height = 495 Left = 2130 TabIndex = 23 Top = 3060 Width = 735 End
Begin VB.CommandButton cmbSign Caption = \ Height = 495 Index = 3 Left = 3690 TabIndex = 22 Top = 3060 Width = 735 End
Begin VB.CommandButton cmbSign Caption = \ Height = 495 Index = 2 Left = 3690 TabIndex = 21 Top = 2520 Width = 735 End
Begin VB.CommandButton cmbSign Caption = \ Height = 495 Index = 1 Left = 3690 TabIndex = 20 Top = 1980 Width = 735
2 / 14
. End
Begin VB.CommandButton cmbSign Caption = \ Height = 495 Index = 0 Left = 3690 TabIndex = 19 Top = 1440 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 9 Left = 2910 TabIndex = 18 Top = 1440 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 8 Left = 2130 TabIndex = 17 Top = 1440 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 7 Left = 1350 TabIndex = 16
3 / 14
. Top = 1440 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 6 Left = 2910 TabIndex = 15 Top = 1980 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 5 Left = 2130 TabIndex = 14 Top = 1980 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 4 Left = 1350 TabIndex = 13 Top = 1980 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 3
4 / 14
. Left = 2910 TabIndex = 12 Top = 2520 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 2 Left = 2130 TabIndex = 11 Top = 2520 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 1 Left = 1350 TabIndex = 10 Top = 2520 Width = 735 End
Begin VB.CommandButton cmbNUM Caption = \ Height = 495 Index = 0 Left = 1350 TabIndex = 9 Top = 3060 Width = 735 End
Begin VB.CommandButton cmbMa Caption = \
5 / 14
. Height = 495 Left = 150 TabIndex = 8 Top = 3060 Width = 975 End
Begin VB.CommandButton cmbMS Caption = \ Height = 495 Left = 150 TabIndex = 7 Top = 2520 Width = 975 End
Begin VB.CommandButton cmbMR Caption = \ Height = 495 Left = 150 TabIndex = 6 Top = 1980 Width = 975 End
Begin VB.CommandButton cmbMC Caption = \ Height = 495 Left = 150 TabIndex = 5 Top = 1440 Width = 975 End
Begin VB.CommandButton cmbC Caption = \ Height = 495 Left = 4020
6 / 14
. TabIndex = 4 Top = 690 Width = 1155 End
Begin VB.CommandButton cmbCE Caption = \ Height = 495 Left = 2670 TabIndex = 3 Top = 690 Width = 1155 End
Begin VB.CommandButton cmbbackspace Caption = \ 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 = \ Top = 120 Width = 4935 End
Begin VB.Label Label2
Alignment = 2 'Center Height = 255 Left = 360 TabIndex = 29
7 / 14
. Top = 840 Width = 375 End
Begin VB.Label 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 = \Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False
8 / 14
. Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit
Private Declare Function ShowCursor Lib \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 \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) = \
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) = \ dotflag = False End If
If Len(Text1.Text) = 1 Then Text1.Text = \End If
End Sub 单击Backspace时删除文本框内最后一个字符
9 / 14
. Private Sub cmbC_Click() dotflag = False Text1.Text = \first = 0 second = 0
End Sub 使文本框变成初始状态“0.” Private Sub cmbCE_Click() Text1.Text = \
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 = \
End Sub 保存到内存中 Private Sub cmbNUM_Click(Index As Integer) '判断是否按过等号键“=\ If isEqual = True Then Text1.Text = \ isEqual = False
10 / 14
. 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 = \End Sub
Private Sub cmbZF_Click()
If Left(Trim(Text1.Text), 1) = \ Text1.Text = Mid(Text1.Text, 2) Else
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) = \ isDot = True Exit For End If Next i
If isDot = False Then
11 / 14
. 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
12 / 14
. 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) = \ isDot = True Exit For End If Next i
If isDot = False Then
Text1.Text = Text1.Text + \ End If
If Left(Text1.Text, 1) = \ Text1.Text = Mid(Text1.Text, 2) End If
If Left(Trim(Text1.Text), 1) = \ Text1.Text = \End If
If Left(Trim(Text1.Text), 2) = \
Text1.Text = \End If End Sub
五、程序调试结果及程序改进意见 1)如何判断小数点是否按下?
当小数点没有按下是,文本框的内容最后一个字符是:“.”,当小数点按下时,文本框内容最后一个字符是输入的内容。 2)如何对按钮添加彩色图形?
在画图板上做出所需要彩色图形的图片,再把图片应用到控件按钮上。 3)如何判断除数不能为0,当除数为0时如何操作?
当除数为0时,单击等于运算时会显示除数不能为0,当除数为0时改变文本框的内容使除数不为0.
13 / 14