c++ builder中有一字符串是一个计算式,如何计算答案

来源:百度知道 编辑:UC知道 时间:2024/06/23 12:29:53
AnsiString str; str=Edit1->Text;
Edit1->Text的内容是以个计算式,例如(11+2)*2-4;
式中只有数字+ - * /和括号
要计算此式结果并显示在Memo1->Text中

一个完整的表达式计算程序,用栈数据结构实现表达式求值
能够计算:加、减、乘、除、括号

要求表达式以 #结束

#define N 200
#include <ctype.h>
#include <string.h>

typedef struct{
int top;
double array[N];
}NumStack;
typedef struct{
int top;
char array[N];
}OpStack;
int Cint(char mychar){
return (mychar-48);
}
void PushNum(NumStack *numstack,double num){
numstack->top++;
numstack->array[numstack->top-1]=num;
}
void PopNum(NumStack *numstack,double *num){
*num=numstack->array[numstack->top-1];
numstack->top--;
}
void PushOp(OpStack *opstack,char op){
opstack->top++;
opstack->array[opstack->top-1]=op;
}
void PopOp(OpStack *opstack,char *op){
*op=opstack->array[opstack->top-1];
opstack->top--;
}
double Calc(double a,double b,char c){
double result;
switch(c){
case