简易计算器

来源:互联网 发布:淘宝网发货地址怎么改 编辑:程序博客网 时间:2024/05/16 11:09

老师布置了个作业:可拓展性或灵活性,指软件可快速改进以满足业务需求的变化,以一个简单系统为例理解在设计上要如何实现这个性能。可以一个简单的计算器为例,使用C++实现。


然后经过各种查,用已懂的知识写了个,下面贴上计算器的代码。


期间遇到错误提示:"A"的初始化操作由"case"标签跳过,这个错误是因为怕用了别的case而导致这个变量不创建,解决方法为把case(0),case(1)...后代码用{}括起来。

#include<iostream>#include<string>using namespace std;//运算类class COperation{   private:double dNumA; //数字Adouble dNumB; //数字Bpublic:void SetNumA(double n){ //设置数字AdNumA = n;}void SetNumB(double n){ //设置数字BdNumB = n;}double GetNumA(){ //取得数字Areturn dNumA;}double GetNumB(){ //取得数字Breturn dNumB;}virtual double GetResult()  // 得到运算结果{double result = 0;return result;}};//加法类class COperationAdd :public  COperation  {public:double  GetResult()override{double result = 0;result = GetNumA() + GetNumB();return result;}};//减法类class COperationSub :public COperation {public:double GetResult()override{double result = 0;result = GetNumA() - GetNumB();return result;}};//乘法类class COperationMul :public COperation  {public:double GetResult()override{double result = 0;result = GetNumA() * GetNumB();return result;}};//除法类class COperationDiv :public COperation {public:double GetResult()override{double result = 0;if (GetNumB() == 0){std::cout << "除数不能为0。";return NULL;}result = GetNumA() / GetNumB();return result;}};int main(){int n;double x, y;while(true){cout << " == == == == == == == == == == == == == == == == == == ==" << endl;cout << "                0. 加法运算" << endl;cout << "                1. 减法运算" << endl;cout << "                2. 乘法运算" << endl;cout << "                3. 除法运算" << endl;cout << "                4. 退出    " << endl;cout << " == == == == == == == == == == == == == == == == == == ==" << endl;cout << "运算类型选择:";cin >> n;switch(n){case(0) : {  COperationAdd A;  cout << "请输入数据x和y:";  cin >> x >> y;  A.SetNumA(x);  A.SetNumB(y);  cout << x << " + " << y << " = " << A.GetResult() << endl; break;}case(1) : {  COperationSub A;  cout << "请输入数据x和y:";  cin >> x >> y;  A.SetNumA(x);  A.SetNumB(y);  cout << x << " - " << y << " = " << A.GetResult() << endl; break;}case(2) : {  COperationMul A;  cout << "请输入数据x和y:";  cin >> x >> y;  A.SetNumA(x);  A.SetNumB(y);  cout << x << " * " << y << " = " << A.GetResult() << endl; break;}case(3) : {  COperationDiv A;  cout << "请输入数据x和y:";  cin >> x >> y;  A.SetNumA(x);  A.SetNumB(y);  cout << x << " / " << y << " = " << A.GetResult() << endl; break;}case(4):exit(0);default: break;}}return 0;}


0 0
原创粉丝点击