📄 calculate.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 + -