• 大小: 1.47MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-31
  • 语言: 其他
  • 标签:

资源简介

常量表达式求解、变量表达式求解,加、减、乘、除、乘方、单目减等运算,包含实验报告

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include “evaluate.h“
#include “stack.h“
using namespace std;

///////////////////////////////////////////////////////
/*判断运算符优先级*/
int Eva:: swit(char op)
{
int mid;
switch (op)
{
case ‘+‘:
mid=0;
break;
case ‘-‘:
mid=1;
break;
case ‘*‘:
mid=2;
break;
case ‘/‘:
mid=3;
break;
case ‘(‘:
mid=4;
break;
case ‘)‘:
mid=5;
break;
case ‘#‘:
mid=6;
break;
case ‘^‘:
mid=7;
break;
}
return mid;
}

char Eva::Precede( char op char c )
{
int i
j;
char st[8][8]={
{‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘‘<‘}
{‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘‘<‘}
{‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘<‘}
{‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘<‘}
{‘<‘‘<‘‘<‘‘<‘‘<‘‘=‘‘0‘‘>‘}
{‘>‘‘>‘‘<‘‘0‘‘<‘‘>‘‘>‘‘<‘}
{‘<‘‘<‘‘<‘‘<‘‘<‘‘0‘‘=‘‘<‘}
{‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘<‘}
};

i=swit(op);
j=swit(c);

return st[i][j];
}

///////////////////////////////////////////////////////////////
/*计算两个是的基本运算*/
OperandType Eva::Operate( double a char op double b )
{
OperandType sum=0;
switch (op)
{
case ‘+‘:
sum=a+b;
break;
case ‘-‘:
sum=a-b;
break;
case ‘*‘:
sum=a*b;
break;
case ‘/‘:
sum=a/b;
break;
case ‘^‘:
sum=pow(ab);
default:
break;
}
return sum;
}

/////////////////////////////////////
/*判断一个字符是运算符还是数字*/
int Eva::In( char c )
{
switch (c)
{
case ‘+‘:
case ‘-‘:
case ‘*‘:
case ‘/‘:
case ‘(‘:
case ‘)‘:
case ‘^‘:
return 1;
break;
default:
return 0;
break;
}
}

//////////////////////////////////////////////////////
/*球表达式值的函数*/
OperandType Eva::Evaluateexpression()
{
linked_stack2 OPTR;//存放操作符的栈
linked_stack OPND;//存放操作数的栈
char op;
char c;
char x;
char k;
int i=0;
int om=1;
int tag2=0;
int flag=0;// 0表示运算中的除数不为零,1表示为零
OperandType n=0;
OperandType m=0;
char theta;
OperandType a;
OperandType b;
OperandType result;

InitStack(&OPTR);
Push(OPTR ‘#‘);

InitStack(&OPND);

while(cha[i] &&flag!=1)
{
c=cha[i];
if (In(c))
{
if (Simple(cha i))
{
tag2=1;
i++;
}
else
{
GetTop(OPTR &op);

switch (Precede(opc))
{
case ‘<‘:
Push(OPTR c);
i++;
break;
case ‘=‘:
Pop(OPTR&x);
i++;
break;
case ‘>‘:
Pop(OPTR &theta);
Pop(OPND &b);
Pop(OPND &a);

if (theta==‘/‘ && b==0)
{
flag=1;
cout<<‘\n‘<<“\t\t\t错误提示: 除数不能为零!“< return 10e-10;////
break;
}
else
{
Push(OPND Operate(a theta b));
break;
}

}
}//else
}
else 
{
if ((cha[i]>=‘0‘ && cha[i]<=‘9‘) )
{
int tag=0;//0表示小数点前的数,1表示小数点后的数
do 
{
if (cha[i]==‘.‘)
{
tag=1;
i++;
}
else;

if ((ch

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4493  2009-06-06 23:44  数据结构课程设计——算数表达式求解\cal\cal.dsp

     文件        531  2009-06-05 21:47  数据结构课程设计——算数表达式求解\cal\cal.dsw

     文件      66560  2009-06-21 13:56  数据结构课程设计——算数表达式求解\cal\cal.ncb

     文件      55808  2009-06-21 13:56  数据结构课程设计——算数表达式求解\cal\cal.opt

     文件       1290  2009-06-21 12:47  数据结构课程设计——算数表达式求解\cal\cal.plg

     文件     622634  2009-06-21 12:47  数据结构课程设计——算数表达式求解\cal\Debug\cal.exe

     文件     877904  2009-06-21 12:47  数据结构课程设计——算数表达式求解\cal\Debug\cal.ilk

     文件    2185860  2009-06-21 12:47  数据结构课程设计——算数表达式求解\cal\Debug\cal.pch

     文件    1410048  2009-06-21 12:47  数据结构课程设计——算数表达式求解\cal\Debug\cal.pdb

     文件     307798  2009-06-21 12:47  数据结构课程设计——算数表达式求解\cal\Debug\evaluate.obj

     文件    2034316  2009-06-08 08:15  数据结构课程设计——算数表达式求解\cal\Debug\evaluate.pch

     文件      25600  2009-06-08 08:15  数据结构课程设计——算数表达式求解\cal\Debug\evaluate.pdb

     文件      91065  2009-06-11 00:07  数据结构课程设计——算数表达式求解\cal\Debug\main.obj

     文件      40853  2009-06-09 10:39  数据结构课程设计——算数表达式求解\cal\Debug\stack.obj

     文件      99328  2009-06-21 13:12  数据结构课程设计——算数表达式求解\cal\Debug\vc60.idb

     文件     118784  2009-06-21 12:47  数据结构课程设计——算数表达式求解\cal\Debug\vc60.pdb

     文件       8600  2009-06-21 12:47  数据结构课程设计——算数表达式求解\cal\evaluate.cpp

     文件       3549  2009-06-08 08:15  数据结构课程设计——算数表达式求解\cal\evaluate.dsp

     文件        541  2009-06-08 08:15  数据结构课程设计——算数表达式求解\cal\evaluate.dsw

     文件        694  2009-06-18 20:20  数据结构课程设计——算数表达式求解\cal\evaluate.h

     文件      33792  2009-06-08 08:15  数据结构课程设计——算数表达式求解\cal\evaluate.ncb

     文件      48640  2009-06-08 08:15  数据结构课程设计——算数表达式求解\cal\evaluate.opt

     文件       1895  2009-06-08 08:15  数据结构课程设计——算数表达式求解\cal\evaluate.plg

     文件        694  2009-06-11 08:31  数据结构课程设计——算数表达式求解\cal\help.txt

     文件        763  2009-06-11 00:07  数据结构课程设计——算数表达式求解\cal\main.cpp

     文件       2115  2009-06-09 10:39  数据结构课程设计——算数表达式求解\cal\stack.cpp

     文件        824  2009-06-09 09:25  数据结构课程设计——算数表达式求解\cal\stack.h

     文件     282624  2009-06-24 21:35  数据结构课程设计——算数表达式求解\实验报告.doc

     目录          0  2009-06-24 23:06  数据结构课程设计——算数表达式求解\cal\Debug

     目录          0  2009-06-24 23:06  数据结构课程设计——算数表达式求解\cal

............此处省略4个文件信息

评论

共有 条评论

相关资源