设为首页 加入收藏

TOP

顺序栈 Stack(三)
2013-11-20 14:24:23 来源: 作者: 【 】 浏览:361
Tags:顺序   Stack

 

  【过程记录】

  实验截图:

  【结果分析】

  1.实验中我以课本中计算器的实验为例,实现并验证了顺序栈各种基本运算。

  2.计算器的实现:当用户输入“ ”时,程序将将即将输入的数压入栈中;当用户输入“+”“-”“*”“/”等基本运算符,弹出之前被压入的数字做相应的运算,并将结果压入栈中。当用户输入“=”时,弹出并显示上一步运算的结果。

  3.依照书中的基本思想,我实现了计算器的运算,并做了一些相应的改变:

  (1)将计算器作为一个类实现,从而将计算器中用以储存数据的栈作为私有数据成员,用以实现各种操作的函数作为保护成员函数更好的封装起来,对用户只留有命令接口。这样简化了主函数,也方便以后的使用。

  (2)由于计算器中运算数据存储在有一定限制的栈中,多次元素按之后可能会使栈状态变为full,所以我增加了名为clear()的函数可以清空栈。

  4.实验中我遇到的问题:

  (1)要注意栈“先进后出”的特点,所以容易弄错运算数的顺序(加法、乘法并没有影响,但减法和除法运算就可能出现问题),即栈中第一次弹出的数据是第二个操作数,第二次弹出的数据是第一个操作数。

  (2)编写计算器的构造函数时,发现数据成员command(char类型)并不能默认为‘’,但可以是空格‘ ’,之前并没有注意到这种区别。

  (3)验证时,我发现当输入“ ”之后,如果我输入的不是默认要输入的double类型,例如输入“a”等字母,程序没有报错,反而是出现死循环,对于这个问题我并没有解决。

        

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++和MATLAB混合编程 下一篇顺序队列 Queue

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)