c语言计算器程序可以加括号,计算器表达式计算怎么加括号

#include

//---------class numstack------

class numstack

{private:

int *data;

int top;

public:

numstack();

~numstack();

int numstackempty();

void numpush(int);

int numpop();

int numgettop();

int numtop();

};

//--------class flostack------

class flostack

{private:

float *data;

int top;

public:

flostack();

~flostack();

void flopush(float);

float flopop();

int flogettop();

float flotop();

};

//--------class numstack------

numstack::numstack()

{

data=new int[31];

top=-1;

}

numstack::~numstack()

{

delete data;

}

int numstack::numstackempty()

{

if(top==-1) return 1;

else return 0;

}

void numstack::numpush(int i)

{

if(top==30) top=-1;

top++;

data[top]=i;

}

int numstack::numpop()

{

top--;

return data[top+1];

}

int numstack::numgettop()

{ return top; }

int numstack::numtop()

{ return data[top];}

//------------class flostack-----

flostack::flostack()

{

data=new float[31];

top=-1;

}

flostack::~flostack()

{

delete data;

}

void flostack::flopush(float i)

{

if(top==30) top=-1;

top++;

data[top]=i;

}

float flostack::flopop()

{

top--;

return data[top+1];

}

int flostack::flogettop()

{ return top; }

float flostack::flotop()

{ return data[top];}

//----------------------------------------

void main()

{ flostack B;

numstack zhi;

int n,m,cou=0,v;

float i,a,b,an;

char c;

cout<

zhi.numpush(0);

cin>>i>>c;

while(c!='#')

{ B.flopush(i);

switch(c)

{ case '+': n=2; break;

case '-': n=3; break;

case '*': n=4; break;

case '/': n=5; break;

}

m=zhi.numtop();

if(n>=m)

{ zhi.numpush(n); }

while(n

{ b=B.flopop();

a=B.flopop();

v=zhi.numpop();

switch(v)

{ case 2: an=a+b; break;

case 3: an=a-b; break;

case 4: an=a*b; break;

case 5: an=a/b; break;

}

B.flopush(an);

m=zhi.numtop();

cou++;

}

if(cou!=0)

{ zhi.numpush(n); }

cin>>i>>c;

}

B.flopush(i);

while(zhi.numtop()!=0)

{ b=B.flopop();

a=B.flopop();

m=zhi.numpop();

switch(m)

{ case 2: an=a+b; break;

case 3: an=a-b; break;

case 4: an=a*b; break;

case 5: an=a/b; break;

}

B.flopush(an);

}

cout<

}

这是我的程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值