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

  • 大小: 15.05MB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-04
  • 語言: C/C++
  • 標簽: vs2017??

資源簡介

本代碼基于vs2017下開發的c++代碼,代碼主要使用逆波蘭算法構建四則運算框架,從而實現計算器程序的構建,此外代碼中還加入了三角函數,反三角函數等函數的處理,并且做了表達式的正確性檢驗,可以作為數據結構以及算法學習的參考例程。

資源截圖

代碼片段和文件信息

#include?“calculator.h“

/*
程序思路:
(1)從標準輸入(控制臺,鍵盤)獲取原始表達式
(2)將原始表達式中包含sin(x)cos(x)等的部分計算出,并準換成:(結果)的形式
------其中括號()是避免函數的計算結果為-的情況,從而使表達式滿足只包含運算符和4則運算
(3)‘-’符號前添加0處理,使表達式便于逆波蘭法計算
(4)對于(2)(3)處理后的表達式進行中綴表達式合理性驗證
(5)中綴表達式轉化成后綴表達式
(6)計算后綴表達式
*/

/////代碼中數據的定義和內存分配可能還不是最優,有待優化


/////////////////構造函數+析構函數///////////////////////////////
calculator::calculator()
{
}

calculator::~calculator()
{
}

///////////////將字符串轉換成浮點型數/////////////////////////////
double?calculator::?str2num(std::string?str?)
{
double?num?;
std::stringstream?ss;
ss?< ss?>>?num;
return?num;
}

////////////////將浮點型轉換成字符串//////////////////////////////
std::string?calculator::num2str(double?num)
{
std::string?str;
std::stringstream?ss;
ss?< ss?>>?str;
return?str?;
}

//////////////////需要對字符串進行判斷///////////////////////
//////////////////判斷某字符串是不是數字///////////////////
bool?calculator::isDouble(std::string?s1)
{
///////////////////字符串合理性判斷,保證it有效
if?(s1.empty())
{
return?false;
}
else?if?(*s1.begin()?==?‘-‘?&&?s1.size()? {
return?false;
}
auto?it?=?s1.begin();
if?(*it?==?‘-‘)??++it;

size_t?doutNum?=?0;
for?(;?it?!=?s1.end();?it++)
{
char?temp?=?*it;
if?(temp?!=?‘.‘?&&?(!(temp?>=?‘0‘?&&?temp?<=?‘9‘)))
{
return?false;
}
else?if?(temp?==?‘.‘)
{
++doutNum;
}
}
if?(doutNum?>?1)
{
return?false;
}

return?true;
}

///////////////將sin(x)等的數字字符轉化成數字字符//////////////
std::string?calculator::function2str(std::string?in)
{
std::string?out;
out.push_back(‘(‘);??//加上括號方便處理

auto?it?=?in.begin();
switch?(*in.begin())
{
case?‘p‘:?????//pow(xy)函數
for?(it?=?in.begin();?it?!=?in.end();?it++)
if?(*it?==?‘‘)??break;
double?n1?n2;
n1?=?str2num(std::string(in.begin()?+?4?it));
n2?=?str2num(std::string(it?+?1?in.end()));
out?=?out?+?num2str(pow(n1?n2));
break;

case?‘a‘:
if?(*(in.begin()?+?1)?==?‘s‘)???????//asin(x)函數
{
out?=?out?+?num2str(asin(str2num(std::string(in.begin()?+?5?in.end()))));
}
else?if?(*(in.begin()?+?1)?==?‘c‘)??//acos(x)函數
{
out?=?out?+?num2str(acos(str2num(std::string(in.begin()?+?5?in.end()))));
}
else????????????????????????????????//atan(x)函數
{
out?=?out?+?num2str(atan(str2num(std::string(in.begin()?+?5?in.end()))));
}
break;

case?‘s‘:???????????????????????????????//sin(x)
out?=?out?+?num2str(sin(str2num(std::string(in.begin()?+?4?in.end()))));
break;

case?‘c‘:???????????????????????????????//cos(x)
out?=?out?+?num2str(cos(str2num(std::string(in.begin()?+?4?in.end()))));
break;

case?‘t‘:???????????????????????????????//tan(x)
out?=?out?+?num2str(tan(str2num(std::string(in.begin()?+?4?in.end()))));
break;
}
out.push_back(‘)‘);??//加上括號方便處理
return?out;
}

/////////////////將原始表達式中的函數函數替換成數字字符串//////////////////
std::string?calculator::FunctionPro(std::string?s1)
{
if?(!s1.empty())
{
std::vector?spot

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

????..A..H.?????33792??2019-03-03?11:19??數據結構編程小練\calculator\.vs\calculator\v15\.suo

?????文件????6758400??2019-03-03?11:19??數據結構編程小練\calculator\.vs\calculator\v15\Browse.VC.db

?????文件???39190528??2019-03-03?11:18??數據結構編程小練\calculator\.vs\calculator\v15\ipch\AutoPCH\e07e6daa9560a048\CALCULATOR.ipch

?????文件???50135040??2019-03-03?11:19??數據結構編程小練\calculator\.vs\calculator\v15\ipch\AutoPCH\e7f1e09324e3207\MAIN.ipch

?????文件??????13695??2019-03-03?11:18??數據結構編程小練\calculator\calculator\calculator.cpp

?????文件???????1231??2019-03-03?11:18??數據結構編程小練\calculator\calculator\calculator.h

?????文件???????6065??2019-02-21?20:02??數據結構編程小練\calculator\calculator\calculator.vcxproj

?????文件???????1166??2019-02-21?20:02??數據結構編程小練\calculator\calculator\calculator.vcxproj.filters

?????文件????????165??2019-02-21?19:42??數據結構編程小練\calculator\calculator\calculator.vcxproj.user

?????文件????????674??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\calculator.log

?????文件?????820360??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\calculator.obj

?????文件????????239??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\calculator.tlog\calculator.lastbuildstate

?????文件???????1446??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\calculator.tlog\CL.command.1.tlog

?????文件??????41918??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\calculator.tlog\CL.read.1.tlog

?????文件???????1502??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\calculator.tlog\CL.write.1.tlog

?????文件???????2690??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\calculator.tlog\link.command.1.tlog

?????文件???????3876??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\calculator.tlog\link.read.1.tlog

?????文件????????734??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\calculator.tlog\link.write.1.tlog

?????文件??????74982??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\main.obj

?????文件?????265216??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\vc141.idb

?????文件?????806912??2019-03-03?11:18??數據結構編程小練\calculator\calculator\Debug\vc141.pdb

?????文件????????599??2019-03-03?11:19??數據結構編程小練\calculator\calculator\main.cpp

?????文件???????1444??2019-02-21?19:42??數據結構編程小練\calculator\calculator.sln

?????文件?????245760??2019-03-03?11:18??數據結構編程小練\calculator\Debug\calculator.exe

?????文件????6032200??2019-03-03?11:18??數據結構編程小練\calculator\Debug\calculator.ilk

?????文件????1937408??2019-03-03?11:18??數據結構編程小練\calculator\Debug\calculator.pdb

?????目錄??????????0??2019-03-03?11:10??數據結構編程小練\calculator\.vs\calculator\v15\ipch\AutoPCH\e07e6daa9560a048

?????目錄??????????0??2019-03-03?11:19??數據結構編程小練\calculator\.vs\calculator\v15\ipch\AutoPCH\e7f1e09324e3207

?????目錄??????????0??2019-02-21?20:00??數據結構編程小練\calculator\.vs\calculator\v15\ipch\AutoPCH

?????目錄??????????0??2019-02-21?19:42??數據結構編程小練\calculator\.vs\calculator\v15\ipch

............此處省略12個文件信息

評論

共有 條評論