中易网

怎样用VB做一个小型计算器

答案:3  悬赏:10  
解决时间 2021-12-31 15:59
怎样用VB做一个小型计算器
最佳答案
你的问题在界面还是在算法?
要是算法上的问题可以这样:
声明两个数组作为栈(可用类模块)
'Class Stack:
Dim stc(100),top as integer
Sub Push(k)
stc(top)=k
top=top+1
End Sub
Function Pop
top=top-1
Pop=stc(top)
End Function
Function Peek
Peek=stc(top-1)
End Function

然后按下运算符按钮就把数字压入数字栈(push)
看看符号占上面的是否为低级运算,是则push符号,否则取出数字占的两个进行计算,结果入栈……
全部回答
先建立一个新的项目文件,里面包含一个form1的窗体。然后,添加控件,包括一个text框(text1),和17个按钮,这17个按钮使用的名称都是command1,只是index属性不同,就好象一个数组,创立一组按钮的方法是,先在窗体上建立一个按钮(command1),然后在command1上击鼠标右键,选择复制(copy),然后在窗体上任意部位击右键,选择粘贴(paste),系统会提示是否创建控件组,选择“是”,重复上面步骤,直至创立17个按钮为止。各控件属性如下表: text1 backcolor=&h00c0ffff&text=“0.” command1 index 0――16index 0――9 caption=“0”-“9”index 10 caption=“.”index 11 caption=“=”index 12 caption=“+”index 13 caption=“-”index 14 caption=“×”index 15 caption=“÷”index 16 caption=“清除” 代码如下: dim num1, num2 as single dim strnum1, strnum2 as string dim firstnum as boolean '判断是否是数字开头 dim pointflag as boolean '判断是否已有小数点 dim runsign as integer '储存运算符号 dim signflag as boolean '判断是否已有运算符号   sub cleardata() num1 = 0 num2 = 0 strnum1 = " " strnum2 = " " firstnum = true pointflag = false runsign = 0 signflag = false text1.text = "0. " end sub   sub run() num1 = val(strnum2) num2 = val(strnum1) select case runsign case 1 equal = num1 + num2 case 2 equal = num1 - num2 case 3 equal = num1 * num2 case 4 equal = num1 / num2 end select strnum2 = str(equal) strnum1 = strnum2 text1.text = strnum2 end sub   private sub about_click() msgbox "create by jianghuali。2007/3/7 ", vbdefaultbutton1, "vb教程第四章范例 " end sub   private sub command1_click(index as integer) select case index case 0 to 9 if firstnum then strnum1 = str(index) firstnum = false else strnum1 = strnum1 + str(index) end if text1.text = strnum1 case 10 if not pointflag then if firstnum then strnum1 = "0. " firstnum = false else strnum1 = strnum1 + ". " end if else exit sub end if pointflag = true text1.text = strnum1 case 12 to 15 firstnum = true pointflag = false '还原标记值 if signflag then call run else signflag = true strnum2 = strnum1 strnum1 = " " end if runsign = index - 11 case 11 if not signflag then text1.text = strnum1 equal = val(strnum1) firstnum = true pointflag = false else call run signflag = false end if   case else call cleardata   end select end sub   private sub form_load() call cleardata end sub
VB帮助里面自带一个计算器的例子!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
颁政的意思是什么?颁政的释义是什么啊?
哪位有北大版王泽鉴民法系列pdf或者电子版?
高等的植物和动物的生长、发育都开始于一个细
唉要是造句
牛羊饲料哪家好 牛羊饲料配方
顺泽的意思是什么啊?请解释下!
扳本的意思是什么?扳本的释义是什么啊?
古代四大花旦花名有谁【不是现代演员,是象征
准安到安达远吗?
我想在重庆开出租车,但对路线不熟悉,有什么
是不是所有的植物都是白天光全作用释放氧气,
清朝统领是什么官衔?
哪位大师知道农用抽水机柴油机和汽油机哪个品
积威的意思是什么?积威的释义是什么啊?
郭巨埋儿的意思是什么啊?请解释下!
推荐资讯
trados破解版and安装教程,需要2011以上版本
包桥村村委会地址在哪,我要去那里办事
临空中路/川龙大道(路口)怎么去啊,有知道地
庙前新村怎么去啊,有事要去办理
负载100KG,从静止开始运动,如需在50ms内速
巴南欧鹏巴川中学到底入驻不?
川华的意思是什么?川华的释义是什么啊?
喜欢的人说,你送的礼物我收到了。你太用心了
東洋大海的意思是什么?東洋大海的释义是什么
760除以50的竖式
恒品的意思是什么啊?请解释下!
因为我出轨,女友提出分手,说不再相信我
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?