| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1077 人关注过本帖
标题:初学者的VB计算器
只看楼主 加入收藏
weiyi75
Rank: 1
等 级:新手上路
威 望:1
帖 子:43
专家分:0
注 册:2006-9-7
收藏
 问题点数:0 回复次数:7 
初学者的VB计算器

练习一下控件数组和代码规范性

窗体代码如下

Option Explicit

Dim blnStratrOperationFlag As Boolean '是否开始运算
Dim lngOperationFlag As Long '运算标志
Dim dblFirstOperationValue As Double '先前的操作数

Private Sub cmdValuedDecimal_Click(Index As Integer) '数字及小数点

Select Case Index

Case 0

AddTextOperationValue "0"

Case 1

AddTextOperationValue "1"

Case 2

AddTextOperationValue "2"

Case 3

AddTextOperationValue "3"

Case 4

AddTextOperationValue "4"

Case 5

AddTextOperationValue "5"

Case 6

AddTextOperationValue "6"

Case 7

AddTextOperationValue "7"

Case 8

AddTextOperationValue "8"

Case 9

AddTextOperationValue "9"

Case 10

AddTextOperationValue "."

End Select

End Sub

Private Sub AddTextOperationValue(strOperationValue As String)

If Len(txtOperationValue) > 8 And blnStratrOperationFlag = False Then Exit Sub '判断是否输入数字超过9个

If txtOperationValue = "0" And strOperationValue = "0" Then Exit Sub '是否什么也没输入或为0时候输入0则退出

If lngOperationFlag <> 0 And blnStratrOperationFlag = True Then '如果有操作符且开始运算为真则

txtOperationValue = ""
blnStratrOperationFlag = False

End If

If txtOperationValue = "0" And strOperationValue <> "." Then txtOperationValue = "" '头次输入数字

If Right$(txtOperationValue, 1) = "." And strOperationValue = "." Then Exit Sub '避免多次输入小数点

txtOperationValue = txtOperationValue & strOperationValue '累加字符

End Sub

Private Sub cmdOperation_Click(Index As Integer) '+ - * / =

Select Case Index

Case 0

lngOperationFlag = 1

Evaluate

Case 1

lngOperationFlag = 2

Evaluate

Case 2

lngOperationFlag = 3

Evaluate

Case 3

lngOperationFlag = 4

Evaluate

Case 4

DisposeResult

End Select

End Sub

Private Sub Evaluate() '四则运算赋值

dblFirstOperationValue = Val(txtOperationValue)

blnStratrOperationFlag = True
txtOperationValue = ""

End Sub

Private Sub DisposeResult() '处理计算结果

On Error GoTo ToExit '打开错误陷阱

Select Case lngOperationFlag '操作标志

Case 1

txtOperationValue = dblFirstOperationValue + Val(txtOperationValue)

Case 2

txtOperationValue = dblFirstOperationValue - Val(txtOperationValue)

Case 3

txtOperationValue = dblFirstOperationValue * Val(txtOperationValue)

Case 4

txtOperationValue = dblFirstOperationValue / Val(txtOperationValue)

End Select

lngOperationFlag = 0 '操作标志清0

Exit Sub

ToExit:

MsgBox "除数不能为0!", vbOKOnly, "错误"

Resume Next

End Sub

Private Sub cmdClearAll_Click() 'C按钮清除所有的运算结果

lngOperationFlag = 0
txtOperationValue = "0"

End Sub

Private Sub cmdClearLastInput_Click() 'CE按钮清除最后一次输入的数字

txtOperationValue = "0"

End Sub

Private Sub Form_Unload(Cancel As Integer)

Set frmCalculator = Nothing

End Sub


X2Xka3Cs.rar (2.88 KB) 初学者的VB计算器






v8JF5EiB.jpg (15.09 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 计算器 初学者 
2006-11-15 17:57
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
好.做得不错..
如果能再加上科学型计算器的功能..就更好了.

我的msn: myfend@
2006-11-15 18:33
weiyi75
Rank: 1
等 级:新手上路
威 望:1
帖 子:43
专家分:0
注 册:2006-9-7
收藏
得分:0 
,就一个美女看了。
2006-11-18 15:30
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
...........

我的msn: myfend@
2006-11-18 15:31
盛崖余
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-8-30
收藏
得分:0 

怎么说呢~现在网上能找到的VB写的计算器都这样~不是很实用~特别是对()这样优先级的处理很多都直接没有了~


不让生活磨灭我们的梦想!
2006-11-19 09:51
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
..........

我的msn: myfend@
2006-11-19 09:54
快速回复:初学者的VB计算器
数据加载中...
 
   



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

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