| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8451 人关注过本帖
标题:[em04][原创]VB简易计算器(“完美”)
只看楼主 加入收藏
rainy312
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-3-8
收藏
 问题点数:0 回复次数:31 
[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

Yzjv8gPG.rar (5.45 KB) [em04][原创]VB简易计算器(“完美”)


搜索更多相关主题的帖子: 计算器 源代码 BUG 运算符 Sub 
2006-03-09 18:28
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 

E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-03-09 19:24
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 

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


E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-03-09 21:57
rainy312
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-3-8
收藏
得分:0 

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

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

还请大家多多指教。


2006-03-09 22:09
majiaow
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2006-2-21
收藏
得分:0 
大家都是厲害角色

2006-03-10 13:30
loveyou
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-3-10
收藏
得分:0 

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

2006-03-10 23:48
夜风
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2005-10-16
收藏
得分:0 
哎!你真个麻烦的人,其实只需要调用一个部件,然后一共3行代码就OK的 ,,我骗你就把你的代码吃下去
不相信可以加我QQ:34388817

我永远都是是新人!知识是学不完的!希望大家多照顾点!!!
2006-03-11 10:54
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 
你想说script吧?这个小东西这么简单,大家练习代码玩来着,用控件不就没的练了,呵呵

E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-03-11 20:24
leishendyg
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-4-17
收藏
得分:0 

厉害


我的邮箱leishendyg@有事您说话....
2006-03-13 11:46
糊涂虫
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-2-11
收藏
得分:0 

你们都是高手啊!


Wǒ會習慣①個人荇走,亨受着自由,雖然偶倁噵,自由的代价是寂寞!
2006-03-13 12:46
快速回复:[em04][原创]VB简易计算器(“完美”)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037968 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved