帮我看看哪儿错了?谢谢了~~!

zzzzz_12345 2009-06-05 09:24:48
#include "stdafx.h"
#include <iostream>
#include <cctype>
#include <cstring>
using namespace std;

enum PRI{L_Bracket=0,plus=1,minus=1,multiply=2,division=2};

class Info{
public:
void display();
};

class counter
{
private:
void eval_exp1(const double &result);
int len;
public:
counter();
stack opt <char>;
opt.push('# ');
int len = infix.length();

fou(int i=0;i<len;i++){
char ch = infix.at(i);
if (isalnum(ch))// 数字直接输出
{
cout<<ch;
}
else // 操作符就判断并压栈
{
if (ch == '(') // 左括号直接压栈
opt.push(ch);
else if (ch == ')') // 有括号就弹栈到直到遇到左括号
{
ch = opt.top(); // 取得栈顶操作符
while(ch != '(') // 直到弹出左括号
{
OP(ch);
opt.pop();
ch = opt.top();
}
opt.pop(); // 弹出左括号
}
else
{
int thisPri = GetPri(ch); // 当前操作符优先级
char prevOpt = opt.top(); // 上一个操作符
int prevPri = GetPri(prevOpt); // 上一个操作符优先级
while (thisPri <= prevPri)
{ //输出栈中的操作符直到遇到比当前的操作符优先级更低的
OP(prevOpt);
opt.pop(); // 输出后就弹出
prevOpt = opt.top();
prevPri = GetPri(prevOpt);
}
opt.push(ch); //当前操作符压栈
}

}
}

char ch = opt.top(); // 表达式扫描完后把栈中剩余的操作符全部输出
while (ch != '#')
{
OP(ch);
opt.pop();
ch = opt.top();
} ;

void Info::display(){
cout<<"======================================================\n";
cout<<"====================简单计算器========================\n";
cout<<"======================================================\n";
cout<<"* 说明:可以进行+ - * \ ()*\n";
cout<<"* 然后回车 *\n";
cout<<"======================================================\n\n";
}

void counter::eval_exp1(const double &result);
{
register char op;
double temp;

eval_exp1(result);
while((op = *token) == '+' || op == '-' || op == '*' || op == '/' ) {

switch(op) {
case '-':
result = result - temp;
break;
case '+':
result = result + temp;
break;
case '*':
result = result * temp;
break;
case '/':
result = result / temp;
break;
}
}
}
...全文
21 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxh_dream 2009-06-05
  • 打赏
  • 举报
回复
帮你随便看了一下,程序的错误还真多呀
zzzzz_12345 2009-06-05
  • 打赏
  • 举报
回复
抱歉~~!
大家别看了,这个贴错了~~![/color]
lingyin55 2009-06-05
  • 打赏
  • 举报
回复
至少也要把提示什么错误信息说下吧
w0911h 2009-06-05
  • 打赏
  • 举报
回复
我怎么没看懂class counter里public后面那一堆是什么东西...
goodname 2009-06-05
  • 打赏
  • 举报
回复
程序太乱了,没法看。

有很多不符合语法的地方。

加些注释,明确说明意图。

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧