1 / 3
文档名称:

简易计算器栈与队列实验报告.docx

格式:docx   大小:14KB   页数:3页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

简易计算器栈与队列实验报告.docx

上传人:春天的小花 2022/7/26 文件大小:14 KB

下载得到文件列表

简易计算器栈与队列实验报告.docx

相关文档

文档介绍

文档介绍:一. ( 1)问题描绘
经过模拟一个简单的计算器来进行 +、- 、*、/ 、%、^(乘方)等运算,从键盘上输入一算术表达式(一般为中缀表达式) ,计算出表达式的值。
2)基本要求
编写程序,要求可对一实数算术表达式进行
一. ( 1)问题描绘
经过模拟一个简单的计算器来进行 +、- 、*、/ 、%、^(乘方)等运算,从键盘上输入一算术表达式(一般为中缀表达式) ,计算出表达式的值。
2)基本要求
编写程序,要求可对一实数算术表达式进行简单的数学运算。能够辨别带加减乘除等运算符及括号的中缀表达式。
依据四则运算规则,求表达式的值。一般规则以下:
1)先括号内,再括号外。
2)先乘方,再乘除,后加减。
同级运算从左到右次序履行。
c.如表达式有误,应给出相应的提示信息。
(3)数据结构与算法剖析
解决表达式求值问题的方法之一是: 第一步将中缀表达式变换为后缀表达式, 第二步按后缀表达式求值。解题时能够联合字符串的有关知识。
4)测试
+5+*=
. ( 1)问题剖析:
计算机要计算一个式子, 不可以像我们同样计算, 它需要把表达式由中缀表达式变换成后缀
表达式,即逆波兰表达式。
将一般中缀表达式变换为逆波兰表达式有以下变换过程:
第一结构一个运算符栈,此运算符在栈内依据越往栈顶优先级越高的原则。
读入一个用中缀表示的简单算术表达式, 为方便起见 , 设该简单算术表达式的右端多加上了优先级最低的特别符号“ =”。
从左至右扫描该算术表达式,从第一个字符开始判断,假如该字符是数字,则剖析到该数字串的结束并将该数字串直接输出。
假如不是数字,该字符则是运算符,此时需比较优先关系。
做法以下: 将该字符与运算符栈顶的运算符的优先关系对比较。 假如, 该字符优先关系高
于此运算符栈顶的运算符, 则将该运算符入栈。 若是不是的话, 则将栈顶的运算符从栈中弹出,直到栈顶运算符的优先级低于目前运算符,将该字符入栈。
重复上述操作 (3)-(4) 直至扫描完好个简单算术表达式,确立全部字符都获得正确办理,我们便能够将中缀式表示的简单算术表达式转变为逆波兰表示的简单算术表达式。
2)问题实现及代码。
菜单函数:使用 switch 函数依据输入的数字选择能否进入计算器
检测非法输入函数:
双目运算符定义函数:达成对 +, - , *, /,^ 的定义:
判断运算符的优先级,决定是压栈或许弹栈运用到计算中:
括号般配检测函数:
运算栈:分为运算符栈和运算数栈:
算式计算函数(最重点函数) :用于对用户输入的算式进行计算,给出最后结果:
三. 程序运转演示:
括号检测:
非法输入检测:
.MFC 界面介绍 .
我们不知足于 DC限制的黑框框界面,因此我们运用了 MFC界面。
1) 界面初步简介:
2) 对