|
拜托各位帮忙给解释一下程序设计思想和流程.非常感谢
#include<iostream.h>
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#define StackSize 100
typedef struct stack_num//有待改进
{
int top;
double a[StackSize];
}num_stack;
typedef struct stack_operation
{
int top;
char a[StackSize];
}opert;
bool empty(num_stack*p);//判断操作数栈是否为空
bool empty(opert*p);//判断操作数栈是否为空
char pop(opert*p);
double pop(num_stack*p);
void push(opert*p,char symb);
void push(num_stack*p,double num);
void PopAndTest(num_stack*p,double *x,bool*test);//.....
void PopAndTest(opert*p,char *x,bool*test);
void PushAndTest(num_stack*p,int x,bool*test);//....
void PushAndTest(opert*p,char x,bool*test);//以上为栈的实现
bool judge_of_inStr(char a[]);//判断输入的字符串是否为正确匹配形式
bool isoperand(char symb);//判断是否为操作数
bool prcd(char symb1,char symb2);//比较优先级
void postfix(char inStr[],char postStr[]);//将前缀表达式转化成后缀表达式
double counter(char postStr[]);//对后缀表达式运算
double oper(char symb,double op1,double op2);//对两个操作数进行symb运算
double get_number(char num_str[],int length,int);//将数字字符串转化成double型
int main()
{
char inStr[50],postStr[50];
double result;
int choice;
cout<<"请输入运算表达式 |
|