軟體工程個人作業03

2022-09-07 00:36:15 字數 3778 閱讀 6230

設計思想:

1.儲存   二維陣列 都是數字(數字就是數字符號總是(0,1,2,3))

2.輸出   判斷陣列每位上的數字(奇數字就是數字,偶數為就是符號0,1,2,3分別代表加減乘除)

3.計算   將相應的陣列賦值給棧,用棧來計算結果,具體思想就是設定兩個棧,乙個為符號棧,乙個是數字棧,判斷符號棧中有連續兩個加減法時就執行前乙個,如果有乘除法就直接執行,最後肯定會剩下兩個數乙個運算子,得出結果

程式源**:

#include#include

using

namespace

std;

#define maxsize 100typedef

struct

//棧的儲存結構定義

sqstack;

int initstack(sqstack &s)//

為計算構造乙個數字空棧

int push(sqstack &s,int e)//

入棧int pop(sqstack &s)//

出棧int gettop(sqstack s)//

取棧頂元素

int getsecondtop(sqstack s)//

取次棧頂元素

int z[30][7],x[30][11

];int output(int a,int b,int c,int d,int e)//

分數輸出

}for(int i = c;i > 1;i--)

}switch

(e)

return1;

}int fenshu_zhengquejieguo(int a,int b,int c,int d,int

e)

return1;

}int zhengshu_zhengquejieguo(int *a)

else

//否則壓入數字棧

if(i > 3 && gettop(fuhao) > 2)//

如果從左向右遇見乘除法就直接執行

}if(gettop(fuhao) < 2 && getsecondtop(fuhao) < 2)//

如果遇見連續的兩個加減法執行第乙個

push(shuzi,c);

push(fuhao,e);}}

if(shuzi.top != shuzi.base)//

最終肯定會剩下一組數還有最後一次加減運算

}return

gettop(shuzi);

}int shuchu(int *a,int yu,int y)//

整數輸出

}if(a[i+1] == 3)//

判斷除法是否有餘數}}

cout

<}

else}}

return1;

}int

main()

if(j==y)}}

}z[y][

1]=first_number;

if(tiaojian_cheng=0

)

z[y][

2]=first_operatr;

z[y][

3]=second_number;

if(tiaojian_cheng=0

)

z[y][

4]=second_operatr;

z[y][

5]=third_number;

if(tiaojian_cheng=0

)

z[y][

6]=third_operatr;

z[y][

7]=forth_number;

y++;

for(int i=1;i<8;i++)

shuchu(a,tiaojian_yu,y);

cout

<<"

請輸入正確結果!";

cin>>kehu_jieguo;

if(kehu_jieguo==zhengshu_zhengquejieguo(a))

else}}

else

if(number_jisuanshileixing==2

)

if(j==p)}}

}x[p][

1]=frist_fenzi;

x[p][

2]=first_fenmu;

x[p][

3]=second_fenzi;

x[p][

4]=second_fenmu;

if(tiaojian_cheng=0)//

處理有無乘除法

x[p][

5]=fuhao;

p++;

if(first_fenmu==0)//

去掉分母為零的情況

if(second_fenmu==0

)

if(frist_fenzi>first_fenmu)//

調整為真分數

if(second_fenzi>second_fenmu)//

調整為真分數

switch

(fuhao)

}output(frist_fenzi,first_fenmu,second_fenzi,second_fenmu,fuhao);

break

;

case

2: output(frist_fenzi,first_fenmu,second_fenzi,second_fenmu,fuhao);break

;

case

3: output(frist_fenzi,first_fenmu,second_fenzi,second_fenmu,fuhao);break

;

}cout

<<"

請輸入正確結果!";

cin>>kehu_jieguo;

if(kehu_jieguo==fenshu_zhengquejieguo(frist_fenzi,first_fenmu,second_fenzi,second_fenmu,fuhao))

else

cout

; }

}return1;

}

psp 0級專案計畫日誌:

日期課堂(分鐘)

讀書(分鐘)

部落格(分鐘)

程式設計(分鐘)

日總結(分鐘)

周一120

4030

190周二

5040

週三30

30周四

周五週六

6040

100週日

4070

120220

周總結120

130130

220600

事件記錄日誌:

時間名稱

開始時間

結束時間

彙總時間

上課周一上午八點

周一上午十點

兩小時閱讀

周四下午三點

周二下午四點十五

周四下午四點

周二下午五點

乙個小時四十五分鐘

寫部落格週日下午四點

週日下午六點

兩個小時

程式設計週日下午三點

週三晚上七點

週日下午五點

週三晚上八點四十

四小時四十分鐘

彙總十小時二十五分鐘

軟體工程個人作業03

planning development design 1.開闢兩個陣列乙個為double型別另乙個為char型別用於存放生成的隨機數和隨機運算子 2.編寫兩個方法分別用於生成指定範圍數內的隨機數和加減乘除四種運算子 3.呼叫這兩個函式將生成的隨機數和運算子分別存到事先設定好的陣列中 存放的個數可以...

軟體工程個人作業03

設計思路 1 直接輸出整數加減乘除的答案。然後取餘餘數用括號括起來。2 分數先通分 將分母相乘通分 最後答案找分子分母的最小公約數來約分。程式源 include include includeusing namespace std void dealaddandsubtract1 int n 取值 ...

軟體工程個人作業03

設計思想 利用結果判斷,若錯誤則輸出 錯誤!正確則輸出 正確!同時進行計數!程式源 include include include using namespace std void out int x,int x0,int y,int y0,int z,int z0,int i,int j,int ...