题目描述
用面向对象的思想实现计算器基本功能(加减乘除)
我的代码
#include <iostream>
using namespace std;
class Operation{
protected:
double numA,numB;
public:
void setNumberA(double numA){
this->numA = numA;
}
void setNumberB(double numB){
this->numB = numB;
}
virtual double getresult() = 0;
};
class Opadd:public Operation{
public:
double getresult(){
return numA+numB;
}
};
class Opsub:public Operation{
public:
double getresult(){
return numA-numB;
}
};
class Opmul:public Operation{
public:
double getresult(){
return numA*numB;
}
};
class Opchu:public Operation{
public:
double getresult(){
if(numB==0)
return 0;
return 1;
}
};
int main(){
double nA,nB;
cin >> nA >> nB;
Operation *op;
int tp;
cin >> tp;
switch(tp){
case 1:op = new Opadd;break;
case 2:op = new Opsub;break;
case 3:op = new Opmul;break;
case 4:op = new Opchu;break;
}
op->setNumberA(nA);
op->setNumberB(nB);
if(tp==4){
if(op->getresult())
cout << nA/nB << endl;
else
cout << "ERROR" << endl;
return 0;
}
cout << op->getresult() << endl;
return 0;
}
注意除法分母为零特判