还是我,还是哪个vb原程序我重写了一遍,请大家看看,有哪能改的!

earphone 2000-06-19 07:27:00
VERSION 5.00
Begin VB.Form FrmCalculator
BorderStyle = 1 'Fixed Single
Caption = "Calculator"
ClientHeight = 3570
ClientLeft = 45
ClientTop = 330
ClientWidth = 4860
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3570
ScaleWidth = 4860
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton CmdBaskspace
Caption = "Backspace"
Height = 375
Left = 240
TabIndex = 23
Top = 240
Width = 1935
End
Begin VB.TextBox TextError
Appearance = 0 'Flat
Height = 270
Left = 3840
TabIndex = 22
TabStop = 0 'False
Top = 960
Width = 855
End
Begin VB.CommandButton CmdResult
Caption = "="
Height = 375
Left = 3840
TabIndex = 21
Top = 2760
Width = 855
End
Begin VB.CommandButton CmdC
Caption = "C"
Height = 375
Left = 3840
TabIndex = 20
Top = 2160
Width = 855
End
Begin VB.CommandButton CmdCE
Caption = "CE"
Height = 375
Left = 3840
TabIndex = 19
Top = 1560
Width = 855
End
Begin VB.CommandButton CmdOperator
Caption = "+"
Height = 375
Index = 0
Left = 2400
TabIndex = 15
Top = 960
Width = 1215
End
Begin VB.Frame Frame2
Height = 2655
Left = 2280
TabIndex = 14
Top = 720
Width = 1455
Begin VB.CommandButton CmdOperator
Caption = "÷"
Height = 375
Index = 3
Left = 120
TabIndex = 18
Top = 2040
Width = 1215
End
Begin VB.CommandButton CmdOperator
Caption = "×"
Height = 375
Index = 2
Left = 120
TabIndex = 17
Top = 1440
Width = 1215
End
Begin VB.CommandButton CmdOperator
Caption = "-"
Height = 375
Index = 1
Left = 120
TabIndex = 16
Top = 840
Width = 1215
End
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 0
Left = 240
TabIndex = 2
Top = 2760
Width = 495
End
Begin VB.Frame Frame1
ForeColor = &H00000000&
Height = 2655
Left = 120
TabIndex = 1
Top = 720
Width = 2055
Begin VB.CommandButton CmdNumber_key
Caption = "."
Height = 375
Index = 11
Left = 1320
TabIndex = 13
Top = 2040
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "+/-"
Height = 375
Index = 10
Left = 720
TabIndex = 12
Top = 2040
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 9
Left = 1320
TabIndex = 11
Top = 1440
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 8
Left = 720
TabIndex = 10
Top = 1440
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 7
Left = 120
TabIndex = 9
Top = 1440
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 6
Left = 1320
TabIndex = 8
Top = 840
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 5
Left = 720
TabIndex = 7
Top = 840
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 4
Left = 120
TabIndex = 6
Top = 840
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 3
Left = 1320
TabIndex = 5
Top = 240
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 2
Left = 720
TabIndex = 4
Top = 240
Width = 495
End
Begin VB.CommandButton CmdNumber_key
Caption = "Command1"
Height = 375
Index = 1
Left = 120
TabIndex = 3
Top = 240
Width = 495
End
End
Begin VB.TextBox TextResult
Alignment = 1 'Right Justify
Height = 270
Left = 2400
TabIndex = 0
TabStop = 0 'False
Top = 240
Width = 2295
End
End
Attribute VB_Name = "FrmCalculator"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim A, B As Variant
Dim Nember_Expedient, Operator_Expedient As Integer
Dim Expedient_Arithmetic_point As Integer
Dim Operator As Integer
Dim Result As Variant
Dim Judge_key As Integer
Dim Judge_CE As Integer
Dim Expedient_Number_key As Integer

Sub Number_key()
Select Case Expedient_Number_key
Case 49
Nember_Expedient = 1
Number_input
Case 50
Nember_Expedient = 2
Number_input
Case 51
Nember_Expedient = 3
Number_input
Case 52
Nember_Expedient = 4
Number_input
Case 53
Nember_Expedient = 5
Number_input
Case 54
Nember_Expedient = 6
Number_input
Case 55
Nember_Expedient = 7
Number_input
Case 56
Nember_Expedient = 8
Number_input
Case 57
Nember_Expedient = 9
Number_input
Case 48
Nember_Expedient = 0
Number_input
End Select
End Sub

Private Sub CmdBaskspace_Click()
Dim X As String
Dim Y As Integer
Select Case Judge_CE
Case 1
X = Len(A)
A = Val(Left(A, X - 1))
If Y = InStrRev(A, ".") = 0 Then
Expedient_Arithmetic_point = 0
End If
If Y = 0 Then
TextResult.Text = A & "."
Else
TextResult.Text = A
End If
Case 2
X = Len(B)
B = Val(Left(B, X - 1))
Y = InStrRev(B, ".")
If X < Y Then
Expedient_Arithmetic_point = 0
End If
If Y = 0 Then
TextResult.Text = B & "."
Else
TextResult.Text = B
End If
End Select
End Sub

Private Sub CmdC_Click()
A = 0
B = 0
Nember_Expedient = 0
Operator_Expedient = 0
Expedient_Arithmetic_point = 0
Operator = 0
Result = 0
Judge_key = 0
Judge_CE = 0
TextResult.Text = "0."
End Sub

Private Sub CmdCE_Click()
Select Case Judge_CE
Case 1
A = 0
TextResult.Text = "0."
Case 2
B = 0
TextResult.Text = "0."
End Select
End Sub

Private Sub CmdNumber_key_Click(Index As Integer)
Select Case Index
Case 1
Nember_Expedient = 1
Number_input
Case 2
Nember_Expedient = 2
Number_input
Case 3
Nember_Expedient = 3
Number_input
Case 4
Nember_Expedient = 4
Number_input
Case 5
Nember_Expedient = 5
Number_input
Case 6
Nember_Expedient = 6
Number_input
Case 7
Nember_Expedient = 7
Number_input
Case 8
Nember_Expedient = 8
Number_input
Case 9
Nember_Expedient = 9
Number_input
Case 0
Nember_Expedient = 0
Number_input
Case 11
Arithmetic_point
Case 10
Select Case Judge_CE
Case 1
A = -A
If InStrRev(A, ".") = 0 Then
TextResult.Text = A & "."
Else
TextResult.Text = A
End If
Case 2
B = -B
If InStrRev(B, ".") = 0 Then
TextResult.Text = Val(B & ".")
Else
TextResult.Text = Val(B)
End If
End Select
End Select
End Sub

Private Sub CmdOperator_Click(Index As Integer)
Select Case Index
Case 0
Operator_Expedient = 0
Expedient_Operator
Case 1
Operator_Expedient = 1
Expedient_Operator
Case 2
Operator_Expedient = 2
Expedient_Operator
Case 3
Operator_Expedient = 3
Expedient_Operator
End Select
End Sub

Private Sub CmdResult_Click()
Dim I As Variant
Select Case Operator_Expedient
Case 0
Result = A + B
Case 1
Result = A - B
Case 2
Result = A * B
Case 3
Result = A / B
End Select
I = Val(Result)
If InStrRev(".", I) = 0 Then
TextResult.Text = Val(I) & "."
Else
TextResult.Text = Val(I)
End If
B = 0
A = Val(TextResult.Text)
Operator = 0
End Sub

Private Sub textresult_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode >= 48 And KeyCode <= 57 Then
Expedient_Number_key = KeyCode
Number_key
End If
If KeyCode = 8 Or KeyCode = 46 Then
TextResult.Locked = False
End If
TextResult.Locked = True
End Sub

Private Sub Form_Load()
Dim I As Integer
For I = 0 To 9
CmdNumber_key(I).Caption = I
Next I
A = 0
B = 0
TextResult.Text = "0."
TextResult.Locked = True
End Sub

Sub Number_input()
Dim I As Variant
If Operator = 1 Or Judge_key = 1 Then
Judge_CE = 2
I = Str(B)
If Len(I) >= 16 Then
TextError = "Error"
Else
If B <> 0 Then
If Expedient_Arithmetic_point = 1 Then
If InStrRev(I, ".") = 0 Then
B = Val(B & "." & Nember_Expedient)
Else
B = Val(B & Nember_Expedient)
End If
Else
B = Val(B & Nember_Expedient)
End If
Else
B = Nember_Expedient
End If
If InStrRev(B, ".") = 0 Then
TextResult.Text = Str(B) & "."
Else
TextResult.Text = Str(B)
End If
End If
Else
Judge_CE = 1
I = Str(A)
If Len(I) >= 16 Then
TextError = "Error"
Else
If A <> 0 Then
If Expedient_Arithmetic_point = 1 Then
If InStrRev(I, ".") = 0 Then
A = Val(A & "." & Nember_Expedient)
Else
A = Val(A & Nember_Expedient)
End If
Else
A = Val(A & Nember_Expedient)
End If
Else
A = Nember_Expedient
End If
If InStrRev(A, ".") = 0 Then
TextResult.Text = Str(A) & "."
Else
TextResult.Text = Str(A)
End If
End If
End If
End Sub

Sub Arithmetic_point()
Expedient_Arithmetic_point = 1
End Sub

Sub Expedient_Operator()
If B = 0 Then
Operator = 1
TextResult.Text = "0."
Else
Judge_key = 1
CmdResult_Click
End If
End Sub
...全文
95 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tyro 2000-06-20
  • 打赏
  • 举报
回复
Sub Number_key()
Number_Expedient = Expedient_Number_key - 48
Number_input
End Sub

Private Sub CmdNumber_key_Click(Index As Integer)
Select Case Index
Case 11
Arithmetic_point
Case 10
Select Case Judge_CE
Case 1
A = -A
If InStrRev(A, ".") = 0 Then
TextResult.Text = A & "."
Else
TextResult.Text = A
End If
Case 2
B = -B
If InStrRev(B, ".") = 0 Then
TextResult.Text = Val(B & ".")
Else
TextResult.Text = Val(B)
End If
End Select
Case Else
Nember_Expedient = index
Number_input
End Select
End Sub

Private Sub CmdOperator_Click(Index As Integer)
Operator_Expedient = Index
Expedient_Operator
End Sub

还有就是定义变量名的时候,要尽量避免诸如a,b等不知意义的变量名,
另外变量名要表明这个变量的类型,例如Dim Result As Integer
应该写成Dim iResult As Integer

TopHead 2000-06-20
  • 打赏
  • 举报
回复
你到底想干什么,有什么问题就问呗?

742

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧