1024. 分析四则运算表达式
最新推荐文章于 2023-01-02 11:33:25 发布

BigSnow233 于 2015-07-01 23:53:06 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
输入一个四则运算表达式(不含括号),按序输出其中的运算符和运算分量。
给出下面的基类框架
class Token
{
protected:
int NO;//编号
public:
virtual void display()=0;//打印记号
}
以Token为基类,构建Operator和Number类。
生成上述类并编写主函数,要求主函数中有一个基类Token指针数组,数组元素不超过9个。
Token *pt[9];
主函数根据输入的信息,相应建立Operator, Number类对象,对于Operator存储运算符,对于Number存储运算分量的值。
输入格式:每个测试用例占一行,相邻的运算分量(为整数)和运算符(为+、-、*、/)用一个空格分开,最后一行为A,表示输入的结束。
输出时,依次打印各个测试用例中的记号,依次输出该记号的序号,类型(NUMBER或OPERATOR)和值(对于运算分量,直接输出它的值,对于运算符,则转成英文简写,+简写为ADD,-简写为SUB, *简写为MUL, /简写为DIV)。
输入样例:
23 * 5 + 7 –2
9 + 6 / 3
A
输出样例:
1 NUMBER 23
2 OPERATOR MUL
3 NUMBER 5
4 OPERATOR ADD
5 NUMBER 7
6 OPERATOR SUB
7 NUMBER 2
1 NUMBER 9
2 OPERATOR ADD
3 NUMBER 6
4 OPERATOR DIV
5 NUMBER 3
来源
多态
#include<iostream>
#include<string.h>
using namespace std;
class Token
{
protected:
int NO;
public:
Token(int n):NO(n){
}
virtual void display()=0;
virtual~Token(){delete this;
}
};
class Operator:public Token
{
string p;
public:
Operator(int n,string p):Token(n),p(p){
}
virtual void display(){
cout<<NO<<" OPERATOR ";
if(p=="*")cout<<"MUL"<<endl;
if(p=="/")cout<<"DIV"<<endl;
if(p=="+")cout<<"ADD"<<endl;
if(p=="-")cout<<"SUB"<<endl;
}
~Operator(){delete this;
}
};
class Number:public Token
{
string num;
public:
Number(int n,string num):Token(n),num(num){
}
virtual void display(){
cout<<NO<<" NUMBER "<<num<<endl;
}
~Number(){delete this;
}
};
int main()
{
Token*pt[9];
string temp;
char end;
int i,j,k;
cin>>temp;
i=0;
while(temp!="A")
{
if(i%2==0)
pt[i]=new Number(i+1,temp);
else
pt[i]=new Operator(i+1,temp);
i++;
end=getchar();
if(end=='n')
j=i,i=0;
if(i==0)
{
for(i=0;i<j;i++)
pt[i]->display();
i=0;
}
cin>>temp;
}
}
相关知识
1024. 分析四则运算表达式
写出下列表达式的值,设 a=3 , b=4 , c=5 : 表达式 值 a+b&
检索表达式:主题:(宠物)*作者单位:(中国农业大学)*Date:
设有定义语句:int a=12;,则表达式a*=2+3的运算结果是
初中数学计算一定要写解:原式= 吗
如何用access计算四张扑克牌得出24点的概率
c语言中逗号运算符的作用
【如图,已知抛物线y=x2+bx+c与x轴交于A、B两点(A点在B点左侧),与y轴交于点C(0,
精彩不要停:优秀学生作品评选活动公告(第二、三批)
Python笔试题
原文链接: 1024. 分析四则运算表达式 https://m.mcbbbk.com/newsview161032.html
| 上一篇: 场景化×颠覆性创新=全光网新时代... | 下一篇: 合理饲喂狗狗的十大准则 |



