| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3397 人关注过本帖
标题:计算器表达式计算怎么加括号
只看楼主 加入收藏
zcs179895723
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-4-27
收藏
 问题点数:0 回复次数:5 
计算器表达式计算怎么加括号
orDBoEff.txt (2.32 KB) 计算器表达式计算怎么加括号


我写了个表达式计算,但是不能实现括号功能,哪位能帮我改改
搜索更多相关主题的帖子: 计算器 括号 表达 
2007-04-27 15:45
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
数据结构:栈

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-04-30 20:26
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
设置优先级.
把程序帖出来.

孔明,回来了.

倚天照海花无数,流水高山心自知。
2007-04-30 20:28
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
准确一点,用两个数组作为栈,一个存储数字,一个存储算符,按优先级先将表达式转换为后缀表达式,然后按优先级计算

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-04-30 20:33
zcs179895723
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-4-27
收藏
得分:0 

#include<iostream.h>
//---------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<<"请输入表达式,以“#”结束"<<endl;
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<m)
{ 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<<"结果:"<<B.flopop()<<endl;
}
这是我的程序

2007-05-07 12:52
zcs179895723
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-4-27
收藏
得分:0 
我就是怎么做的,我数字和字符间隔读入,但就是不知道怎么修改可以把括号读进去
2007-05-07 12:53
快速回复:计算器表达式计算怎么加括号
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012097 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved