由於上次的作業已經用棧的知識講過了,簡要的步驟請看
課程作業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 移除並返回最...