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

📄 expression.cpp

📁 穷举法进行三八二十四的计算。列举所有可能的表达式进行计算筛选。
💻 CPP
字号:
// Expression.cpp: implementation of the CExpression class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "RepComb.h"
#include "Expression.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCalculator CExpression::m_Calculator;
CExpression::CExpression(char cOperator)
{
  m_bOperator=true;
  m_cOperator=cOperator;
  m_dblValue=0;
  m_strExpression.Format("%c",cOperator);
  m_strExpression.TrimLeft();
  m_strExpression.TrimRight();
}
CExpression::CExpression(double dblOperand)
{
 m_bOperator=false;
 m_cOperator='\0';
 m_dblValue=dblOperand;
 m_strExpression.Format("%.0f",dblOperand);
 m_strExpression.TrimLeft();
 m_strExpression.TrimRight();
}
CExpression::~CExpression()
{

}

double CExpression::Calculate(CExpression op, CExpression operand)
{
  if(m_bOperator!=false&&op.m_bOperator!=true&&
	  operand.m_bOperator!=false)
	  	  return 0;
  if(CExpression::m_Calculator.compareL(m_cOperator,op.m_cOperator)==1)
	  AddBracket();
  if(CExpression::m_Calculator.compareR(operand.m_cOperator,op.m_cOperator)==1)
	  operand.AddBracket();
  m_dblValue=m_Calculator.compute(m_dblValue,op.m_cOperator,
	  operand.m_dblValue);
  m_cOperator=op.m_cOperator;
  m_strExpression=m_strExpression+op.m_strExpression+
	  operand.m_strExpression;
  return m_dblValue;
}

void CExpression::AddBracket()
{
  m_strExpression="("+m_strExpression+")";
}

⌨️ 快捷键说明

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