資源簡介
可以運行加、減、乘、除、乘方、開方、取模、小括號操作

代碼片段和文件信息
#include“stdio.h“
#include“stdlib.h“?
#include“string.h“?
#include“math.h“
#define?true?1?
#define?false?0?
#define?OPSETSIZE?10
typedef?int?Status;?
unsigned?char?Prior[10][10]?=
{?//?運算符優(yōu)先級表?
//?‘+‘?‘-‘?‘*‘?‘/‘?‘(‘?‘)‘?‘#‘?‘^‘?‘%‘
/*‘+‘*/‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘‘<‘?‘<‘‘<‘
/*‘-‘*/‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘‘<‘?‘<‘‘<‘
/*‘*‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘<‘?‘>‘‘<‘
/*‘/‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘<‘?‘>‘‘<‘
/*‘(‘*/‘<‘‘<‘‘<‘‘<‘‘<‘‘=‘‘?‘‘<‘?‘<‘‘<‘
/*‘)‘*/‘>‘‘>‘‘>‘‘>‘‘?‘‘>‘‘>‘‘>‘?‘>‘‘>‘
/*‘#‘*/‘<‘‘<‘‘<‘‘<‘‘<‘‘?‘‘=‘‘<‘?‘<‘‘<‘
/*‘^‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘>‘?‘>‘‘>‘
/*‘%‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘‘‘>?‘‘<‘
/*‘&‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘>?‘‘>?‘‘>‘
};?
typedef?struct?StackChar
{
char?c;?
struct?StackChar?*next;?
}SC;???????//StackChar類型的結(jié)點SC
typedef?struct?StackFloat
{
float?f;?
struct?StackFloat?*next;?
}SF;???????//StackFloat類型的結(jié)點SF
SC?*Push(SC?*schar?c)??????????//SC類型的指針Push,返回p
{
SC?*p=(SC*)malloc(sizeof(SC));?
p->c=c;?
p->next=s;?
return?p;?
}?
SF?*Push(SF?*sfloat?f)????????//SF類型的指針Push,返回p
{
SF?*p=(SF*)malloc(sizeof(SF));?
p->f=f;?
p->next=s;?
return?p;?
}?
SC?*Pop(SC?*s)????//SC類型的指針Pop
{
SC?*q=s;?
s=s->next;?
free(q);?
return?s;?
}?
SF?*Pop(SF?*s)??????//SF類型的指針Pop
{
SF?*q=s;?
s=s->next;?
free(q);?
return?s;?
}?
float?Operate(float?aunsigned?char?theta?float?b)??????//計算函數(shù)Operate
{
switch(theta)
{
case?‘+‘:?return?a+b;?
case?‘-‘:?return?a-b;?
case?‘*‘:?return?a*b;?
case?‘/‘:?return?a/b;?
case?‘^‘:?return?pow(ab);?
case?‘%‘:?return?fmod(ab);
//case?‘&‘:?return?sqrt(a);????????????//開方
default?:?return?0;?
}?
}?
char?OPSET[OPSETSIZE]={‘+‘‘-‘‘*‘‘/‘‘(‘‘)‘‘#‘‘^‘‘%‘‘&‘};?
Status?In(char?Testchar?*TestOp)
{
int?Find=false;?
for?(int?i=0;?i {
if(Test?==?TestOp[i])
Find=?true;?
}?
return?Find;?
}?
Status?ReturnOpOrd(char?opchar?*TestOp)
{?
for(int?i=0;?i {
if?(op?==?TestOp[i])
return?i;
}
}
char?precede(char?Aop?char?Bop)
{?
return?Prior[ReturnOpOrd(AopOPSET)][ReturnOpOrd(BopOPSET)];?
}?
float?Evaluateexpression(char*?Myexpression)
{?
//?算術(shù)表達式求值的算符優(yōu)先算法
//?設(shè)OPTR和OPND分別為運算符棧和運算數(shù)棧,OP為運算符集合?
SC?*OPTR=NULL;???????//?運算符棧,字符元素?
SF?*OPND=NULL;???????//?運算數(shù)棧,實數(shù)元素?
char?TempData[20];?
float?Dataab;?
char?theta*cDr[]={‘#‘‘\0‘};?
OPTR=Push(OPTR‘#‘);?
c=strcat(MyexpressionDr);?
strcpy(TempData“\0“);//字符串拷貝函數(shù)?
while?(*c!=?‘#‘?||?OPTR->c!=‘#‘)
{?
if?(!In(*c?OPSET))
{?
Dr[0]=*c;?
strcat(TempDataDr);???????????//字符串連接函數(shù)?
c++;?
if?(In(*c?OPSET))
{?
Data=atof(TempData);???????//字符串轉(zhuǎn)換函數(shù)(double)?
OPND=Push(OPND?Data);?
strcpy(TempData“\0“);?
}?
}?
else????//?不是運算符則進棧?
{
switch?(precede(OPTR->c?*c))
{
case?‘<‘:?//?棧頂元素優(yōu)先級低?
OPTR=Push(OPTR?*c);?
c++;?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????2445312??2017-12-06?11:24??簡單計算器\1.sdf
?????文件???????2560??2017-11-22?15:51??簡單計算器\1.suo
?????文件???????3221??2017-11-10?08:22??簡單計算器\1.vcxproj
?????文件????????946??2017-11-10?08:22??簡單計算器\1.vcxproj.filters
?????文件????????143??2017-11-10?08:19??簡單計算器\1.vcxproj.user
?????文件??????30720??2017-11-16?16:57??簡單計算器\Debug\1.exe
?????文件????????381??2017-11-16?16:57??簡單計算器\Debug\1.exe.intermediate.manifest
?????文件?????336896??2017-11-16?16:57??簡單計算器\Debug\1.ilk
?????文件?????????56??2017-11-22?15:21??簡單計算器\Debug\1.lastbuildstate
?????文件????????752??2017-11-22?15:21??簡單計算器\Debug\1.log
?????文件?????379904??2017-11-16?16:57??簡單計算器\Debug\1.pdb
?????文件????????713??2017-11-15?17:36??簡單計算器\Debug\1.vcxprojResolveAssemblyReference.cache
?????文件??????????0??2017-11-15?17:36??簡單計算器\Debug\1.write.1.tlog
?????文件???????1094??2017-11-16?16:57??簡單計算器\Debug\cl.command.1.tlog
?????文件??????13672??2017-11-16?16:57??簡單計算器\Debug\CL.read.1.tlog
?????文件????????618??2017-11-16?16:57??簡單計算器\Debug\CL.write.1.tlog
?????文件??????21793??2017-11-16?16:57??簡單計算器\Debug\homework.obj
?????文件???????2262??2017-11-16?16:57??簡單計算器\Debug\li
?????文件???????5022??2017-11-16?16:57??簡單計算器\Debug\li
?????文件???????1050??2017-11-16?16:57??簡單計算器\Debug\li
?????文件????????794??2017-11-16?16:57??簡單計算器\Debug\mt.command.1.tlog
?????文件???????1990??2017-11-16?16:57??簡單計算器\Debug\mt.read.1.tlog
?????文件????????466??2017-11-16?16:57??簡單計算器\Debug\mt.write.1.tlog
?????文件?????355328??2017-11-16?16:57??簡單計算器\Debug\vc100.idb
?????文件?????331776??2017-11-16?16:57??簡單計算器\Debug\vc100.pdb
?????文件???????4211??2017-11-16?16:57??簡單計算器\homework.cpp
?????文件????2555904??2017-11-22?15:15??簡單計算器\ipch\1-84d294df\1-14f67bdd.ipch
?????目錄??????????0??2017-11-22?15:15??簡單計算器\ipch\1-84d294df
?????目錄??????????0??2017-11-22?15:21??簡單計算器\Debug
?????目錄??????????0??2017-11-22?15:15??簡單計算器\ipch
............此處省略4個文件信息
評論
共有 條評論