资源简介
数据结构课程设计,实验报告,C++计算器,MFC设计,内附程序,完全代码,
代码片段和文件信息
// Calculate.cpp : implementation file
//
#include “stdafx.h“
#include “Calculator.h“
#include “Cal.h“
#include
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include
using namespace std;
//堆栈类
template
class AStack
{
public:
AStack(int size){top=-1;SIZE=size;Buffer=new T[size];}
~AStack(){delete[]Buffer;};
int GetSize(){return (top+1); }
bool Pop(T &element);
bool Push(const T&element);
private:
int top;
int SIZE;
T *Buffer;
};
template
bool AStack::Pop(T &element)
{
if (-1==top)
{
return false;
}
else
{
element=Buffer[top--];
return true;
}
}
template
bool AStack::Push(const T&element)
{
if (top>=SIZE-1)
{
return false;
}
else
{
Buffer[++top]=element;
return true;
}
}
/////////////////////////////////////////////////////////////////////////////
// Cal
Cal::Cal()
{
m_nNumOfPoint=2;
}
Cal::Cal(int nNum)
{
if (nNum>=0)
{
m_nNumOfPoint=nNum;
}
else
m_nNumOfPoint=0;
}
Cal::~Cal()
{
}
/////////////////////////////////////////////////////////////////////////////
// Cal message handlers
bool Cal::CheckBehindParse(string &strD)
{
char cTemp=0;
const char *pc=strD.c_str();
double v1=0;
double v2=0;
double r=0;
string strTemp=““;
const char *beforePoint=pc;
AStack*stk=new AStack(256);
while (*pc!=0)
{
cTemp=*pc;
if ((cTemp>=‘0‘&&cTemp<=‘9‘)||cTemp==‘.‘)
{
if (cTemp==‘.‘)
{
if (pc-beforePoint>0)
{
if (*(pc-1)<‘0‘||*(pc-1)>‘9‘)
return false;
}
else if (pc==beforePoint)
{
return false;
}
}
strTemp+=cTemp;
}
else if (cTemp==‘#‘)
{
if (!strTemp.empty())
{
stk->Push(atof(strTemp.c_str()));
strTemp=““;
}
pc++;continue;
}
else if(cTemp==‘-‘||cTemp==‘+‘||cTemp==‘*‘||cTemp==‘/‘)
{
if(!stk->Pop(v2))return false;
if(!stk->Pop(v1))return false;
stk->Push(0);
}
pc++;
}
if(!strTemp.empty())stk->Push(atof(strTemp.c_str()));
if(stk->GetSize()!=1)return false;
return true;
}
//由中缀表达式转换为后缀表达式
int Cal::GetBehindFromMid(string & strS string & strD)
{
string strTemp=““;
string strSrc=strS;
AStack *stk=new AStack(256);
char ctemp;
char cctemp;
char buf[256];
int i;
int len=strSrc.length();
for (i=0;i {
ctemp=strSrc[i];
if (ctemp>‘9‘||ctemp<‘(‘||ctemp==‘‘)return 1;//含有非法字符
if(ctemp==‘ ‘||ctemp==‘\t‘||(ctemp==0x0d)||(ctemp==0x0a))continue;
if((ctemp==‘-‘||ctemp==‘+‘))
{
if (i==0||strSrc[i-1]==‘(‘)
strTemp+=‘0‘;
}
strTemp+=ctemp;
}
len=strTemp.length();
if(len > 255) return 2;//表达式的字符串太长
strTemp.copy(bufstrTemp.length());
bu
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5427 2011-05-17 10:02 苏海计算器\Cal.cpp
文件 1067 2010-03-05 13:33 苏海计算器\Cal.h
文件 5423 2010-02-25 14:59 苏海计算器\Calculate.cpp
文件 1337 2010-02-25 15:00 苏海计算器\Calculate.h
文件 22752 2011-05-19 23:36 苏海计算器\Calculator.aps
文件 2363 2011-05-18 21:31 苏海计算器\Calculator.clw
文件 2119 2010-02-23 20:07 苏海计算器\Calculator.cpp
文件 4346 2010-02-25 16:49 苏海计算器\Calculator.dsp
文件 545 2010-02-23 20:07 苏海计算器\Calculator.dsw
文件 1368 2010-02-23 20:07 苏海计算器\Calculator.h
文件 91136 2011-05-19 23:36 苏海计算器\Calculator.ncb
文件 106496 2011-05-18 21:31 苏海计算器\Calculator.opt
文件 1126 2011-05-17 10:14 苏海计算器\Calculator.plg
文件 6763 2011-05-17 00:15 苏海计算器\Calculator.rc
文件 13704 2011-05-17 10:14 苏海计算器\CalculatorDlg.cpp
文件 2278 2011-05-17 10:14 苏海计算器\CalculatorDlg.h
文件 30838 2011-05-17 10:02 苏海计算器\Debug\Cal.obj
文件 0 2011-05-07 00:59 苏海计算器\Debug\Cal.sbr
文件 3376128 2011-05-07 00:59 苏海计算器\Debug\Calculator.bsc
文件 122948 2011-05-17 10:14 苏海计算器\Debug\Calculator.exe
文件 475876 2011-05-17 10:14 苏海计算器\Debug\Calculator.ilk
文件 14173 2011-05-17 10:14 苏海计算器\Debug\Calculator.obj
文件 5500532 2011-05-07 16:05 苏海计算器\Debug\Calculator.pch
文件 435200 2011-05-17 10:14 苏海计算器\Debug\Calculator.pdb
文件 3480 2011-05-17 00:17 苏海计算器\Debug\Calculator.res
文件 0 2011-05-07 00:59 苏海计算器\Debug\Calculator.sbr
文件 64178 2011-05-17 10:14 苏海计算器\Debug\CalculatorDlg.obj
文件 0 2011-05-07 00:59 苏海计算器\Debug\CalculatorDlg.sbr
文件 105566 2011-05-07 16:05 苏海计算器\Debug\StdAfx.obj
文件 1374962 2011-05-07 00:59 苏海计算器\Debug\StdAfx.sbr
............此处省略14个文件信息
- 上一篇:一个简单的MFC的MDI程序-Sketcher
- 下一篇:网络防火墙设计与实现
相关资源
- 数据结构课程设计 山东大学版 文件
- 数据结构课程设计(C++代码+报告)
- VC++科学计算器源代码
- 航空客运订票系统数据结构课程设计
- 数据结构课程设计:表达式求值,C
- 哈工大软件学院07级数据结构课程设计
- 数据结构课程设计图书管理系统c语言
- 数据结构课程设计,最小生成树,采
- c++计算机图形编程-简易绘图程序
- VC++计算器源代码
- 数据结构课程设计 职工管理系统 c语
- 数据结构课程设计vc6.o编译有MFC界面的
- c++数据结构课程设计-校园最短路径采
- 数据结构课程设计公交线路图.rar
- 数据结构课程设计旅游路线
- 交通模拟-c语言数据结构课程设计
- BTree数据结构课程设计C++版
- 停车场管理系统 MFC 数据结构课程设计
- 基于VS2010的c++计算器小程序
- C++计算任意函数值 积分 线性方程组
- 数据结构课程设计-航空订票系统
- 数据结构课程设计校园导航系统
- 数据结构课程设计 二叉排序树的实现
- 数据结构课程设计文本编辑C语言描述
- 数据结构课程设计图书管理系统
- 数据结构课程设计c++排序算法的比较
- 数据结构课程设计c++图书管理系统源
- C语言数据结构课程设计迷宫问题
- 数据结构课程设计\\算术表达式求解
- 数据结构课程设计学生作业管理系统
评论
共有 条评论