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

📄 calculate.h

📁 24点游戏,用c++实现
💻 H
字号:
// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -