当前位置:
文档之家› 基于顺序栈实现的四则算术表达式计算
基于顺序栈实现的四则算术表达式计算
1
概要详细
程序组织结构
排错程序
排错程序
1、遍历数组 2、括号匹配 3、条件判断“/” 4、条件判断“%”
1、记录出错索引 2、打印“^”标示
中序表达式转后缀表达式程序
1、操作数排入数组 2、操作符标识优先级入栈 3、操作符根据优先级出栈 排入数组
后缀表达式计算程序
1、操作数入栈 2、条件判断操作符 3、操作数出栈计算 4、计算结果入栈 5、判断栈长度为1出栈
2
概要详细
平台选择
用户普及度高,操作熟悉,易移植
简单直接,一直在学在用
功能熟悉,操作简便
3
目录
需求分析
Demand Analysis
概要详细
Outline&Detail
算法设计
Algorithm Design
编码测试
Encoding&Test
算法设计 1 2 3
算法统计
算式排错算法
中序转后缀 表达式算法
基于顺序栈实现的 四术算数表达式计算
指导老师:杜晓凤 汇报人:黄成旺
目录
需求分析
Demand Analysis
概要详细
Outline&Detail
算法设计
Algorithm Design
编码测试
Encoding&Test
目录
需求分析
Demand Analysis
概要详细
Outline&Detail
^
^
3
算法设计
中序表达式转后后缀表达式算法
puts(a);
3
+
(
3
+
2
*
3
)
\0
char ch[100];
3 op
3 level
2
3
*
+
+
\0
stack st; * + ( + 2 1 -1
1
4
算法设计
算式排错算法
char ch[100];
3
3
2
3
*
+
+
\0
stack numstack 9 + 3
3 6 2 3 9 12 3 3 6
12
6 9
+ *
32
5
目录
需求分析
Demand Analysis
概要详细
Outline&Detail
算法设计
Algorithm Design
编码测试
Encoding&Test
编码测试
容错测试:
1
编码测试
计算测试:
2
后话
1
后话
2
3
1、一个人做很累
2、一个人做很累
编码测试
Encoding&Test
概要详细
排错理
判断是否 缺少括号, 操作数是否 符合标准
基本处理流程
输入一则 四则运算, 可带括号, 可以是浮点 数
算式处理 排错处理
错误提示 算式输入
错误提示
发现错误 用“^”标 出位置
调用函数, 计算结果
正确计算
算式分析
算式修改
正确计算
算式修改
根据提示 重新输入算 式
后缀表达 式计算算法
1
算法设计
算式排错算法
puts(a); stack che;
3 ((
+
(
3
+
2
)
+
3
\0
puts(b); char c[100]={‘ ’}; c[i]='^';
3
+
(
3
+
2
+
3
\0
^
2
算法设计
算式排错算法
puts(a); stack che;
3 (
+
(
3
/
0
)
%
3.1
\0
c[i]='^';
3、一个人做很累
3
谢谢聆听!
Thanks for listening!
指导老师:杜晓凤
汇报人:黄成旺
算法设计
Algorithm Design
编码测试
Encoding&Test
需求分析
功能需求
(
%整数
+&-
*&/
浮点 运算
%
四 则 运 算
算 数 排 错
缺少括号
除数为0?
缺少运算 符
1
目录
需求分析
Demand Analysis
概要详细
Outline&Detail
算法设计
Algorithm Design