WEB开发网
开发学院软件开发VC 任意数学表达式计算 阅读

任意数学表达式计算

 2009-04-15 20:03:45 来源:WEB开发网   
核心提示: 步骤1,3,任意数学表达式计算(2),4,5,无括号表达式的值voidGetSingleValue(CStringstr,double&result);//计算含有符号函数的,无括号的表达式voidGetSignFuncVal(CStringstr,double&result);//计算括

步骤1,3,4,5,6可以有单个函数实现,步骤2为一过程,可以分解为若干简单步骤,实现流程图如下:

任意数学表达式计算

任意数学表达式计算

具体函数如下:

//////////////////////////////////////////////////////
/*
基础函数 南京航空航天大学 能源与动力学院 庄三少tel:13512524413 09.3.17

*/
//由起始位置和终止位置得到表达式两者之间的内容
CString GetStrFromStartAndEnd(CString str,int start,int end);
//判断表达式中是否有括号
bool IsContainBracket(CString str);
//若存在括号,则获得最内层括号位置
void GetBracketPos(CString str,int *start,int *end);
//用一段字符代替两个位置之间的内容
CString ReplaceBetweenPos(CString toBeReplace,CString str,int start,int end);
//判断表达式中是否含有符号函数
bool IsContainSign(CString str);
//获得最内层符号函数类型,即符号函数中不存在符号函数,分别返回函数名的位置和参数扩号[]的位置
int GetSignStyle(CString str,int *sing_s,int *sign_e,int *p_s,int *p_e);
//获得参数表达式
CString GetParmString(CString str,int start,int end);
//如果是双参数的话,则分别得到每个参数的表达式
void GetParmTwo(CString str,int start,int end,CString *s1,CString *s2);
//判断是否存在加减乘除
bool IsJJCC(CString str); 
bool IsAddExist(CString str);//+
bool IsPulsExist(CString str);//-
bool IsTimesExist(CString str);//*
bool IsDivideExist(CString str);//chu
//达到加减乘除的两个参数
void GetJJCCTwoParm(CString str,int pos,CString *s1,CString *s2,int *p_start,int *p_end);
//若存在加减乘除的话,先判断符号类型,再获得加减乘除号的位置,输入具体体判别类型,将获得该符号从左向右的第一个位置
//调用判别函数后再调用该函数
int GetJJCCPos(CString str,CString style);
//得到加减乘除号的数目
int GetJJCCNum(CString str,CString name);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/************************************************************************/
/* 中间函数 */
/************************************************************************/
////计算无符号函数,无括号表达式的值
void GetSingleValue(CString str,double &result);
//计算含有符号函数的,无括号的表达式
void GetSignFuncVal(CString str,double &result);
//计算括号内容
void GetBracketResult(CString str,double &result);
////////计算步骤及结果存储为文件 result.txt
FILE *resultF;
///////////预处理函数,包括将大写字母转换为小写,检查表达式合法形
BOOL Cheak(CString &str);

上一页  1 2 3 4 5  下一页

Tags:任意 数学 表达式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接