如有哪位仁兄有的话,发到
收到立即接贴.

解决方案 »

  1.   

    没有人闲得去写这个 还写文档的 
    只是要功能 完全可以调用windows的计算器
      

  2.   

    唉,还真是有这样的闲人,还正好就是我吧,呵呵,不过最近老是看到有人问这样的问题,不知道是怎么回事。
    言归正传:首先,最好要使用控件数组来做,可以定义17个按钮的数组,然后使用一个LABEL作为显示板,使用一全局变量Opera记录计算方式:
    COMMAND1(0)---COMMAND1(16)
    在程序启动的时候写:
    Dim Opera as String '用来记录所做的操作
    Dim Data(1) as Double '用来记录操作数
    Dim I as long 
    for I =0 to 9
       Command1(I).caption=I
    next
    command1(10).caption="."
    command1(11).caption="+"
    command1(12).caption="-"
    command1(13).caption="x"
    command1(14).caption="/"
    command1(15).caption="="
    command1(16).caption="C"
    然后可以这样写: (随手写的SELECT CASE,估计可能会有点错,说个思路而已)
    sub command1_click(Index as long)
    select case Index
       case is < 11 : label1.caption =label1.caption & command1(Index).caption'显示数字
       case 11 to 14: Opera =command1(I).caption '记录操作符号咯
                      label1.caption=""  '好像计算器按下操作符之后面板是清空的吧
       case 15: Calculate '按"="就是计算咯
       case 16: data(0)=0 '按"C"这个按钮就是清空一切,呵呵
                data(1)=0
                Opera=""
                label1.caption=""
    end select
    end subSub Caculate()
       select case Opera
           case "+": Data(0)=Data(0)+Data(1)
           case "-": Data(0)=Data(0)-Data(1)
           case "x": Data(0)=Data(0)*Data(1)
           case "/": if data(1)<>0 then Data(0)=Data(0)/Data(1) '不能除以0哦
       end select
       label1.caption=data(0)
    end sub对了,别忘记一件很重要的事,否则程序运行不起来:
    sub label1_change()
    dim I as long
    if opera="" then I=0 else I=1  '意思就是,如果前面按过操作符,那就是第二个操作数啦
    data(I)=val(label1.caption)  '万一你按的是10.5.1.7这样的东东该如何计算呢?
    label1.caption=data(I)  '只显示经过检验的数字咯
    end sub好像到这里就完了吧,呵呵,挺简单的吧,偶刚学VB的时候也写过这玩意儿的,居然还想得起来.补充一下:
    Dim Opera as String '用来记录所做的操作
    Dim Data(1) as Double '用来记录操作数
    这两个是全局定义,放在程序最前面下面这一段可以放在FORM_lOAD里面
    Dim I as long 
    for I =0 to 9
       Command1(I).caption=I
    next
    command1(10).caption="."
    command1(11).caption="+"
    command1(12).caption="-"
    command1(13).caption="x"
    command1(14).caption="/"
    command1(15).caption="="
    command1(16).caption="C"至于控件数组,很简单的,放一个COMMAND按钮在窗体上,然后选中它,不断得按"Ctrl+C" 和 "CtrL+V",标准的WINDOWS复制方法.
    因为懒得一个一个控件去设定CAPTION值,所以就用了一个循环来做,楼主排版的时候要注意哦,不是很直观,呵呵
      

  3.   

    建立控件数组的方法就是先拖一个控件到窗体上,然后选中它,先按“CTRL+C”再按“CTRL+V”就可以了。要是看了这些还是不会写的话,楼主也就不要再学什么VB了。
      

  4.   

    估计是作业吧?我印象中MSDN自带一个计算器的示例的
      

  5.   

    不知道wallescai的计算器考虑运算规则没有
      

  6.   

    上面哪个 就是MSDN中 用控件数组做的
      

  7.   

    MSDN中有一个这样的例子,不错的。