資源簡介
C++算術(shù)表達(dá)式求值(支持函數(shù))
sin cos tan asin acos atan log sqrt
cos(sin(sqrt(100*sqrt(100*10^2))))*(1.0e+5)/(1.0e-5)
= 8.74513e+009

代碼片段和文件信息
#include?“stdafx.h“
#include?“Arithmetic.h“
#include?“deelx.hpp“
CArithmetic::CArithmetic(void)
:?result(0)?left_result(0)
?right_result(0)?oper(TEXT(‘\0‘))
?left_child(NULL)?right_child(NULL)
?parent(NULL)
{
}
CArithmetic::CArithmetic(TCHAR?choperator?const?TCHAR?*pFuncExp?CArithmetic?*left?CArithmetic?*right)
:?result(0)?left_result(0)
?right_result(0)?oper(TEXT(‘\0‘))
?left_child(NULL)?right_child(NULL)
?parent(NULL)
{
this->oper?=?choperator;
funcExp?=?pFuncExp;
left_child?=?left;
right_child?=?right;
}
CArithmetic::CArithmetic(double?uresult?const?TCHAR?*pFuncExp)
:?result(0)?left_result(0)
?right_result(0)?oper(TEXT(‘\0‘))
?left_child(NULL)?right_child(NULL)
?parent(NULL)
{
this->result?=?uresult;
funcExp?=?pFuncExp;
}
CArithmetic::~CArithmetic(void)
{
try
{
if?(left_child?!=?NULL)
{
delete?left_child;
}
if?(right_child?!=?NULL)
{
delete?right_child;
}
}
catch?(...)
{?}
parent?=?NULL;
}
double?CArithmetic::GetResult()
{
left_result?=?0;
right_result?=?0;
if?(left_child?!=?NULL?&&?right_child?!=?NULL)
{
left_result?=?left_child->GetResult();
right_result?=?right_child->GetResult();
switch?(oper)
{
case?TEXT(‘+‘):
result?=?left_result?+?right_result;
break;
case?TEXT(‘-‘):
result?=?left_result?-?right_result;
break;
case?TEXT(‘*‘):
result?=?left_result?*?right_result;
break;
case?TEXT(‘/‘):
if?(right_result?!=?0)
result?=?left_result?/?right_result;
else
result?=?0xFFFFFFFF;
break;
case?TEXT(‘^‘):
result?=?pow(left_result?right_result);
break;
default:
result?=?0;
break;
}
}
basic_string?funcExpTmp?=?funcExp;
Function(funcExpTmp);
return?result;
}
void?CArithmetic::Output(_ostream_type?&os)
{
if?(left_child?!=?NULL?&&?right_child?!=?NULL)
{
os?< left_child->Output(os);
os?< right_child->Output(os);
os?< }
else
{
os?< }
}
double?CArithmetic::Function(?basic_string?&funcExp?)
{
if?(funcExp.empty())
{
return?result;
}
if?(funcExp.find(TEXT(“sin“))?==?0)
{
result?=?sin(result);
funcExp?=?funcExp.substr(3);
}
else?if?(funcExp.find(TEXT(“cos“))?==?0)
{
result?=?cos(result);
funcExp?=?funcExp.substr(3);
}
else?if?(funcExp.find(TEXT(“tan“))?==?0)
{
result?=?tan(result);
funcExp?=?funcExp.substr(3);
}
else?if?(funcExp.find(TEXT(“asin“))?==?0)
{
result?=?asin(result);
funcExp?=?funcExp.substr(4);
}
else?if?(funcExp.find(TEXT(“acos“))?==?0)
{
result?=?acos(result);
funcExp?=?funcExp.substr(4);
}
else?if?(funcExp.find(TEXT(“atan“))?==?0)
{
result?=?atan(result);
funcExp?=?funcExp.substr(4);
}
else?if?(funcExp.find(TEXT(“l(fā)og“))?==?0)
{
result?=?log(result);
funcExp?=?funcExp.substr(3);
}
else?if?(funcExp.find(TEXT(“sqrt“))?==?0)
{
resu
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????13162??2014-05-16?17:32??Calculator\Calculator\Arithmetic.cpp
?????文件???????2990??2014-05-16?16:51??Calculator\Calculator\Arithmetic.h
?????文件????????733??2014-05-16?17:36??Calculator\Calculator\Calculator.cpp
?????文件???????4687??2013-11-12?16:20??Calculator\Calculator\Calculator.vcproj
?????文件?????880529??2014-05-16?17:32??Calculator\Calculator\Debug\Arithmetic.obj
?????文件???????6850??2014-05-16?17:36??Calculator\Calculator\Debug\BuildLog.htm
?????文件????????405??2014-05-16?13:00??Calculator\Calculator\Debug\Calculator.exe.em
?????文件????????472??2014-05-16?13:00??Calculator\Calculator\Debug\Calculator.exe.em
?????文件????????387??2014-05-16?17:36??Calculator\Calculator\Debug\Calculator.exe.intermediate.manifest
?????文件??????67466??2014-05-16?17:36??Calculator\Calculator\Debug\Calculator.obj
?????文件????1048576??2014-05-16?13:00??Calculator\Calculator\Debug\Calculator.pch
?????文件?????????65??2014-05-16?17:36??Calculator\Calculator\Debug\mt.dep
?????文件??????10859??2014-05-16?13:00??Calculator\Calculator\Debug\stdafx.obj
?????文件?????527360??2014-05-16?17:36??Calculator\Calculator\Debug\vc80.idb
?????文件?????413696??2014-05-16?17:36??Calculator\Calculator\Debug\vc80.pdb
?????文件??????98132??2012-11-14?17:21??Calculator\Calculator\deelx.hpp
?????文件????????968??2013-11-12?16:19??Calculator\Calculator\ReadMe.txt
?????文件????????215??2013-11-12?16:19??Calculator\Calculator\stdafx.cpp
?????文件????????374??2013-11-12?16:45??Calculator\Calculator\stdafx.h
?????文件????????895??2013-11-12?16:19??Calculator\Calculator.sln
?????目錄??????????0??2014-05-16?17:36??Calculator\Calculator\Debug
?????目錄??????????0??2014-05-16?17:36??Calculator\Calculator
?????目錄??????????0??2014-05-16?16:51??Calculator
-----------?---------??----------?-----??----
??????????????3078821????????????????????23
評論
共有 條評論