资源简介
和数据结构数上的要求一样.作业和课程设计的的要求都达到,有注西,包你满意(修正版)
代码片段和文件信息
#include
#include
#include //栈也可以自己写只要写出的栈和下面的函数名一样即可
#include
using namespace std;
double Evalucateexpression(); //表达示计算
double ConverNum(stack &num); //转化为操作数
double Evalucate(double b char c double a); //计算
char Precede(stack &OPTR char c); //运算符优先级
int GetPos(char c); //取下标
int main(int argc char *argv[])
{
cout << Evalucateexpression() << endl;
system(“PAUSE“);
return EXIT_SUCCESS;
}
double Evalucateexpression()
{
stack OPND;//操作数栈
stack OPTR; //操作符栈
stack num; //多位数栈
OPTR.push(‘=‘);
char c = getchar();
bool T = true;
while (c != ‘=‘ || OPTR.top() != ‘=‘)
{
if (isdigit(c) || c == ‘.‘) //操作数入num栈等待转换
{
num.push(c);
c = getchar();
T = true; //判断是否为数字,为下面的是OPND.push(ConverNum(num))做准备
}
else
{
if (T) //转换操作数后入OPND栈
{
OPND.push(ConverNum(num));
}
// else
// {
// T = true;
// }
char ch = Precede(OPTR c); //判断操作符优先级
switch (ch)
{
double a b;
case ‘<‘: //优先级小则操作符入栈
OPTR.push(c);
c = getchar();
T = false;
break;
case ‘=‘: //优先级相等则去掉操作符(其实就是去符号)
OPTR.pop();
c = getchar();
T = false;
break;
case ‘>‘: //优先级大则进行两数计算
a = OPND.top();
OPND.pop();
b = OPND.top();
OPND.pop();
OPND.push(Evalucate(b OPTR.top() a)); //计算后入栈
OPTR.pop();
T = false;
break;
default:
cout << “ERROR1!“;
system(“pause“);
exit(0);
}
}
}
return OPND.top();
}
double Evalucate(double b char c double a)
{
switch(c)
{
case ‘+‘:
return b + a;
case ‘-‘:
return b - a;
case ‘*‘:
return b * a;
case ‘/‘:
return b / a;
default:
cout << “ERROR2!“;
system(“pause“);
exit(0);
}
}
double ConverNum(stack &num)//先计算总说再除以多少位小数
{
int temp = 1;
int m = 1;
int size = num.size();
int point = 0; //计算多少小数位
double sum = 0;
for (int i = 0; i != size; ++i)
{
if (num.top() != ‘.‘)
{
sum += temp * (num.top() - 48);
temp *= 10;
num.pop();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 67 2009-02-28 16:25 使用前看.txt
文件 4519 2009-03-13 09:02 main.cpp
----------- --------- ---------- ----- ----
4586 2
相关资源
- 汇编语言课程设计案例精编
- EDA课程设计(出租车计费系统)
- 软件工程课程设计【网上选课系统】
- 操作系统课程设计 二级文件管理系统
- 《Hadoop大数据技术》课程设计报告.
- 学生管理系统 课程设计
- 数据结构课程设计 校园导游系统
- 网络工程 综合布线课程设计报告
- 微机课程设计_移动靶射击
- 软件工程校园卡管理系统课程设计报
- 是男人就下一百层
- 基于Verilog的交通灯设计EDA课程设计
- 计算机网络课程设计 小型企业的
- 计算机组成原理课程设计报告 完整版
- EDA课程设计大全,很多完整的课程设
- 计算机网络校园网课程设计
- 操作系统课程设计代码
- 51单片机课程设计内含50多个课程设计
- 3114006172陈世强数据库课程设计报告
- 电梯模拟问题课程设计报告
- 操作系统课程设计 银行家算法论文
- 数据结构课程设计 表达式类型的实现
- 计算机网络课程设计—设计一个校园
- 源程序阅读与调试课程设计报告--学生
- 编译原理课设c编译器
- 课程设计-机票预定系统
- 微波炉课程设计包涵程序,原理图,
- 网页制作代码+课程总结
- 数据结构 课程设计 中缀算术表达式求
- 数据结构课程设计----表达式类型的实
评论
共有 条评论