问答1 问答5 问答50 问答500 问答1000

跪求vb 高手 编个如下版型的 计算器。。。

提问网友 发布时间:2024-04-26 02:41
声明声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:1656858193@qq.com
2个回答
热心网友 回答时间:2024-04-27 18:39
分别代表输入的第一个数和第二个数
Dim strn1$, strn2$
'StrN1,StrN2分别代表输入第一个
Dim firstN As Boolean
'判断是否是数字开头
Dim pointflag As Boolean
'判断是否已有小数点
Dim runsign As Integer
'变量Runsign用来储存运算符号
Dim signflag As Boolean
'变量SignFlag判断是否已有运算符号

Private Sub form_load()
n1 = 0: n2 = 0
strn1 = "": strn2 = ""
firstN = True
pointflag = False
'将 PointFlag 设为否,即没有小数点
runsign = 0
signflag = False
'没有运算符号输入
End Sub
Private Sub cmdN_Click(Index As Integer)
Select Case Index
'用Index 作为判断分支的条件
Case 0 To 9
'如果Index是0到9,即数字
If firstNum Then
'输入为第一个数字的话
strn1 = Str(Index)
'实型转字符型
firstN = False
'初赋值标志为假
Else
strn1 = strn1 + Str(Index)
'输入不是第一个数字的话,将输入的字符添加到原有字符串上
End If '结束 if 块
Text1.Text = strn1 '将字符串结果显示到标签上
Case 10 '如果输入为小数点
If Not pointflag Then '如果没有小数点
If firstN Then '如果是第一个字符
strn1 = "0." '显示为" 0." 不变
firstN = False
Else
strn1 = strn1 + "."
'初赋值标志为假,否则字符串上加上小数点符号
End If '结束if块
Else
Exit Sub
'已有小数点,则退出单击事件,也就是对单击事件不反应
End If
pointflag = True
Text1.Text = strn1
'将小数点标志为真,即在输入串中有了小数点,在显示屏上显示数字串
Case 17
If Sgn(Val(strn1)) = 1 Then
strn1 = "-" + strn1
Else
If Sgn(Val(strn1)) = -1 Then
strn1 = Right(strn1, Len(strn1) - 1)
End If
strn1 = "0."
End If
Text1.Text = strn1
Case 12 To 15
firstN = True
'当输入为运算符号时,使下一次可以输入新数据
pointflag = False '还原小数点标记值
If signflag Then '前面已有运算符未运算
Call Run '调用计算子程序,该子程序在下面有说明
Else
signflag = True
'前面没有未运算的,将有无运算符标志设为"有"
strn2 = strn1 '把字符串1复制给字符串2
strn1 = "" '字符串1清空
End If
runsign = Index - 11
Case 11 '如果输入等号
If Not signflag Then '如果没有输入运算符
Text1.Text = strn1 '以下均为重置各个变量
ysjg = Val(strn1)
firstN = True
pointflag = False
Else
Call Run
signflag = False
'如果已输入运算符在内,计算清除是否有运算符标志
End If
Case 16
n1 = 0
n2 = 0
'如果输入清除按钮,以下均为重置各个变量,相当于Form_Load中的代码
strn1 = ""
strn2 = ""
firstN = True
pointflag = False
runsign = 0
signflag = False
Text1.Text = "0."
End Select
End Sub
Public Sub Run()
Dim ysjg As Single 'Ysjg为局部变量,用来存储运算结果
n1 = Val(strn2) '将字符串转换成数值
n2 = Val(strn1)
Select Case runsign
Case 1
ysjg = n1 + n2
Case 2
ysjg = n1 - n2
Case 3
ysjg = n1 * n2
Case 4
ysjg = n1 / n2
End Select
strn2 = Str(ysjg)
strn1 = strn2
Text1.Text = strn2
End Sub
热心网友 回答时间:2024-04-27 18:44
有分么...如果你愿意出分的话....我帮你写一个...至少100分以上...视程序复杂程序上升....

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

上海市浦东医保卡领取 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 舞动人生,我的芭蕾穿搭秀!並 ...气缸一 凸轮轴位置传感器曲轴位置传感器分配不正确 怎么读数据流... ...码是:气缸列1.凸轮轴位置传感G40/曲轴位置传感器G28.分配不正确是怎... 淘宝一个店铺都是9.9是真的吗说起七天发货 怎么在一年内修改两次 一年内怎么修改第二次 分享一下你们拍的好看的天空图片。? 2014山东省属事业单位考试内容是什么? 一年改2次的办法 一年内可以修改几次吗? 芭蕾女孩的日常穿搭,展现你的优雅舞姿! 复方苯硝那敏片合肥哪里有卖? 常德火车站到得山工业区坐几路车 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... B8迈腾1.8豪华可以改装哪些 阴天可以晒兔毛皮草吗? 蜀川胜概 锦城图卷——天府绿道之锦城绿道(环城生态公园) 四川盐源县大草乡大坝村属于什么派出所管辖? ...我买了流量包,剩余1GB,为什么流量还是超出使用扣我话费?_百度... ...流量剩余还有很多,但为什么总是说我流量超出,还扣我话费_百度... 洛克王国莉莉丝什么时候肚子特别饿 马来酸氯苯那敏片一次吃八是片还吃了十片架硝唑片会出... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 同一个手机号注册两个,新的刚注销,旧的怎么找回? 未满一年怎么强制改 关于微信绑定上限的问题:你的手机号在最近24小时内已绑定过3个... 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 用同一个手机号注册的两个怎么找到第一个。 ...问题:你的手机号在最近24小时内已绑定过3个,已达到限制?_百度... 同一个手机号注册两个,新的刚注销,旧的怎么找回? 我2001的想办一张银行卡我妈妈带我去办可以办吗 如果从哈尔滨包车到雪乡大概多少钱呢?从海林包车呢? 从雪乡包车到长白山... ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 修改一次,一年之内可以改第二次吗? 锁骨和肩胛骨脱臼,需要开刀吗? 2001年8月6日出生的什么时候可以办银行卡 怎么在一年内修改两次