|

楼主 |
发表于 2004-10-9 14:00:59
|
显示全部楼层
#include <math.h>
#include "CalcEng.h"
CalcEng::CalcEng(){ allclear();}
void CalcEng::allclear()
{ ans=arg=0.0;argcnt=1;op='=';}
void CalcEng: perand (double in)
{
if (op=='=')
ans=in;
else
{
arg=in;
argcnt=2;
}
}
void CalcEng: peration(char nc)
{
switch (nc)
{
case 'A':
case 'a':allclear();return;
case 'N':
case 'n':
if(argcnt==1)ans=-ans;
else
arg=-arg;
return;
case 'C':
case 'c':
if(argcnt==1)ans=0.0,op='=';
else {arg=0.0;argcnt=1;}
return;
default:
compute();
op=nc;
}
void CalcEng::compute()
{
if(argcnt==2)
{ switch(op)
{ case '+':ans+=arg;break;
case '-':ans-=arg;break;
case '*':ans*=arg;break;
case '/':ans/=arg;break;
}
argcnt=1;
}
}
这是原文件! |
|