d=pow(a,b);
returntrue;
default:
returnfalse;
}
}
if(array[num-40][pre-40]>0)将符号压栈
{
op.Add((char)num);
}
else
{
charmid;
while(array[num-40][pre-40]<=0)
{
if(pre==40&&num==41)排除(数字)情况,保留数字()非法情况
{
if(i>0)
{
intMyCheck=(int)name.at(i-1);
if(MyCheck<=57&&MyCheck>=48||MyCheck==41)
{
break;
}
else
throwCString("括号中的表达式不合法");
}
else
throwCString("出现未匹配的)");
}
try
{
op.Delete(mid);
}
catch(CStringe)
{
throwCString("出现未匹配的)");
}
doubledata1,data2;
try
{
data.Delete(data2);
data.Delete(data1);
}
catch(CStringe)
{
throwCString("缺少操作数");
}
if(!
jisuan(data1,data2,mid,data1))
{
result=0;
throwCString("表达式异常");
}
data.Add(data1);
pre=(int)op.Top();
}
CompuetrDlg.cpp:
实现文件
#include"stdafx.=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)2;
inty=(rect.Height()-cyIcon+1)2;
绘制图标
dc.DrawIcon(x,y,m_);
}
else
{
CRectrect;
CPaintDCdc(this);
GetClientRect(rect);
dc.FillSolidRect(rect,RGB());设置背景颜色
CDialog:
:
OnPaint();
CDialog:
:
OnPaint();
}
}
Compuetr.cpp:
定义应用程序的类行为。
#include"stdafx.FALSE;
}
stack
#include
#include
#include
usingnamespacestd;
template
classLinkedStack;
template
classNode
{
friendLinkedStack;
private:
Tdata;
Node*link;
};
template
classLinkedStack
{
public:
LinkedStack(){top=0;length=0;}
~LinkedStack();
boolisEmpty()const
{
returntop==0;
}
boolisFull()const;
TTop()const;
LinkedStack&Add(constT&x);
LinkedStack&Delete(T&x);
intgetLength(){returnlength;}
private:
Node*top;
intlength;
};
template
LinkedStack:
:
~LinkedStack()
{
Node*next;
while(top)
{
next=top->link;
deletetop;
top=next;
}
}
template
boolLinkedStack:
:
isFull()const
{
try
{
Node*p=newNode;
deletep;
returnfalse;
}
catch(bad_alloc&e)
{
returntrue;
}
}
template
TLinkedStack:
:
Top()const
{
if(isEmpty())
throwCString("堆栈空异常!
");
returntop->data;
}
template
LinkedStack&LinkedStack:
:
Add(constT&x)
{
Node*p=newNode;
p->data=x;
p->link=top;
top=p;
length++;
return*this;
}
template
LinkedStack&LinkedStack:
:
Delete(T&x)
{
if(isEmpty())
throwCString("堆栈空异常!
");
x=top->data;
Node*p=top;
top=top->link;
deletep;
length--;
return*this;
}
5总结与体会
计算器虽然是我们生活中常见的一样工具,但不知道实现这样一个工具,说实话不是很简单,对于我这个学习一般的人来说,很难!
!
计算器虽小,但包含了一些简单却又重要的功能,包括加减乘除,次方,括号等一些基本功能,它方便了大众的日常生活中遇到的计算问题。
完成这个任务,说实话很艰难,但挺了过来,坚持了过来,所谓凡事贵在坚持,所以要学会坚持,坚持就是胜利。
一个人的力量是有限的,学会与人合作,积极请教他人谦虚学习是必要的,它只会让你更加的进步,会更好。
所以这个任务让我学到了很多,坚持,努力,合作,进取,积极向上,天下无难事,只要肯用心!
!