资源简介
可以运行加、减、乘、除、乘方、开方、取模、小括号操作

代码片段和文件信息
#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] =
{ // 运算符优先级表
// ‘+‘ ‘-‘ ‘*‘ ‘/‘ ‘(‘ ‘)‘ ‘#‘ ‘^‘ ‘%‘
/*‘+‘*/‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘‘<‘ ‘<‘‘<‘
/*‘-‘*/‘>‘‘>‘‘<‘‘<‘‘<‘‘>‘‘>‘‘<‘ ‘<‘‘<‘
/*‘*‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘<‘ ‘>‘‘<‘
/*‘/‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘<‘ ‘>‘‘<‘
/*‘(‘*/‘<‘‘<‘‘<‘‘<‘‘<‘‘=‘‘ ‘‘<‘ ‘<‘‘<‘
/*‘)‘*/‘>‘‘>‘‘>‘‘>‘‘ ‘‘>‘‘>‘‘>‘ ‘>‘‘>‘
/*‘#‘*/‘<‘‘<‘‘<‘‘<‘‘<‘‘ ‘‘=‘‘<‘ ‘<‘‘<‘
/*‘^‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘>‘ ‘>‘‘>‘
/*‘%‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘< ‘‘> ‘‘<‘
/*‘&‘*/‘>‘‘>‘‘>‘‘>‘‘<‘‘>‘‘>‘‘> ‘‘> ‘‘>‘
};
typedef struct StackChar
{
char c;
struct StackChar *next;
}SC; //StackChar类型的结点SC
typedef struct StackFloat
{
float f;
struct StackFloat *next;
}SF; //StackFloat类型的结点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) //计算函数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< OPSETSIZE; i++)
{
if(Test == TestOp[i])
Find= true;
}
return Find;
}
Status ReturnOpOrd(char opchar *TestOp)
{
for(int i=0; i< OPSETSIZE; i++)
{
if (op == TestOp[i])
return i;
}
}
char precede(char Aop char Bop)
{
return Prior[ReturnOpOrd(AopOPSET)][ReturnOpOrd(BopOPSET)];
}
float Evaluateexpression(char* Myexpression)
{
// 算术表达式求值的算符优先算法
// 设OPTR和OPND分别为运算符栈和运算数栈,OP为运算符集合
SC *OPTR=NULL; // 运算符栈,字符元素
SF *OPND=NULL; // 运算数栈,实数元素
char TempData[20];
float Dataab;
char theta*cDr[]={‘#‘‘\0‘};
OPTR=Push(OPTR‘#‘);
c=strcat(MyexpressionDr);
strcpy(TempData“\0“);//字符串拷贝函数
while (*c!= ‘#‘ || OPTR->c!=‘#‘)
{
if (!In(*c OPSET))
{
Dr[0]=*c;
strcat(TempDataDr); //字符串连接函数
c++;
if (In(*c OPSET))
{
Data=atof(TempData); //字符串转换函数(double)
OPND=Push(OPND Data);
strcpy(TempData“\0“);
}
}
else // 不是运算符则进栈
{
switch (precede(OPTR->c *c))
{
case ‘<‘: // 栈顶元素优先级低
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个文件信息
相关资源
- c++ 多功能计算器
- C语言课设计算器
- 基于51单片机的简易计算器
- 多功能计算器实现C++代码以及代码详
- C++简单计算器的实现
- C++版计算器带括号dos版本
- VC++课程设计 计算器
- VC仿Xp计算器
- VS2008 MFC简易计算器
- MFC登录注册系统C++
- 数据结构课程设计,C++计算器MFC
- MFC计算器编程,可视化,含详细实现
- MFC实现简单计算器支持加减乘除和括
- VC++ 对话框 滚轮 计算器
- C++课程设计计算器MFC
- 多功能计算器 vc++ mfc
- vc60写的四则混合运算计算器
- C++中,用mfc做的可视化的计算器程序
- mfc简单四则运算计算器
- VC++科学计算器源代码
- VC计算器 用VC++设计一个计算器,功能
- MFC表达式计算器
- 基于循环双向链表的大整数计算器c
- VC计算器,完整的案例,适合MFC和VC
- 个人所得税计算器c语言
- MFC基于逆波兰算法的四则运算计算器
- C++ MFC 简单计算器完善+注释
- C语言在vc下编写的Windows窗口小程序
- 教学工作量计算器
- VC++实现的计算器,用MFC实现界面操作
评论
共有 条评论