課程作業五

2022-09-13 18:30:13 字數 1037 閱讀 4856

由於上次的作業已經用棧的知識講過了,簡要的步驟請看

課程作業4

git**位址

這次的作業我講一下棧的知識和新演算法拓展的功能

棧的主要函式有push函式,top函式,pop函式,empty函式,size函式,功能如下

push函式:將乙個元素放入棧中

top函式:返回值為棧頂的元素

pop函式:將棧頂的元素彈出

empty函式:判斷棧是否為空

size函式:返回的是棧的元素的數量

在計算算式的函式中主要用到了push pop top empty函式

formulastack函式中的getformnum函式的具體**如下

double calculation::getfornum(int i, int & c)

{ double sum = 0;

bool flag = num_or_ope(i);//判斷當前呼叫這個函式時的formula[i]是數字還是字元從而決定數字的位數,因為若是*號或者/號也會呼叫這個函式

if (flag)

c = 1;

else

c = 0;

for (int j = i + 1; j這函式能夠返回數字(不僅是一位數,多位數也可以),而且因為後乙個引數傳遞的是引用,能夠修改原來的值,使之變成數字的位數,這對多位數運算有好處。

拓展功能:這個函式經過拓展還能夠返回小數,下面為拓展後的**

double calculation::getfornum(int i,int & c)

{ double sum = 0;

int dop=0;

bool flag = num_or_ope(i);

if (flag)

c = 1;

else

c = 0;

for (int j = i + 1; j新的演算法加上新的功能已經能夠寫出乙個簡易的計算器了。

ps:習題生成器的核心演算法就是在寫計算器的過程中一步步完善的,我已經寫好了簡易計算器的**,這個簡易計算器可以計算輸入的算式,包括多位數以及小數的計算。

課程作業五

上次作業我已經將我的乙個類分為了四個類,而且已經進行了 的實現。git傳送門 在四則運算器的計算算式的值的編寫中,我用到了棧。下面是我所學到的一些知識。棧是一種特殊的線性表,只能從固定的方向進出,而且棧進出的基本原則是 先進棧的元素後出棧。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的...

課程作業五

git鏈結 include stack採用模板類實現,stack物件的預設構造形式 stack stkt stack stkint 乙個存放int的stack容器。stack stkfloat 乙個存放float的stack容器。stack stkstring 乙個存放string的stack容器。...

課程作業五

提供本次作業的github鏈結 對棧的知識學習探索 概念很簡單,棧 stack 是一種後進先出的資料結構。棧的實現 棧是一種後進先出的資料結構,對於stack 我們希望至少要對外提供以下幾個方法 stack 建立乙個空的棧 void push t s 往棧中新增乙個新的元素 t pop 移除並返回最...