用asp.net 网页形式,写一个计算器,只有一个文本框我的思路是 在单机+、-、*、/按钮的事件中,记录当前文本框里的数值1,和运算符。然后清空文本框
           比如说 ADD的单机事件{
           num1=tb1.text;   op="add";    tb1.text="";
           }           在单机“=”的按钮事件中,记录文本框里的数值2           然后继续在这个事件中写case语句,先判断,然后做相应的加减乘除运算,           但是,此时,怎么去获得之前得到的数值1和运算符呢???
还有,怎么去实现连加、减、乘、除呢?就算是写个SESSION,去记录数值1,在每次按完“=”后,总是把运算后的结果赋给了新数值2,(因为之前写到了,在单机“=”的按钮事件中,记录文本框里的数值2)然后就相当于新数值2去加数值1,而不是去加原数值2好心人帮帮忙吧~~~

解决方案 »

  1.   

    如果你有一点软件专业概念比较好理解这个概念。这就相当于有一个深度为2的堆栈。当你输入完了数字,点击一个运算按键时,当前显示的数据被压入堆栈,并且当前的按键也被压入堆栈。然后当你录入的第一个数字键时,程序就直接擦除当前的显示数字并且显示你录入的数字。而当你按下另一个一个运算按键时,堆栈中两个内容(之前的数字以及之后的运算符)被弹出堆栈,与当前显示的数字一起运算得到一个新的数字,这个数字被显示出来作为当前结果。然后一切又从头开始了(你有点击一个运算按键......)。当然按ESC键的行为是将当前显示的数字变为0.
      

  2.   


    您是说,点击运算符是把数值1和运算符压入堆栈,当按下 = 键时,这两个内容被弹出,可是,他们就没有和数值2去运算哪,函数里面写的是num1+num2  而实际上是0.0 null 数值2,等于之前输入的都只在之前的那个点击运算符函数里被记录了,到了这个函数里,没被用上
      

  3.   

    LZ是要记录输入和状态,但是没想到合理的方式么?
    还是在逻辑处理上遇到问题了。。
    如果是逻辑处理上:
    A记录第一次输入,OP记录操作符,B记录第二次输入,R记录结果;
    写一个处理操作,将上述参数都作为ref传进去
    具体逻辑上,要自己好好想想了。