计算器文档重点分析.doc

问题描述:输入中缀式,进行加减乘除混合四则运算,同时可以进行正弦,余弦,log()对数计算以及ln()自然对数计算。 算法思路:对于加减乘除四则混合运算利用栈先将中缀式转化为后缀式,再对后缀式进行计算。正弦,余弦,log()对数计算以及ln()自然对数的计算都较为简单实现。 算法描述:以下主要写将中缀式转化为后缀式的过程以及计算的过程两个子函数 void Translate(char s[] , char e[])//将中缀式转化为后缀式 { Ch=s[]; While(ch!=’\0’) { Case ‘(’: 入栈; Case‘)’: 退栈直到遇到‘(’,并且将‘(’也出栈; 出栈元素放入e[] Case ‘+’: Case ‘-’: 退栈直到遇到‘(’,再将‘+’‘-’入栈; 出栈元素放入e[] Case ‘*’: Case ‘/’: 退栈直到遇见‘*’或‘/’再将‘*’‘/’入栈 出栈元素放入e[] Default 直接放入e[]中; } } float Compute(char a[]) //将后缀式进行计算 { while(a[i]!=\0) //依次扫描后缀表达式 { if(a[i]!= a[i]=0a[i]=9)//如果是数字 { 将a[]中的字符型转化为int 型; S.top++; S.data[S.top]=va

文档评论(0)

1亿VIP精品文档

相关文档