四则运算c++实现

上传人:飞*** 文档编号:44378480 上传时间:2018-06-09 格式:DOC 页数:10 大小:57.23KB
返回 下载 相关 举报
四则运算c++实现_第1页
第1页 / 共10页
四则运算c++实现_第2页
第2页 / 共10页
四则运算c++实现_第3页
第3页 / 共10页
四则运算c++实现_第4页
第4页 / 共10页
四则运算c++实现_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《四则运算c++实现》由会员分享,可在线阅读,更多相关《四则运算c++实现(10页珍藏版)》请在金锄头文库上搜索。

1、 1 1、需求分析需求分析1.利用二叉树后序遍历来实现表达式的转换,同时可以使用实验 3 的结果来求解后缀 表达式的值。 2.输入输出格式: 输入:在字符界面上输入一个中缀表达式,回车表示结束。 输出:如果该中缀表达式正确,那么在字符界面上输出其后缀表达式,其中后缀表达 式中两相邻操作数之间利用空格隔开;如果不正确,在字符界面上输出表达式错误提示。2、概要设计概要设计抽象数据类型抽象数据类型 为实现上述程序的功能,前序遍历输入,以后序遍历输出。 算法的基本思想算法的基本思想用一个字符串储存输入的二项式,一次读取各个字符。如果遇见数据,累乘后存入后 序遍历的数组当中(将字符型转换为整数类型) ;

2、如果遇见前括号,存入运算符栈中;如果 遇见后括号,将前括号及前括号之后的运算符全部弹出;如果遇见加减号,在运算符栈为 空或下一个为括号运算符时,运算符入栈,否则,将栈顶元素存入后序遍历的数组中,再 运算符入栈;如果遇见乘除号,在运算符栈为空或下一个为括号运算符时及栈内第一个元 素为乘号或除号时,运算符入栈,否则,将栈顶元素存入后序遍历的数组中,再运算符入 栈。程序的流程程序的流程 程序由三个模块组成: (1)输入模块:输入正确的四则运算表达式。 (2)计算模块:利用栈实现四则运算。 (3)输出模块:屏幕上显示后序遍历的结果。3、详细设计详细设计物理数据类型物理数据类型1、用数组存储输入的表达式

3、和输出的表达式。 2、用栈存储操作算法的具体步骤算法的具体步骤 2 求逆序遍历的算法postexpj=datatop_p; j+; top_p-;postexpj=0; cout=0 /*栈的抽象类的定义*/template class stack public:virtual bool isEmpty() = 0;virtual void push(const intvirtual int pop() = 0;virtual int top() = 0; ; 5 /*顺序栈类的定义*/template class seqStack:public stack public:seqStack(i

4、nt initSize = 10); /构造函数,默认栈的容量为 10bool isEmpty(); /判断栈是否为空void push(const int /进栈函数int pop(); /出栈函数int top(); /返回栈顶元素seqStack(); /析构函数/ private:int *data; /栈顶指针int maxSize; /栈的容量int top_p; /栈顶指针void resize(); /将栈的容量扩大一倍int trans(char exp);/四则运算 ;/*顺序栈类的实现*/seqStack:seqStack(int initSize) maxSize = initSize;data = new intmaxSize;top_p = -1;cout =0 sh=postexpk; k+;top_p+; datatop_p=d; sh=postexpk; k+; cout“The result is:“datatop_pendl;return datatop_p; 10 /*main 函数的实现*/ int main() seqStack a(10); cout“please input:“; char b10;cin.getline(b,100); a.trans(b); return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号