. . . .
程序实习报告书
起止日期: 2014 年 6月 23 日 至 2014 年 7月 4日
学 号: 班 级: 姓 名: 指导教师:
通信与电子工程学院 2014年 7月 4日
.下载可编辑.
. . . .
目 录
1. 需求分析……………………………………………2 1.1 程序的功能…………………………………………2 1.2 输入输出的要求……………………………………2 1.3 测试数据……………………………………………2 2. 概要设计……………………………………………3 3. 详细设计……………………………………………4 3.1 模块功能说明………………………………………4 4. 调试分析……………………………………………6 5. 核心源程序清单和执行结果………………………6
.下载可编辑.
. . . .
1.需求分析
1.1 程序的功能
本程序是一个计算器小程序,利用算符优先关系,实现对算术四则混合运算表达式的求值并输出结果。
1.2 输入输出的要求
输入的形式:算术表达式,以井号“#”结束。例如2*(3+4)#;
包含的运算符只能有'+' 、'-' 、'*' 、'/' '('、 ')';
输出的形式:运算结果,例如Answer is:14;
1.3 测试数据
第一组: 输入 3*(9-4)# 输出 Answer is:15
第二组: 输入140/(57+13)# 输出 Answer is:2
第三组: 输入 56*(12-10)# 输出 Answer is:112
.下载可编辑.
、. . . .
2.概要设计
初始化DATE、SIGN栈 向SIGN中压入“#” 用c=getchar()读字符 c!=’#’||SIGNgettop!=’#’ N Y c是否为操作符 Y 比较SIGNgettop和c的优先级 将字符数转换成整形数 ‘<’ 将c压入DATE 将c压入到SIGN栈 用c=getchar()读字符 ‘=’ 弹出SIGNgettop和c 用c=getchar()读字符c ‘>’ 弹出DATE栈顶元素a 弹出栈顶元素吧b 弹出SIGN栈顶元素d 运算a d b 将a d b压入DATE栈 N 结束运算 用c=getchar()读字符c
.下载可编辑.
. . . .
3.详细设计
主要部分详细流程:
(1)设置两个工作栈,分别存放操作数和运算结果
(2)判断字符的优先级
.下载可编辑.