calculate.h
来自「24点游戏,用c++实现」· C头文件 代码 · 共 66 行
H
66 行
// Caculate.h: interface for the CCalculate class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CACULATE_H__342E6EEC_AD80_4993_BDAD_53A94C2F6F7A__INCLUDED_)
#define AFX_CACULATE_H__342E6EEC_AD80_4993_BDAD_53A94C2F6F7A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CNode
{
public:
CNode *left,*right;
double data;
char operate;
int prior;
CNode():left(NULL),right(NULL),data(0),operate('@'),prior(-1){}
};
class CCalculate : public CObject
{
DECLARE_SERIAL(CCalculate);
private:
protected:
CString m_strExpression;
int m_nPos;
CNode* m_pRoot;
CString m_strWrongMessage;
// CString m_strStep;
// double m_dResult;
public:
CCalculate();
virtual ~CCalculate();
protected:
BOOL m_bIsValid;
void FreeTree(CNode* nod);
public:
//operations
CNode* AddSub();
CNode* MultiplyDivide();
CNode* Putere();
CNode* Factor();
CNode* Operand();
BOOL IsValid(CString* pMessage=NULL,int* pPos=NULL);
double GetValue(char operate,double oper1,double oper2);
public:
int MakeTree();
CCalculate(const CString& strExpression);
void Serialize(CArchive& ar);
virtual void ResetExp(const CString& strExp);
virtual double GetResult();
virtual double Calculate(CNode* node);
};
#endif // !defined(AFX_CACULATE_H__342E6EEC_AD80_4993_BDAD_53A94C2F6F7A__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?