資源簡介
輸入的表達式字符串,不僅可包含"+-*/()"等四則運算符號,還可包含"sin,cos..."等三角和反三角函數。VC++代碼量極少,另辟捷徑,命人大開眼界!

代碼片段和文件信息
/////////////////////////////////////////////////////////////////////////
// 數學運算利用SQL語句求解
// 參數值:
// strArithmetic [in]要運算的算式
// pdResult [Out]運算后的結果
// 返回值:
// 成功為TRUE
// Author:?lasor
// Date:?2008-10-23
//////////////////////////////////////////////////////////////////////////
BOOL?ComputeArithmeticString(const?CString?&strArithmetic?double*?pdResult)
{
if(strArithmetic.IsEmpty())
{
return?TRUE;
}
static?CADORecordset?self_rec;
try
{
if(!self_rec.m_bDatabaseOpen)
{
if(!self_rec.ConnectDatabase(_T(“D:\\MyDatabase.mdb“))) //“D:\\MyDatabase.mdb“是任意建立的一個Access數據庫文件名
{
return?FALSE;
}
}
CString?strExecute;
strExecute.Format(_T(“SELECT?(%s)?AS?[ResultValue]“)strArithmetic);
_variant_t?varRecordAffected;
_RecordsetPtr?pRecordset?=?self_rec.m_pConnection->Execute((_bstr_t)strExecute&varRecordAffectedadCmdText);
_variant_t?varResult;
if(!pRecordset->adoEOF)
{
varResult?=?pRecordset->GetCollect(“ResultValue“);
}
pRecordset->Close();
if(varResult.vt?==?VT_EMPTY?||?varResult.vt?==?VT_NULL)
{
//strArithmetic.Empty();
}
else
{
varResult.ChangeType(VT_R8NULL);
*pdResult?=?varResult; //運算后的結果
}
return?TRUE;
}
catch(_com_error?e)
{
}
return?FALSE;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1351??2009-11-19?14:43??Arithmetic.c
- 上一篇:USB鍵盤驅動C++
- 下一篇:殷人昆C++數據結構課后習題答案
評論
共有 條評論