计算器程序怎么实现 可以输入max() min(),将其和别的数一起进行运算

计算器程序如何实现 可以输入max() min(),将其和别的数一起进行运算
如何实现  

可以输入max()   min(),将其和别的数一起进行运算

比如输入7+8*9-max(3+5,4-2)+7,也能给出结果

附计算器原程序,请在其上帮忙修改

#include   <iostream>
#include   <cstdlib>
#include   <cctype>
#include   <cstring>
using   namespace   std;

enum   types   {   DELIMITER   =   1,   VARIABLE,   NUMBER};//定义枚举类型把DELIMITER初试化为1后面的相应的是前面值+1

 

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

class   parser   {
    char   *exp_ptr;     //   定义一个指向表达式的指针
    char   token[80];   //   存储表达式中的字符变量
    char   tok_type;     //   存储具体是什么类型

    void   eval_exp2(double   &result);
    void   eval_exp3(double   &result);
    void   eval_exp4(double   &result);
    void   eval_exp5(double   &result);
    void   eval_exp6(double   &result);
    void   atom(double   &result);
    void   get_token();
    void   serror(int   error);
    int   isdelim(char   c);
public:
    parser();//类的构照函数
    double   eval_exp(char   *exp);
};

void   Info::displayInfo(){
  cout < < "==============================================================\n ";
  cout < < "====================这是一个计算器程序========================\n ";
  cout < < "==============================================================\n ";
  cout < < "*   说明:可以进行+   -   *   \   %   ^   操作您还可以用括号输入您的表达式   *\n ";
  cout < < "*   您输入表达式不需要输=号     例:您可输入(6+7)*5\\7+4   然后回车   *\n ";
  cout < < "==============================================================\n\n ";
  cout   < <   "\t\t输入点号(.)回车,结束程序运行\n\n ";
}

//   类构造函数的具体实现
parser::parser()
{
    exp_ptr   =   NULL;//把exp_ptr的指针初始化为空
}

//   方法eval_exp的具体实现过程
double   parser::eval_exp(char   *exp)
{
    double   result;

    exp_ptr   =   exp;//把传递过来的参数exp负给exp_ptr

    get_token();
    if(!*token)   {
        serror(2);   //输出没有任何表达式的错误信息
        return   0.0;
    }
    eval_exp2(result);
    if(*token)   serror(0);   //   last   token   must   be   null
    return   result;
}

//   两个变量字符是加或者减操作
void   parser::eval_exp2(double   &result)
{
    register   char   op;
    double   temp;

    eval_exp3(result);
    while((op   =   *token)   ==   '+ '   ||   op   ==   '- ')   {
        get_token();
        eval_exp3(temp);
        switch(op)   {
            case   '- ':
                result   =   result   -   temp;