应用类模板求解中缀算术表达式
1.要求:完成标准中缀算术表达式求值运算。
2.中缀表达式由键盘输入,以回车键结束。如:3*((4+6)-(5-2)^3)
3.输入的中缀表达式符合以下要求:
(1) 中缀表达式长度不确定。
(2) 中缀表达式仅出现在一行输入行中。
(3) 中缀表达式中只包含 5 种 2 目运算符:+,-,*,/ ,^及两种优先级运算符“(”和“)”。
“^” 为指数运算,如:4^2=16。
(4) 中缀表达式中的运算数由{0,1,…,8,9}中的单个数字组成。
(5) 中缀表达式中不包含多余的空格。
(6) 中缀表达式在逻辑上和结构上如出现错误,程序应能提示错误。
4.你的程序应输出最终运算结果(至少精确到小数点后 2 位)。
5. 为确保你的程序的正确性,完备性,健壮性,请提交前自行设计相应的测试实例进行充
分的测试检查。
用 c++编写
最好能给出注释
谢谢!!
提问者: firzen1 - 实习生 一 级
其他回答‰‰‰‰共 1 条
刚刚才发现上午贴的程序有问题,不好意思,又做了修改,在 VC6.0 上调试通过:)
#include "iostream.h"
#include "stdlib.h"
#include "math.h"
#include "time.h"
#define TRUE 1
#define FALSE 0
#define ERROR -1
typedef int Status;
//用模板实现的链式结构堆栈类
template <class T>
class stack{
private:
struct link{
T data; //结点数据域
link *next; //下一结点指针
link(T Data,link* Next){//结构体构造函数
data=Data;
next=Next;
}
}*head; //堆栈顶指针
public:
stack(); //构造函数(初始化栈)
~stack(); //析构函数(销毁栈)
评论4