www.pudn.com > calculatordsaaa.rar > Calculation.h


// Calculation.h: interface for the CCalculation class. 
// Made by Gamsn in 10.26.2005 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_CALCULATION_H__AA32EE12_B5F4_455F_AFB3_C02717C012B1__INCLUDED_) 
#define AFX_CALCULATION_H__AA32EE12_B5F4_455F_AFB3_C02717C012B1__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class CCalculation   
{ 
public: 
	void Dec2Bin(CString *strExp); 
	void Dec2Oct(CString *strExp); 
	CCalculation(); 
	virtual ~CCalculation(); 
	bool m_bDegree; 
	int m_nOutputFlag;//=0 十进制输出;=1 十六进制输出;=2 八进制输出;=3 二进制输出 
	CString MainPro(CString strExp);		//*主处理函数* 
	void Dec2Hex(CString *strExp); 
private: 
	void Calcu(CString *strExp,int pos);	//*二元运算的预处理函数* 
	void Macro(CString *strExp);			//*常数宏代换* 
	void Oct2Dec(CString *strExp);			//*处理8进制数* 
	void Bin2Dec(CString *strExp);			//*处理2进制数* 
	void Hex2Dec(CString *strExp);			//*处理16进制数* 
	void MultiE(CString *strExp);			//*多元运算* 
	void MinusMinus(CString *strExp);		//*处理负负得正* 
	void DelBracket(CString *strExp);		//*用计算结果替换表达式* 
	bool SynRes(CString *strExp);			//*判断表达式是否合法* 
	CString ModiResult(CString strRes);		//*在格式上处理最后的计算结果* 
	CString NtoS(double d);					//*数字转字串* 
	CString SingleE(CString op,double dx);	//*一元运算* 
	CString TwoE(CString strExp);			//*二元运算* 
	CString opt1[6]; 
	CString opt[15]; 
	CString m_strConName[15]; 
	CString m_strConValue[15]; 
	CString m_strTmp; 
	bool IsDigital(CString str);			//*判断表达式中是否有函数或运算符* 
	int BraCheck(CString str);				//*计算左右括号的差值* 
	int LocateLBra(CString strExp);			//*定位最后一个左括号* 
	double StoN(CString str);				//*字串转数字* 
	char opt2[6]; 
protected: 
	 
}; 
 
#endif // !defined(AFX_CALCULATION_H__AA32EE12_B5F4_455F_AFB3_C02717C012B1__INCLUDED_)