| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 4548 人关注过本帖
标题:[em04][原创]VB简易计算器(“完美”)
收藏  订阅  推荐  打印 
rainy312
Rank: 1
等级:新手上路
帖子:7
积分:220
注册:2006-3-8
[em04][原创]VB简易计算器(“完美”)

刚学VB,经过几天的努力,终于成功编写了一个计算器程序(不支持四则运算)

初步试用,还没发现问题,希望高手调试找找BUG,谢谢

源代码如下

Dim FirNum As Double, SecNum As Double, NewNumSign As Boolean, LastOp As Boolean, Op As String

'NewNumSign 新数标记 LastOp记录上次输入是否运算符(实现中途运算符的切换) Op 记录运算符

Private Sub ComCE_Click() '清空归零(本次输入)
Text1.Text = "0"
End Sub

Private Sub ComClear_Click() '置零,回归初始状态
form_load
End Sub

Private Sub ComDel_Click() '删除字符
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
LastOp = True
End Sub

Private Sub ComEqual_Click(Index As Integer) '计算
If LastOp = True Then
JiSuan '调用计算函数
LastOp = False
End If
Select Case ComEqual(Index).Caption
Case "+"
Op = "+"
Case "-"
Op = "-"
Case "*"
Op = "*"
Case "/"
Op = "/"
Case "="
Op = "="
End Select
NewNumSign = True
If Text1.Text <> "Error" Then
Text1.Text = SecNum
End If
End Sub

Private Sub ComNum_Click(Index As Integer) '数据输入
If NewNumSign = True Then
Text1.Text = ComNum(Index).Caption: NewNumSign = False
ElseIf Text1.Text = "0" Then
Text1.Text = ComNum(Index).Caption
Else: Text1.Text = Text1.Text & ComNum(Index).Caption
End If
NewNumSign = False
LastOp = True
End Sub

Private Sub ComPoint_Click() '小数点输入
If NewNumSign = True Then
Text1.Text = ".": NewNumSign = False
ElseIf InStr(Text1.Text, ".") Then
Exit Sub
Else: Text1.Text = Text1.Text & "."
End If
NewNumSign = False
LastOp = True
End Sub

Private Sub ComZF_Click() '正负的转换
If Text1.Text = "0" Then
Exit Sub
ElseIf InStr(Text1.Text, "-") Then
Text1.Text = Right(Text1.Text, Len(Text1.Text) - 1)
Else: Text1.Text = "-" & Text1.Text
End If
LastOp = True
End Sub

Private Sub form_load()
FirNum = 0: SecNum = 0: NewNumSign = True: LastOp = True: Op = ""
Text1.Text = "0"
Text1.FontSize = 12
End Sub

Private Sub Text1_Change() '显示合理化检查(本人认为此类程序的最好的解决方法)
If Text1.Text = "" Then
Text1.Text = "0"
ElseIf Left(Text1.Text, 1) = "." Then
Text1.Text = "0" & Text1.Text
ElseIf Left(Text1.Text, 2) = "-." Then
Text1.Text = "-0" & Right(Text1.Text, Len(Text1.Text) - 1)
End If
End Sub

Private Sub JiSuan() '计算函数
FirNum = Val(Text1.Text)
Select Case Op
Case "+"
SecNum = SecNum + FirNum
Case "-"
SecNum = SecNum - FirNum
Case "*"
SecNum = SecNum * FirNum
Case "/"
If FirNum = 0 Then
form_load
Text1.Text = "Error"
Exit Sub
Else: SecNum = SecNum / FirNum
End If
Case Else
SecNum = FirNum
End Select
End Sub


附件: 只有本站会员才能下载或查看附件,请您 登录注册
搜索更多相关主题的帖子: 计算器  源代码  BUG  运算符  Sub  
2006-3-9 18:28
xinfresh
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:13
帖子:594
积分:6224
注册:2006-1-13

E-mail:xinfresh@163.comQQ:383094053校内:http://xiaonei.com/getuser.do?id=234719042
2006-3-9 19:24
xinfresh
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:13
帖子:594
积分:6224
注册:2006-1-13

哎?加精了?还得感谢你啊,都是因为你,版主才看到我的,然后统统加精


E-mail:xinfresh@163.comQQ:383094053校内:http://xiaonei.com/getuser.do?id=234719042
2006-3-9 21:57
rainy312
Rank: 1
等级:新手上路
帖子:7
积分:220
注册:2006-3-8

呵呵~你不说我还不知道呢,本来还担心发上来会被人骂,嘿嘿!

纠正:程序源代码中注释部分,“函数”应为“子过程”

还请大家多多指教。


2006-3-9 22:09
majiaow
Rank: 2
等级:注册会员
帖子:172
积分:1820
注册:2006-2-21

大家都是厲害角色

2006-3-10 13:30
loveyou
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2006-3-10

呵呵……
老大,还不错啊!!!

2006-3-10 23:48
夜风
Rank: 2
等级:注册会员
帖子:56
积分:660
注册:2005-10-16

哎!你真个麻烦的人,其实只需要调用一个部件,然后一共3行代码就OK的 ,,我骗你就把你的代码吃下去
不相信可以加我QQ:34388817

我永远都是是新人!知识是学不完的!希望大家多照顾点!!!
2006-3-11 10:54
xinfresh
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:13
帖子:594
积分:6224
注册:2006-1-13

你想说script吧?这个小东西这么简单,大家练习代码玩来着,用控件不就没的练了,呵呵

E-mail:xinfresh@163.comQQ:383094053校内:http://xiaonei.com/getuser.do?id=234719042
2006-3-11 20:24
leishendyg
Rank: 2
等级:注册会员
帖子:57
积分:644
注册:2005-4-17

厉害


我的邮箱leishendyg@126.com有事您说话....
2006-3-13 11:46
糊涂虫
Rank: 2
等级:注册会员
帖子:87
积分:970
注册:2006-2-11

你们都是高手啊!


Wǒ會習慣①個人荇走,亨受着自由,雖然偶倁噵,自由的代价是寂寞!
2006-3-13 12:46
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.101388 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved