- 37
- 0
- 约1.2万字
- 约 16页
- 2020-08-03 发布于河北
- 举报
带括号的算术表达式求值
PAGE16 / NUMPAGES16
四川大学
数据结构与算法分析实验报告
实验名称 :带括号的算术表达式求值
指导老师 :________孙界平________
学 院 :_______软件学院_______
专 业 :_______软件工程_______
姓 名 :________马 健________
学 号 :_____2013141463026____
班 级 :________5 班________
日 期 :___2014年10月24日___
目录
TOC \o 1-3 \h \z \u
一 实验题目 3
二 实验目的和要求 3
三 实验环境 3
四 算法描述 3
五 源程序清单 附录
六 运行结果 6
七 实验运行情况分析 7
一、实验题目:
带括号的算术表达式求值
二、实验目的和要求:
采用算符优先数算法,能正确求值表达式;
熟练掌握栈的应用;
熟练掌握计算机系统的基本操作方法,了解如何编辑、编译、链接和运行一个C程序;
上机调试程序,掌握查错、排错使程序能正确运行。
三、实验的环境:
硬件环境:
联想 笔记本电脑
软件环境:
操作系统: windows 7 旗舰版
编译软件:Visual C++ 6.0
四、算法描述:
否开始
否
开始
判断表达式是否正确
从键盘读入算术表
达式存入单链表中
是
用栈计算显示算数表达式
退出程序
是
是否继续计算?
显示错误信息
否
判断表达式是否正确
判断表达式是否正确
文字解释:
用户从键盘读入算术中缀表达式,以”=”结尾;
程序判断用户输入表达式是否正确;
若表达式正确,则用栈计算算术表达式;
打印输出计算过程和最终结果;
程序询问用户是否继续计算;
若继续,则执行第1步;若否定,则退出程序
若表达式错误,则打印错误信息,提示用户重新输入
返回第1步;
函数及结构说明:
结构体:
1) 存储算数表达式的单链表:
struct Expression{
char sign;
struct Expression *next;
};
2) 操作符和操作数栈:
typedef struct{
char *top;
char *bottom;
int stack_size;
}Stack;
构造函数:
1) 栈相关操作函数:
= 1 \* GB3 ① 初始化空栈 int StackCreate(Stack *s);
= 2 \* GB3 ② 入栈操作 int PUSH(Stack *s, char c);
= 3 \* GB3 ③ 出栈操作 int POP(Stack *s, char c);
= 4 \* GB3 ④ 获取栈顶元素 char GetTop(Stack *s);
2) 计算相关操作函数:
= 1 \* GB3 ①利用栈计算算术表达式 int Calculate(struct Expression *exp);
= 2 \* GB3 ②子式的值的计算 int Count(char num1, char sign, char num2);
= 3 \* GB3 ③判断字符是否为运算符 int IsOpOrNum(char c);
= 4 \* GB3 ④判断运算符优先级 char JudgeLevel(char c1, char c2);
= 5 \* GB3 ⑤判断表达式正确性 int IsExpresiion(struct Expression *exp);
= 6 \* GB3 ⑥输出计算结果 void PrintResult(struct Expression *exp,int result);
3) 算术表达式输入函数:
= 1 \* GB3 ①键盘读入存于单链表 struct Expression *GetExp();
符号2构造
符号2
符号1比较
符号1
比较
+
-
*
/
(
)
=(#)
+
-
*
/
(
=
)
=(#)
=
五、源程序清单
见附录
六、运行结果
测试表
本次测试采用用户从键盘输入算数表达式,共进行16组测试
序号
测试功能
测试内容
输入项
预期输出
实际输出
结果
1
基本计算操作
单括号运算
2*(3+4)+5*3=
29
29
通过
2
基本计算操作
多括号运算
3+((4+3)*6)/3=
17
17
通过
3
基本计算操作
不能除整运算
6*(2+(3/2))=
21
18
有误差
4
基本计算操作
不能除整运算
(1+2+3)/4=
1.5
1
有误差
5
式子正
您可能关注的文档
最近下载
- 2026年湖南高速铁路职业技术学院单招职业适应性测试题库参考答案详解.docx VIP
- 《温室气体 产品碳足迹量化方法与要求 纸包装制品》.pdf VIP
- 智能座舱系统调试与测试课件 3汽车安全系统.pptx VIP
- (统编2026新教材)二年级道法下册第1课《身心健康很重要》课件.pptx
- 建筑工地劳资员合同协议.docx VIP
- 2025年民主生活会对照检查材料(分管办公室及后勤工作领导).pdf VIP
- 小学科学新苏教版二年级下册1.2 天气的影响 教学课件 (2026春).pptx VIP
- 邮件安全意识培训PPT(钓鱼篇).pptx VIP
- 第六章 婴幼儿粗大运动发育.pptx
- 钢筋优化技术创效手册2022.docx VIP
原创力文档

文档评论(0)