



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、四川大學(xué)計(jì)算機(jī)學(xué)院 學(xué)生實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱(chēng):帶括號(hào)的算術(shù)表達(dá)式求值指導(dǎo)教師: 姓名: 學(xué)號(hào):班級(jí): 日期:2010年1月6日實(shí)驗(yàn)一:帶括號(hào)的算術(shù)表達(dá)式求值一、實(shí)驗(yàn)的環(huán)境:指硬件和軟件環(huán)境1.硬件環(huán)境:一臺(tái)計(jì)算機(jī)2.軟件環(huán)境:使用Windows XP操作系統(tǒng),編譯系統(tǒng)的版本為Visual C+ 6.0集成開(kāi)發(fā)軟件環(huán)境,該編輯軟件使用方便,功能強(qiáng)大。二、算法描述:偽語(yǔ)言描述:為使本程序清晰易讀,將整個(gè)代碼寫(xiě)在一個(gè)main.cpp文件中。整個(gè)文件由四個(gè)函數(shù)構(gòu)成,分別是:主函數(shù)(main),優(yōu)先級(jí)判斷函數(shù)(rank),執(zhí)行純粹的四則運(yùn)算計(jì)算任務(wù)的函數(shù)(cal)和按照優(yōu)先
2、級(jí)別進(jìn)行計(jì)算操作的函數(shù)(Calculate)?,F(xiàn)在對(duì)每一個(gè)函數(shù)的功能做一簡(jiǎn)介。rank函數(shù)實(shí)現(xiàn)對(duì)輸入計(jì)算的表達(dá)式中的每一個(gè)符號(hào)進(jìn)行優(yōu)先級(jí)運(yùn)算,如:輸入(,則優(yōu)先級(jí)為1,輸入+或者-,則優(yōu)先級(jí)為2,輸入*或/,則優(yōu)先級(jí)為3,目的是為后面的函數(shù)Calculate 進(jìn)行進(jìn)棧出棧操作和計(jì)算提供優(yōu)先級(jí)信息。cal函數(shù)的作用是簡(jiǎn)單機(jī)械地遇到四則運(yùn)算就進(jìn)行簡(jiǎn)單的計(jì)算。如:遇到+就執(zhí)行加法運(yùn)算,它是受到函數(shù)Calculate調(diào)用的。本程序的核心函數(shù)是Calculate,它依靠?jī)蓚€(gè)棧,名叫fuhao和num對(duì)符號(hào)和數(shù)字進(jìn)行進(jìn)棧出棧操作,在該過(guò)程中實(shí)現(xiàn)對(duì)運(yùn)算表達(dá)式的有效計(jì)算。其中在進(jìn)棧過(guò)程中要有效地實(shí)現(xiàn)從字符串中
3、取出有效的運(yùn)算數(shù)字,主要由如下代碼實(shí)現(xiàn):for(i=0;i<s.size();+i) if( isdigit( si) ) while( isdigit( si ) ) x=si-'0'+10*x; i=i+1; 最后要說(shuō)的就是主函數(shù)main,它的功能是讀取表達(dá)式,然后用前面的函數(shù)Calculate實(shí)現(xiàn)計(jì)算,最后得出結(jié)果并輸出結(jié)果。其他代碼相見(jiàn)下面的源程序清單。三、源程序清單:#include <iostream>#include <string>#include <stack>using namespace std;int rank(
4、char a) /用于計(jì)算優(yōu)先級(jí)if(a='(') return 1;else if(a='+'|a='-') return 2;else if(a='*'|a='/') return 3;else return 0;stack<char> fuhao; /操作符棧stack<double> num; /操作數(shù)棧void Cal(); /函數(shù)聲明 用于計(jì)算double Calculate(const string &s) double result=0.0;fuhao.push(
5、39;0');int i,x=0; for(i=0;i<s.size();+i) if( isdigit( si) ) while( isdigit( si ) ) x=si-'0'+10*x; i=i+1; num.push(x); x=0; i=i-1; else if(si='(') fuhao.push(si); else if(si=')') while(fuhao.top()!='(') Cal(); fuhao.pop(); else if( rank(si) > rank(fuhao.top()
6、 ) | fuhao.top()='0') fuhao.push(si); else if( (rank(fuhao.top() >= rank(si) && (fuhao.top()!='0') Cal(); fuhao.push(si); while( fuhao.top()!='0' ) Cal(); result = num.top(); return result; void Cal() double t=0.0;char ch;ch=fuhao.top(); switch(ch) case '+'
7、: t=num.top(); num.pop(); t=num.top()+t; num.pop(); num.push(t); fuhao.pop();break; case '-': t=num.top(); num.pop(); t=num.top()-t; num.pop(); num.push(t); fuhao.pop();break; case '*': t=num.top(); num.pop(); t=num.top()*t; num.pop(); num.push(t); fuhao.pop();break; case '/': t=num.top(); num.pop(); t=num.top()/t; num.pop(); num.push(t); fuhao.pop();break; case '0':break; int main(void) cout<<"請(qǐng)輸入正確的運(yùn)算表達(dá)式:" string s; cin>>s; cout<<s<<'='<<Calculate(s)<<endl; return 0;四、運(yùn)行結(jié)果:五、實(shí)驗(yàn)運(yùn)行情況分析 本實(shí)驗(yàn)沒(méi)有提供對(duì)輸入的表達(dá)式進(jìn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 邵家窯溝林地承包合同4篇
- 施工單位勞務(wù)合同4篇
- 服裝時(shí)尚行業(yè)發(fā)展趨勢(shì)與創(chuàng)新實(shí)踐
- 校車(chē)運(yùn)營(yíng)合同書(shū)6篇
- 有產(chǎn)權(quán)水果店鋪出租合同5篇
- 培訓(xùn)學(xué)校學(xué)生入學(xué)協(xié)議書(shū)2篇
- 銷(xiāo)售渠道設(shè)計(jì)策略
- 消化系統(tǒng)常見(jiàn)疾病的護(hù)理常規(guī)
- 2025遼寧省交通高等專(zhuān)科學(xué)校輔導(dǎo)員考試試題及答案
- 2025贛東學(xué)院輔導(dǎo)員考試試題及答案
- 2025年蘇州市中考英語(yǔ)二模模擬試題(六)(含解析)
- 2025年耐熱玻璃器皿行業(yè)深度研究報(bào)告
- 護(hù)理影像學(xué)試題及答案總結(jié)
- DB65-T 4623-2022 分散式風(fēng)電接入電力系統(tǒng)管理規(guī)范
- 水電使用合同協(xié)議書(shū)
- 退休終止勞動(dòng)合同協(xié)議書(shū)
- 中國(guó)獸藥典三部 2020年版
- NB/T 11646-2024井工煤礦采空區(qū)自然發(fā)火監(jiān)測(cè)預(yù)警技術(shù)規(guī)范
- 實(shí)驗(yàn)室質(zhì)量管理體系與試題
- 嬰幼兒期的食物過(guò)敏識(shí)別與管理考核試題及答案
- 江蘇省宿遷市2024年中考道德與法治真題試卷含解析答案
評(píng)論
0/150
提交評(píng)論