首页| JavaScript| HTML/CSS| Matlab| PHP| Python| Java| C/C++/VC++| C#| ASP| 其他|
购买积分 购买会员 激活码充值

您现在的位置是:虫虫源码 > 其他 > 堆栈计算器

堆栈计算器

  • 资源大小:2.88 kB
  • 上传时间:2021-06-30
  • 下载次数:0次
  • 浏览次数:1次
  • 资源积分:1积分
  • 标      签: c

资 源 简 介

该文件为简单的多元计算器,目前还不能算浮点数,即除法也不能用。其他功能都可以。数据大小最大为999999。编程思路:在严蔚敏的数据结构书上的栈的基础上,再稍加一些细节。       为了避免使用两种数据类型的栈,写两种Push,Pop等函数,   我采取运算符和运算操作数栈都是字符型的。出现的问题及解决思路:    1.将一个数据全部压入栈,是按字符读取的,就不用转换,但     弹出的时候要知道弹多少位,所以用了一个数组,就是记录操作数    的位数的。这样才可以帮助我们弹出正确的数据。        2.弹出的数据要计算,又如何处理?由于我们记录了操作数的位数了,就可以先把字符转化成十进制数字,然后乘权相加把数据得出,计算的结果又要变为字符,再一个个压入栈。        3.整型数据化为字符,这里我先判断数据的位数,然后把数据的各个位置的单个数字取出变为字符压进栈。同时弹出的数据所对    应的数组内容就要更新为0,新压入的数据位数同时也要按顺序存到数组里。就是这点,不细致的话,很容易搞错。        4.更新数组的问题,每压入一个数据后,就会在判断接着的字符的语句块里给数组赋值,同时将标识置为0,等待为当前符号过后要压入的数据计数。在判断符号优先级里的第三种情况,一下子弹出两个数,数组对应就要置后面的为0,然后教前面的那个重置,载入   新计算出来的数据的位数。退出时,i++,从而下一个数组元素可以接  收新的数据的位数。        5.针对4的问题,有一种特殊情况要考虑:就是当读入右括号的  时候,会执行:Flag[i]=flag;假如该句是设置第二个数据的数据位。        flag

文 件 列 表

堆栈计算器.cpp

相 关 资 源

您 可 能 感 兴 趣 的

同 类 别 推 荐

VIP VIP