C语言计算器小程序(源代码+实习报告).doc

C语言计算器小程序(源代码+实习报告).doc

ID:58083514

大小:75.00 KB

页数:12页

时间:2020-04-10

C语言计算器小程序(源代码+实习报告).doc_第1页
C语言计算器小程序(源代码+实习报告).doc_第2页
C语言计算器小程序(源代码+实习报告).doc_第3页
C语言计算器小程序(源代码+实习报告).doc_第4页
C语言计算器小程序(源代码+实习报告).doc_第5页
资源描述:

《C语言计算器小程序(源代码+实习报告).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、....程序实习报告书起止日期:2014年6月23日至2014年7月4日学号:班级:姓名:指导教师:通信与电子工程学院2014年7月4日.下载可编辑.....目录1.需求分析……………………………………………21.1程序的功能…………………………………………21.2输入输出的要求……………………………………21.3测试数据……………………………………………22.概要设计……………………………………………33.详细设计……………………………………………43.1模块功能说明………………………………………44.调试分析…………

2、…………………………………65.核心源程序清单和执行结果………………………6.下载可编辑.....1.需求分析1.1程序的功能本程序是一个计算器小程序,利用算符优先关系,实现对算术四则混合运算表达式的求值并输出结果。1.2输入输出的要求输入的形式:算术表达式,以井号“#”结束。例如2*(3+4)#;包含的运算符只能有'+'、'-'、'*'、'/'、'('、')';输出的形式:运算结果,例如Answeris:14;1.3测试数据第一组:输入3*(9-4)#输出Answeris:15第二组:输入140/(57+13)#输出A

3、nsweris:2第三组:输入56*(12-10)#输出Answeris:112.下载可编辑.....2.概要设计.下载可编辑.....向SIGN中压入“#”用c=getchar()读字符c!=’#’

4、

5、SIGNgettop!=’#’Nc是否为操作符YN将字符数转换成整形数将c压入DATE用c=getchar()读字符cY结束运算比较SIGNgettop和c的优先级‘<’‘=’‘>’将c压入到SIGN栈用c=getchar()读字符弹出SIGNgettop和c用c=getchar()读字符c弹出DATE栈顶元素a弹出栈顶

6、元素吧b弹出SIGN栈顶元素d运算adb将adb压入DATE栈初始化DATE、SIGN栈.下载可编辑.....3.详细设计主要部分详细流程:(1)设置两个工作栈,分别存放操作数和运算结果(2)判断字符的优先级.下载可编辑.....4.调试分析错误提示1:错误原因:在中文输入法下输入的“;”,导致程序不能识别。调试方法:调到英文输入法下输入即可。错误提示2:.下载可编辑.....错误原因:在Init_OPND,Init_OPTR后边都忘加了“&”符号,导致程序不识别。调试方法:在Init_OPND,Init_OPTR后边加

7、上“&”即可。4.核心源程序清单和执行结果全部源代码如下:#include#include#defineMAX100typedefstruct/*定义一个栈存放运算数*/{inta[MAX];inttop;}OPND;typedefstruct/*定义一个栈存放运算符*/{chara[MAX];inttop;}OPTR;voidInit_OPND(OPND*s)/*初始化运算数栈*/{s->top=0;}voidInit_OPTR(OPTR*s)/*初始化运算符栈*/{s->top=

8、0;}voidPush_OPND(OPND*s,intx)/*压入一个运算数*/{s->top++;s->a[s->top]=x;}voidPush_OPTR(OPTR*s,charx)/*压入一个运算符*/{.下载可编辑.....s->top++;s->a[s->top]=x;}intPop_OPND(OPND*s)/*取出一个运算数*/{intx;x=s->a[s->top];s->top--;returnx;}charPop_OPTR(OPTR*s)/*取出一个运算符*/{charx;x=s->a[s->top];

9、s->top--;returnx;}intGetTop_OPND(OPND*s)/*取栈顶运算数*/{return(s->a[s->top]);}charGetTop_OPTR(OPTR*s)/*取栈顶运算符*/{return(s->a[s->top]);}intIsOpr(charc)/*判断输入字符是否为运算符*/{if(c=='+'

10、

11、c=='-'

12、

13、c=='*'

14、

15、c=='/'

16、

17、c=='('

18、

19、c==')'

20、

21、c=='#')return1;elsereturn0;}charPrecede(chars,charc

22、)/*判断字符的优先级*/{switch(s){case'+':case'-':{if(c=='+'

23、

24、c=='-')return'>';elseif(c=='*'

25、

26、c=='/')return'<';elseif(c=='(')return'<';elseif(c==')')return'>';else.下载可编辑

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

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

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