资源简介
采用c语言实现的四则运算器源代码,使用了栈和递归,支持括号。国内某知名游戏公司复试题目

代码片段和文件信息
// alWrom.cpp: implementation of the CalWrom class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “alWrom.h“
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CalWrom::CalWrom()
{
m_pFarther = NULL;
m_pChild = NULL;
m_fResult = 0.0f;
}
CalWrom::~CalWrom()
{
}
/************************************************************************/
/* 函数:LevelCmp
/* 说明:比较两个操作符的优先级
/* 参数:
/* a:操作符1
/* b:操作符2
/* 返回值:如果a的优先级大于b,返回1
/* 如果a的优先级等于b,返回0
/* 如果a的优先级小于b,返回-1
/************************************************************************/
int CalWrom::LevelCmp(char const achar const b)
{
int i;
char albl;
for (i=0;i {
if (a == LEVEL_TABLE[i][0])
{
al = LEVEL_TABLE[i][1];
}
if (b == LEVEL_TABLE[i][0])
{
bl = LEVEL_TABLE[i][1];
}
}
if (al > bl)
{
return 1;
}
else if (al < bl)
{
return -1;
}
else
{
return 0;
}
}
/************************************************************************/
/* 函数:Calculate
/* 说明:输入两个数和一个操作符,根据操作符计算两个数的结果
/* 参数:
/* f1:运算式左端数据
/* cOper:操作符
/* f2:运算式右端数据
/* 返回值:返回计算结果
/************************************************************************/
float CalWrom::Calculate(float f1char cOperfloat f2)
{
// printf(“%.2f%c%.2f\n“f1cOperf2);
switch(cOper)
{
case ‘+‘:
return f1 + f2;
case ‘-‘:
return f1 - f2;
case ‘*‘:
return f1 * f2;
case ‘/‘:
return f1 / f2;
default:
break;
}
return 0.0f;
}
/************************************************************************/
/* 函数:IsOperator
/* 说明:判断一个字符是否为操作符
/* 参数:
/* c:需要判断的字符
/* 返回值:如果c是操作符返回true
/* 如果c不是操作符返回false
/************************************************************************/
bool CalWrom::IsOperator(const char c)
{
if (c == ‘+‘
||c == ‘-‘
||c == ‘*‘
||c == ‘/‘
||c == ‘(‘
||c == ‘)‘
)
{
return true;
}
return false;
}
/************************************************************************/
/* 函数:IsData
/* 说明:判断一个字符是被一个数据包含,由于数据可以式float,
/* 因此.也属于数据类型
/* 参数:
/* c:需要判断的字符
/* 返回值:如果c是数据返回true
/* 如果c不是数据返回false
/************************************************************************/
bool CalWrom::IsData(const char c)
{
if ((c >= ‘0‘ && c <= ‘9‘)
||c == ‘.‘)
{
return true;
}
return false;
}
/************************************************************************/
/* 函数:AddOperator
/* 说明:外部向本蠕虫推入一个运算符,需要进行相应处理
/* 参数:
/* cOper:被推入的操作符
/* 返回值:无
/************************************************************************/
void CalWrom::AddOperator(const char cOper)
{
if (cOper == ‘(‘)
{
//第一次收到左括号,开创一个新的计算蠕虫作为括号内的表达式计算器
if (m_pChild == NULL)
{
m_pChild = new CalWrom;
m_pChild->m_pFarther = this;
// printf(“创建一个蠕
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
I.A.... 8072 2008-11-05 20:15 Calculator\alWrom.cpp
I.A.... 4821 2008-11-06 21:30 Calculator\alWrom.h
I.A.... 497 2008-11-05 20:15 Calculator\Calculator.cpp
I.A.... 4886 2008-11-05 20:15 Calculator\Calculator.dsp
I.A.... 545 2008-11-05 20:15 Calculator\Calculator.dsw
I.A.... 1232 2008-11-05 20:15 Calculator\ReadMe.txt
I.A.... 297 2008-11-05 20:15 Calculator\StdAfx.cpp
I.A.... 811 2008-11-05 20:15 Calculator\StdAfx.h
I.A.SHR 429 2008-11-05 20:15 Calculator\vssver2.scc
I.A.... 356 2008-11-05 20:15 Calculator\WormStack.cpp
I.A.... 1655 2008-11-06 21:29 Calculator\WormStack.h
I..D... 0 2008-11-06 21:30 Calculator
----------- --------- ---------- ----- ----
23601 12
- 上一篇:VC++注册码加密源程序含注册机、解密机
- 下一篇:vc++编写的界面源代码
相关资源
- 基于MFC的TCP调试助手源码95706
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- 安科瑞智能电能表MODBUS通讯程序 VC6
- VC++MFC小游戏实例教程(实例)+MFC类库
- c语言小学生自然数四则运算测试程序
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 九齐单片机源码
- 商品库存管理系统 C++ MFC
- Qt画图工具源码(qgraphics draw)
- c++ 多功能计算器
- qt 串口助手源码
- C++17 In Detail
- modbus 主机源码
- 《LINUX C编程从初学到精通》光盘源码
评论
共有 条评论