📄 express.cpp
字号:
#include "express.h" #include <String.h>//==================================================================
expression_component::expression_component(void){ IsOperand = 0; IsOperator = 0; IsFunction = 0;}expression_component::expression_component(const expression_component &X){ Exponent = X.Exponent; Value = X.Value; Sign = X.Sign; Variable = X.Variable; Priority = X.Priority; Operator = X.Operator; IsOperator = X.IsOperator; IsOperand = X.IsOperand; IsFunction = X.IsFunction; strcpy(Function,X.Function);}int expression_component::isOperator(void){ return(IsOperator);}void expression_component::isOperator(int Bool){ IsOperator = Bool;}int expression_component::isOperand(void){ return(IsOperand);}void expression_component::isOperand(int X){ IsOperand = X;}int expression_component::isFunction(void){ return(IsFunction);}void expression_component::isFunction(int X){ IsFunction = X;}expression_component &expression_component::operator=(const expression_component &X){ Exponent = X.Exponent; Value = X.Value; Sign = X.Sign; Variable = X.Variable; Priority = X.Priority; Operator = X.Operator; IsOperator = X.IsOperator; IsOperand = X.IsOperand; IsFunction = X.IsFunction; strcpy(Function,X.Function); return(*this);
}
int expression_component::operator>(const expression_component &X) const{ if(X.IsOperand){ if(Value > X.Value){ return(1); } else{ return(0); } } else if(Priority > X.Priority){ return(1); } else{ return(0); }}int expression_component::operator()(expression_component &X,expression_component &Y){ if(X.IsOperand){ if(X.Variable < Y.Variable){ return(1); } else{ return(0); } } else if((X.Priority < Y.Priority) && (X.Operator < Y.Operator)){ return(1); } else{ return(0); }}int expression_component::operator<(const expression_component &X) const{ if(X.IsOperand){ if(Variable < X.Variable){ return(1); } else{ return(0); } } else if((Priority < X.Priority) && (Operator < X.Operator)){ return(1); } else{ return(0); }}int expression_component::operator==(const expression_component &X) const{ if(X.IsOperand){ if(Variable == X.Variable){ return(1); } else{ return(0); } } else if((Priority == X.Priority) && (Operator == X.Operator)){ return(1); } else{ return(0); }}int expression_component::operator>=(expression_component &X){ if(X.IsOperand){ if(Value >= X.Value){ return(1); } else{ return(0);
}
}
else
if(Priority >= X.Priority){
return(1);
}
else{
return(0);
}
}
int expression_component::operator<=(expression_component &X)
{
if(X.IsOperand){
if(Value <= X.Value){
return(1);
}
else{
return(0);
}
}
else
if(Priority <= X.Priority){
return(1);
}
else{
return(0);
}
}
int expression_component::operator!=(expression_component &X)
{
if(X.IsOperand){
if(Value != X.Value){
return(1);
}
else{
return(0);
}
}
else
if(Priority != X.Priority){
return(1);
}
else{
return(0);
}
}
operand expression_component::operand_type(void)
{
operand Temp;
Temp.exponent(Exponent);
Temp.value(Value);
Temp.sign(Sign);
Temp.variable(Variable);
return(Temp);
}
operator_type expression_component::opType(void)
{
operator_type Temp;
Temp.priority(Priority);
Temp.op(Operator);
Temp.function(Function);
return(Temp);
}
ostream &operator<<(ostream &Out,expression_component &X)
{
Out << X.IsOperand << " " << X.IsOperator << endl;
Out << "Value " << X.Value << endl;
Out << "Function " << X.Function << endl;
Out << "Variable " << X.Variable << endl;
Out << "Operator " << X.Operator << endl;
return(Out);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -