⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 page109.cpp

📁 包含常见的数据结构的类和函数
💻 CPP
字号:
#include <process.h>#include <math.h>#include <stack.h>#include <iostream.h>enum Boolean {False,True};class Calculator{  public:    Calculator(int sz=20):s(sz){};    void Run();    void Clear();  private:    void AddOperand(double value);    Boolean Get2Operands(double & left,double & right);    void DoOperator(char op);    Stack<double> s;    };  void Calculator::AddOperand(double value){    s.Push(value);    }  Boolean Calculator::Get2Operands(double & left,double & right){    if(s.IsEmpty()){      cerr<<"Missing Operand!"<<endl;      return False;      }    right=s.Pop();    if(s.IsEmpty()){      cerr<<"Missing Operand!"<<endl;      return False;      }    left=s.Pop();    return True;  }  void Calculator::DoOperator(char op){    double left,right;    Boolean result;    result=Get2Operands(left,right);    if(result==True)      switch(op){	case '+': s.Push(left+right); break;	case '-': s.Push(left-right); break;	case '*': s.Push(left*right); break;	case '/': if(right==0.0){		    cerr<<"Divided by 0!"<<endl;		    s.MakeEmpty();		    exit(0);		    }		    else s.Push(left/right); break;	case '^': s.Push(pow(left,right)); break;	}	else s.MakeEmpty();    };  void Calculator::Run(){    char ch;    double newoperand;    while(cin>>ch,ch!='='){      switch(ch){	case '+':	case '-':	case '*':	case '/':	case '^':  DoOperator(ch); break;	default: cin.putback(ch);		 cin>>newoperand;		 AddOperand(newoperand);		 break;      }    }    assert(!s.IsEmpty());    cout<<"The result is:"<<s.Pop()<<endl;  }  void Calculator::Clear(){    s.MakeEmpty();    }void main(){  Calculator cal(10);  cal.Run();  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -