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 + -
显示快捷键?