算术表达式求值演示.docx
- 178****2826个人认证 |
- 2021-12-08 发布|
- 18.43 KB|
- 8页
算术表达式求值演示
算术表达式求值演示
PAGE / NUMPAGES
算术表达式求值演示
实习报告
题目:算术表达式求值演示。
一、 需求分析
以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。
利用教科书表给出的算符优先关系,实现对算数四则混合运算表达式的求值。
仿照教科书的例子在求值中运用符栈、运算数栈、输入字符和主要操作的变化过程。
程序执行的命令包括:
构造空栈;
判断符号优先级 ;
判断是否为七种运算符之一 ;
运算求解算术表达式。
测试数据
(1)3*(7-2);
(2)8;
(3)1+2+3+4;
(4)88-1*5;
(5)1024*4/8;
(6)(20+2)*(6/2);
(7)3-3-3;
(8)8/(9-9);
(9)2*(6+2*(3+6*(6+6)));
(10)(((6+6)*6+3)*2+6)*2;
二、概要设计 定 的抽象数据 型定 :
ADT Stack{
数据 象: D={ai |a i ∈CharSet,i=1,2, ?, n,n ≥0}
数据关系: R1={< a i -1 ,a i >| a i -1, a i ∈D,i=2, ?, n}
基本操作:
InitStack (&S)
操作 果:构造一个空 S。
GetTop (S ,&e)
初始条件: S 已存在。
操作 果:若 S 不空, 以 e 返回 元素。
Push(&S, e)
初始条件: S 已存在。
操作 果:在 S 的 插入新的 元素 e。
Pop(&S, &e)
初始条件: S 已存在。
操作 果: 除 S 的 元素,用 e 返回其 。
} ADT Stack 定运算表达式的抽象数据 型 :
ADT EvaluateExpression{
数据 象: D={ai | a i 数字及运算符, i=1,2,