c++ 四则计算器
用c++的类方式做一个四则运算计算器非常容易,只需要用成员函数就可以完成,而这里用多态的方法来做
多态的特点
1、代码组织结构清晰
2、可读性强
3、利于前期和后期的扩展和维护
代码
#include<iostream>
#include<string>
using namespace std;
class abstractcalculator
{
public:
virtual float getresult()//提供虚函数,方便多态
{
return 0;
}
float num1=0, num2=0;
};
class addcalculator:public abstractcalculator//加法
{
public:
float getresult()
{
return num1 + num2;
}
};
class subcalculator :public abstractcalculator//减法
{
public:
float getresult()
{
return num1-num2;
}
};
class muticalculator :public abstractcalculator
{
public:
float getresult()
{
return num1 * num2;
}
};
class devicalculator :public abstractcalculator
{
public:
float getresult()
{
return num1 / num2;
}
};
int main()
{
cout << "请输入算式,,每输入一个请空格一下" << endl;
float num;
while (cin>>num)
{
string ch;
cin >> ch;
if (ch == "+")
{
abstractcalculator* abs = new addcalculator;
abs->num1 = num;
cin >> abs->num2;
cout << "结果为" << abs->getresult() << endl;
delete abs;
}
else if (ch == "-")
{
abstractcalculator* abs = new subcalculator;
abs->num1 = num;
cin >> abs->num2;
cout << "结果为" << abs->getresult() << endl;
delete abs;
}
else if (ch == "*")
{
abstractcalculator* abs = new muticalculator;
abs->num1 = num;
cin >> abs->num2;
cout << "结果为" << abs->getresult() << endl;
delete abs;
}
else if (ch == "/")
{
abstractcalculator* abs = new devicalculator;
abs->num1 = num;
cin >> abs->num2;
cout << "结果为" << abs->getresult() << endl;
delete abs;
}
cout << "是否继续?(y/n)" << endl;
char judge;
cin >> judge;
if (judge == 'y' || judge == 'Y')
{
continue;
}
else
{
break;
}
}
system("pause");
return 0;
}
当然这里提供了先输入数字,在通过输入算术符来判断使用哪一个类的成员函数


被折叠的 条评论
为什么被折叠?



