注册 登录
编程论坛 VB6论坛

[原创]甜橙计算软件,给VB初学者好的例子。

VB丶小宇 发布于 2014-01-19 22:07, 1772 次点击
一个小程序:[甜橙计算软件](中文版)
功能:用于计算日常的数据。
软件截图:
只有本站会员才能查看附件,请 登录

本程序由小宇编写,供给那些想学编程,而有感觉无从下手的 初学者。希望学者能从本软件中学到自己想要的东西。
为了使初学者更加方便理解,在多处核心位置添加注释。
PS:
1.在程序设计之初,就要做好程序错误的捕获工作,想全面程序可能发生的错误,并给与相应的处理,否则会给程序带来致命错误,导致程序退出,影响使用。
2.在程序设计的过程中,要多考虑人性化的设计,要知道,用户想要的是更加灵活和有活力的程序,适当的加强与用户的互动是必要的。比如,在适当的位置添加提示弹窗,询问弹窗等,都是软件和用户最好的交互,但是要知道,过多的弹窗等提示会使用户感到厌烦。应该适当添加,达到理想的效果。
核心源代码:
程序代码:
Option Explicit
Dim opt As String                         '定义一个字符串型变量opt
Private Sub About_Click()                 'About按钮的Click事件(即单击事件)
FormAbout.Show                            '调出另一新的"FormAbout"窗体
End Sub
Private Sub Add_Click()                   'Add(加)的单击事件
opt = "+"                                
End Sub
Private Sub CalculationCommand_Click()    '计算按钮的单击事件
On Error GoTo Wrong                       '设计一个错误捕获程序,用来捕获程序的未知错误
Dim No1 As Double, No2 As Double, Result As Double     '定义No1,No2,Result均为双精度型
No1 = No1Text.Text                        '将No1文本框中的文本赋值给No1
No2 = No2Text.Text                        '将No2文本框中的文本赋值给No2
Select Case opt                           '运用Select Case语句判断
Case "+"                                  '如果是"+",也就是opt="+"
Result = No1 + No2                        '那么将No1+No2的值赋给Result,简单的说就是结果=No1+No2
Case "-"                                  '依次类推
Result = No1 - No2
Case "*"
Result = No1 * No2
Case "/"
If No2 <> 0 Then                          '用If语句来判断,如果No2(被除数)大于小于0(即不等于0)才执行下一行代码。
Result = No1 / No2                        '将No1/No2的值赋给Result
Else                                      '如果不满足No2<>0,也就是在No2=0的情况下执行
MsgBox "除数不能为0,请修改!", vbCritical + vbOKOnly, "提示:"       '弹出一个对话框,告诉用户除数不能为0,必须修改。
End If      
End Select
ResultText.Text = Result                  '最后将Result赋值给Result文本框
If Err.Number = 13 Then                   '用If语句判断,如果错误代码是13,那么执行下一行代码
Wrong: MsgBox "请在各个文本框中输入数据,并选择运算符号!", vbCritical + vbOKOnly, "提示:"         '在出现错误,错误代码=13的情况下,弹出对话框,报错。
End If
End Sub
Private Sub Division_Click()
opt = "/"
End Sub
Private Sub EmptyCommand_Click()
No1Text.Text = ""             '将No1文本框中的内容清空。
No2Text.Text = ""             '将No2文本框中的内容清空。
ResultText.Text = ""          '将Result文本框中的内容清空。
Add.Value = False             '将所有的单选框初始化。
Subtract.Value = False
Multiplicat.Value = False
Division.Value = False
MsgBox "清除成功!", vbInformation + vbOKOnly, "提示:"    '人性化设计,弹出一个对话框,告诉用户,清除成功!
End Sub
Private Sub ExitCommand_Click()
Unload Me                     '卸载本窗体。
End Sub
Private Sub ExitTheProgram_Click()
Unload Me                     '卸载本窗体。
End Sub
Private Sub Multiplicat_Click()
opt = "*"
End Sub
Private Sub OperationAdd_Click()
Add.Value = True
CalculationCommand_Click
End Sub
Private Sub OperationDivision_Click()
Division.Value = True
CalculationCommand_Click
End Sub
Private Sub OperationEmpty_Click()
No1Text.Text = ""             '将No1文本框中的内容清空。
No2Text.Text = ""             '将No2文本框中的内容清空。
ResultText.Text = ""          '将Result文本框中的内容清空。
Add.Value = False
Subtract.Value = False
Multiplicat.Value = False
Division.Value = False
MsgBox "清除成功!", vbInformation + vbOKOnly, "提示:"
End Sub
Private Sub OperationMultiplicat_Click()
Multiplicat.Value = True
CalculationCommand_Click
End Sub
Private Sub OperationSubtract_Click()
Subtract.Value = True
CalculationCommand_Click
End Sub
Private Sub Subtract_Click()
opt = "-"
End Sub
Private Sub Timer1_Timer()
Label3.Caption = Time
End Sub
Private Sub UserHelp_Click()
FormUserHelp.Show
End Sub
发布时间:2014/1/19
文件:
只有本站会员才能查看附件,请 登录


[ 本帖最后由 VB丶小宇 于 2014-1-20 14:08 编辑 ]
12 回复
#2
lowxiong2014-01-20 06:58
回复 楼主 VB丶小宇
好!对控件使用、条件语句用法等都有实例,是入门学习的好帮手,鼓励下。
#3
VB丶小宇2014-01-20 08:39
回复 2楼 lowxiong
非常感想版版的支持。。我也是从新手一点一点走过来的,希望能够帮助他们!
#4
风吹过b2014-01-20 10:11
不错。适合新手看了。

----------------------
发现一个BUG

Private Sub About_Click()
 FormAbout.Show
 End Sub
 Private Sub Add_Click()
 opt = "+"
 End Sub
 Private Sub CalculationCommand_Click()
 On Error GoTo Wrong
……………………
If Err.Number = 13 Then
Wrong: MsgBox "请在各个文本框中输入数据,并选择运算符号!", vbCritical + vbOKOnly, "提示:"
End If
 End Sub
可以使用 GOTO 等条件或无条件转移语句从 循环、判断 中转出,但不可以 转入。
如果你上面这个错误捕捉 如果遇到了错误,会导致程序报 有 End if ,但没有 IF 语句 这个错误。



#5
VB丶小宇2014-01-20 10:31
回复 4楼 风吹过b
经实验,程序运行并无这样的报错,比如让在文本框中不输入任何的数据,也就是错误代码:13,类型不匹配,并无出现,无IF错误。如图:
只有本站会员才能查看附件,请 登录

在文本框中输入字符串型数据,也是错误代码:13类型不匹配,但错误捕捉器仍能正确提示,并无出现,无IF错误。如图:
只有本站会员才能查看附件,请 登录


[ 本帖最后由 VB丶小宇 于 2014-1-20 10:33 编辑 ]
#6
Artless2014-01-20 12:26
置顶
#7
vbvcr512014-01-20 18:31
版主都来捧场了,好厉害啊
#8
VB丶小宇2014-01-21 09:12
回复 7楼 vbvcr51
厉害啥啊。。跟你相比。。就是九牛一毛。。
#9
horizon842014-02-06 23:05
偶是个初学者,希望从简单入手。谢谢分享。
#10
a8956104962014-02-12 11:19
谢谢分享  简单易懂
#11
a8956104962014-02-13 14:23
楼主有问题请教啊。为啥我两个数想加  比如〈11+11=1111〉而不是等于22?
#12
a8956104962014-02-13 14:28
楼主有问题请教啊。为啥我两个数想加  比如〈11+11=1111〉而不是等于22?  不是求和的吗 怎么变成想加了哦
#13
爱不在DNF2014-03-01 22:28
回复 楼主 VB丶小宇
请问我要是按键0-9都在做的计算器上那怎么做?谢谢
1