91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .cpp
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-06-17
  • 語言: C/C++
  • 標簽: 計算器??

資源簡介

利用棧實現(xiàn)科學(xué)計算器的連續(xù)輸入求值,自動選擇運算優(yōu)先級,提示括號的不匹配以及各種輸入錯誤。

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include?“Calculator.h“
#include?
#include?

bool?Calculator::DoOperator(char?op)
{
double?liftrightvalue;bool?result;
result=Get2Operands(liftright);
if(result==true)
{
switch(op)
{
case‘+‘:value=lift+right;s.push(value);break;
case‘~‘:value=lift-right;s.push(value);break;
case‘*‘:value=lift*right;s.push(value);break;
case‘/‘:if(right==0.0)
{
AfxMessageBox(“Divide?by?0!“);
Clear();
}
else{value=lift/right;s.push(value);}
break;
}
return?true;
}
else
{
Clear();
return?false;
}
}

bool?Calculator::Get2Operands(double&?liftdouble&?right)
{
if(s.empty()==true)
{?
AfxMessageBox(“缺少右操作數(shù)“);
return?false;
}
right=s.top();s.pop();
if(s.empty()==true)
{
AfxMessageBox(“缺少左操作數(shù)“);
return?false;
}
lift=s.top();s.pop();
return?true;
}

bool?Calculator::Run(CString&?str2)
{
std::stringstream?is(str2.GetBuffer());
char?ch;double?a;is>>ch;
while(ch!=‘#‘)
{
if(isdigit(ch))
{
is.putback(ch);
is>>a;s.push(a);
}
else?if(ch==‘-‘)
{
is.putback(ch);
is>>a;s.push(a);
}
switch(ch)
{
case‘+‘:case‘~‘:case‘*‘:case‘/‘:
if(DoOperator(ch)==true)
break;
else
return?false;
}
is>>ch;
}
str2.Format(“%f“a=s.top());
return?true;
}

void?Calculator::Clear()
{

評論

共有 條評論