实验三算法表达式C语言实验报告.doc

实验三算法表达式C语言实验报告.doc

ID:48124833

大小:72.00 KB

页数:17页

时间:2020-01-21

实验三算法表达式C语言实验报告.doc_第1页
实验三算法表达式C语言实验报告.doc_第2页
实验三算法表达式C语言实验报告.doc_第3页
实验三算法表达式C语言实验报告.doc_第4页
实验三算法表达式C语言实验报告.doc_第5页
资源描述:

《实验三算法表达式C语言实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构实验实验项目三栈和队列的应用计算机科学与技术系0902班组长:雷耀阳组员:柴瑞东、李志鹏、张玲春日期:实验报告实验类型__综合设计__实验室软件实验室11.             实验题目求一个数学表达式的值:用户输入一个包含正整数、括号和四则运算符(“+”、“—”、“*”、“/”)的算术表达式,计算其结果。2.             需求分析首先置操作数栈为空栈,表达式起始符“#”为运算符栈底元素;依次读入表达式中每个字符,若是操数则进操作数栈,若是操作符则和操作符栈顶的运算符进行比较优先权后作相应的操作

2、,直到整个表达式求值完毕(即操作符栈顶元素和当前读入的字符均为“#”)3.             概要设计结点结构类型描述如下typedefstruct{ char*base,*top; intstacksize;}sqstack;函数关系:main()result()compute()face()op()4.             详细设计实现概要设计中定义的所有的数据类型,对每个操作给出伪码算法。对主程序和其他模块也都需要写出伪码算法。 #include#include#in

3、clude#include#include#defineN100doublenumStack[N]={0};intnumTop;charopStack[N];intopTop;intop(charch){if(ch=='+'

4、

5、ch=='-')return2;if(ch=='*'

6、

7、ch=='/')return3;if(ch=='(')return-1;return0;}doubleresult(doublenum1,charop,doublenum2){i

8、f(op=='+')returnnum1+num2;if(op=='-')returnnum1-num2;if(op=='*')returnnum1*num2;if(op=='/')returnnum1/num2;return0;}intcompute(charstr[]){doublenum=0;inti=0,j=1,k=1;intFlag=0;numTop=opTop=0;while(str[i]!=''

9、

10、opTop>0){if(str[i]>='0'&&str[i]<='9')if(Flag==0)num=

11、num*10+str[i]-'0';else{num+=(str[i]-'0')/(j*10.0);j*=10;}elseif(str[i]=='.')Flag=1;elseif(k==1&&str[i]=='-'&&(i==0

12、

13、op(str[i-1])))k=-1;else{if(i>0&&!op(str[i-1])&&str[i]!='('&&str[i-1]!=')'){numStack[numTop++]=num*k;num=0;j=1;Flag=0;k=1;}if(opTop==0

14、

15、str[i]=='('

16、)opStack[opTop++]=str[i];elseif(str[i]==')'){while(opTop>0&&opStack[--opTop]!='('){numStack[numTop-2]=result(numStack[numTop-2],opStack[opTop],numStack[numTop-1]);numTop--;}if(opStack[opTop]!='(')return0;}else{if(str[i]==''&&numTop==0)return0;while(opTop>0&&op

17、(str[i])<=op(opStack[opTop-1])){numStack[numTop-2]=result(numStack[numTop-2],opStack[--opTop],numStack[numTop-1]);numTop--;}if(str[i]!='')opStack[opTop++]=str[i];}}if(str[i]!='')i++;}if(numTop!=1

18、

19、opTop!=0)return0;return1;}voidface(){system("cls");printf("__

20、________________________________________________________________");printf("Savenumber(S)

21、Readnumber(R)

22、Clear(C)

23、Equal(E)

24、Quit(Q)");printf("-----------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。