怎样用VB做一个小型计算器
答案:3 悬赏:10
解决时间 2021-12-31 15:59
- 提问者网友:残阳碧曼
- 2021-12-31 09:13
怎样用VB做一个小型计算器
最佳答案
- 二级知识专家网友:佛说妍妍很渣
- 2021-12-31 09:25
你的问题在界面还是在算法?
要是算法上的问题可以这样:
声明两个数组作为栈(可用类模块)
'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符号,否则取出数字占的两个进行计算,结果入栈……
要是算法上的问题可以这样:
声明两个数组作为栈(可用类模块)
'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符号,否则取出数字占的两个进行计算,结果入栈……
全部回答
- 1楼网友:心痛成瘾
- 2021-12-31 11:08
先建立一个新的项目文件,里面包含一个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
- 2楼网友:无字情书
- 2021-12-31 09:32
VB帮助里面自带一个计算器的例子!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯