#include<iostream.h>
#include<windows.h>
class Ji
{
public:
Ji();
virtual ~Ji();
virtual double add(double a,double b);//加
virtual double red(double a,double b);//减
virtual double mul(double a,double b);//乘
virtual double div(double a,double b);//除
virtual void equl(double a);//等于
virtual void emp();//清空
};
Ji::Ji()
{
cout<<”Ji::Ji()”<<endl;//判断创建对象时是否执行了构造函数
}
Ji::~Ji()
{
Cout<<”Ji::~Ji()”<<endl;//析构
}
double Ji::add(double a,double b)
{return a+b;}
double Ji::red(double a,double b)
{return a-b;}
double Ji::mul(double a,double b)
{return a*b;}
double Ji::div(double a,double b)
{return a/b;}
void Ji::equl(double a)
{cout<<a<<endl;}
void Ji::emp()
{system("cls");}
void main()
{
Ji j;
double a[20];
char c[20];
double t;
while(true)
{
cout<<"input:"<<endl;
for(int k=0;k<20;k++)//输入数据
{
cin>>a[k];
cin>>c[k];
if(c[k]=='=')
break;
}
for(int p=0;p<=k;p++)
{
cout<<a[p];
cout<<c[p];
}
//计算
int q=0;
for(int i=0;i<100;i++)
{
//利用符号判断用哪个函数
if(c[i]=='+')
{
t=j.add(a[q],a[q+1]);
}
else if(c[i]=='-')
{
t=j.red(a[q],a[q+1]);
}
else if(c[i]=='*')
{
t=j.mul(a[q],a[q+1]);
}
else if(c[i]=='/')
{
if(a[q+1]==0)
{
cout <<"算式无意义!\n";
break;
}
else
t=j.div(a[q],a[q+1]);
}
else if(c[i]=='=')
{
j.equl(t);
break;
}
}a[q+1]=t;//将前面处理的数字,赋值给已经处理和要处理的数字
q=q+1;//数字数组前进一位
}
//询问是否清空
char b;
cout<<"empty y/n?"<<endl;
cin>>b;
if(b=='y')
{
j.emp();
}else
{
continue;
}
}