下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)大作業(yè)字符串類(lèi)(或計(jì)算器類(lèi))號(hào) 指導(dǎo)教師完成時(shí)間:2013年5月20日計(jì)算器類(lèi)1. 編程目的2. 系統(tǒng)簡(jiǎn)介3. 編程思路4. 總體設(shè)計(jì)(附類(lèi)圖)5. 關(guān)鍵技術(shù)說(shuō)明 6.源代碼 7.測(cè)試(主界面及各功能模塊的運(yùn)行圖及說(shuō)明) 8.系統(tǒng)評(píng)價(jià)及展望21、編程目的當(dāng)今社會(huì)是信息社會(huì),科技經(jīng)濟(jì)高速發(fā)展的社會(huì),為了更方便人們的工作生 活和加速人們處理信息的速度,計(jì)算器應(yīng)運(yùn)而生。由于它體積小巧,攜帶方便, 價(jià)格便宜,構(gòu)造簡(jiǎn)單等諸多的優(yōu)點(diǎn)成為人們生活的必備品。 因此此次課程設(shè)計(jì)我 選擇了計(jì)算器類(lèi)的設(shè)計(jì)與使用,它能即時(shí)準(zhǔn)確地獲得需要的計(jì)算的結(jié)果, 充分降 低了數(shù)字計(jì)算的難度和節(jié)約了時(shí)間,對(duì)人們的生
2、活有一定的幫助。編程實(shí)現(xiàn)計(jì)算器類(lèi),使其能進(jìn)行整數(shù)及實(shí)數(shù)的加、減、乘、除、平方、開(kāi)方 等基本運(yùn)算,能進(jìn)行二進(jìn)制,十進(jìn)制,八進(jìn)制,十六進(jìn)制數(shù)值之間的轉(zhuǎn)換,以及 能進(jìn)行三角函數(shù)的計(jì)算。在本次實(shí)驗(yàn)中盡最大努力完成計(jì)算器類(lèi)設(shè)計(jì)的基本功能,進(jìn)一步掌握與應(yīng)用C+語(yǔ)言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)。在實(shí)踐編程中訓(xùn)練總體設(shè)計(jì)思維能力,模仿并體驗(yàn)軟件設(shè)計(jì)過(guò)程,加強(qiáng)動(dòng)手能力、思考能力、邏輯思維能力等。二、系統(tǒng)簡(jiǎn)介在本次的課程設(shè)計(jì)中,系統(tǒng)開(kāi)發(fā)平臺(tái)為 Windows XP,程序設(shè)計(jì)語(yǔ)言采用Visual C+6.0。VC+是Windows平臺(tái)上的C+編程環(huán)境。VC+應(yīng)用程序的開(kāi)發(fā)主要有兩種模式,一種是WIN API方式,另一種則是
3、 MFC方式,傳統(tǒng)的 WIN API開(kāi)發(fā)方式比較繁瑣,而MFC則是對(duì)WINAPI再次封裝,所以MFC相對(duì)于 WINAPI開(kāi)發(fā)更具備效率優(yōu)勢(shì),VC6.0的優(yōu)點(diǎn)是界面簡(jiǎn)潔,占用資源少,操作方便。計(jì)算器類(lèi)的設(shè)計(jì)與實(shí)現(xiàn)是在 VC+6.0環(huán)境下設(shè)計(jì)與實(shí)現(xiàn)的,總體要求是:通過(guò)該軟件實(shí)現(xiàn)計(jì)算器的基本功能,主要實(shí)現(xiàn)的功能有:計(jì)算器類(lèi)的創(chuàng)建。該計(jì)算器類(lèi)可以進(jìn)行加、減、乘、除、平方、開(kāi)方,以及進(jìn)制間的互相 轉(zhuǎn)換的操作。可以用括號(hào)輸入表達(dá)式,每次可運(yùn)算多個(gè)表達(dá)式。實(shí)現(xiàn)數(shù)據(jù)的輸入,輸出,計(jì)算,顯示及程序退出等功 能。排錯(cuò),當(dāng)用戶(hù)輸入錯(cuò)誤的表達(dá)式時(shí)提示用戶(hù)。三、編程思路建立名為jisuanqi的工程,工程內(nèi)包含四個(gè).c
4、pp文件和六個(gè).h文件 要實(shí)現(xiàn)計(jì)算器的各類(lèi)簡(jiǎn)單功能,首先采用類(lèi)的設(shè)計(jì)思想,將計(jì)算器功能封裝成類(lèi)以實(shí)現(xiàn)計(jì)算器的功能。運(yùn)行程序時(shí)首先向用戶(hù)提示“請(qǐng)選擇需要的運(yùn)算!”提供“1、2、3”三個(gè)程序接口,分別進(jìn)行計(jì)算器簡(jiǎn)單運(yùn)算,三角函數(shù)運(yùn)算和進(jìn)制轉(zhuǎn)換運(yùn)算,根據(jù)用戶(hù) 指令,調(diào)用相應(yīng)的函數(shù)文件。用戶(hù)輸入要計(jì)算的數(shù)值后按回車(chē)鍵即可的運(yùn)算結(jié)果。為實(shí)現(xiàn)功能,先定義vfun ctio n.hxcalculate.h>兩個(gè)頭文件,及vFunction.cpp>vcalculate.cpp>兩個(gè)文件,在 vjisuanqi.cpp> 中編寫(xiě)計(jì)算器主函數(shù),通過(guò)建立工程將各個(gè)文件聯(lián)系在一起。1、實(shí)現(xiàn)計(jì)
5、算器的基本功能為實(shí)現(xiàn)加、減、乘、除、開(kāi)方、平方基本運(yùn)算,建立vcalculator.h> 文件。創(chuàng)建calculator類(lèi),實(shí)現(xiàn)封裝。在該模塊中,首先提示用戶(hù)進(jìn)入計(jì)算器簡(jiǎn)單運(yùn)“輸入你想具體形式如算狀態(tài)“歡迎使用計(jì)算器運(yùn)算數(shù)據(jù)! ”按回車(chē)后提示用戶(hù)輸入數(shù)據(jù), 運(yùn)算的兩個(gè)數(shù)和運(yùn)算符! ”繼續(xù)運(yùn)行則提示用戶(hù)選擇運(yùn)算符的位置,下:“1運(yùn)算符中綴”“2運(yùn)算符后綴”“3運(yùn)算符前綴”“回車(chē)鍵”后即可顯示正確的結(jié)果2、實(shí)現(xiàn)三角函數(shù)運(yùn)算建立v.Function.cpp> 文件,定義Function函數(shù),為讓用戶(hù)明確使用,提示用戶(hù)選擇要使用的函數(shù),根據(jù)指令,通過(guò)swith-case語(yǔ)句,實(shí)現(xiàn)用戶(hù)要使用
6、的函數(shù)功能。但要注意的是在調(diào)用 tan函數(shù)時(shí),pi/2的倍數(shù)是在tan函數(shù)的定義域之外的,所以必須提示用戶(hù)不要輸入pi/2的倍數(shù)。同樣使用swhitch函數(shù),來(lái)實(shí)現(xiàn)不同三角函數(shù)的功能。3、實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換運(yùn)算進(jìn)制轉(zhuǎn)換為二進(jìn)制,"十進(jìn)制轉(zhuǎn)換為八進(jìn)制",十進(jìn)制轉(zhuǎn)換為十六進(jìn)制","八進(jìn)制轉(zhuǎn)換為十進(jìn)制",十六進(jìn)制轉(zhuǎn)換為十進(jìn)制"。同樣用switch語(yǔ)句控本程序提供六種進(jìn)制轉(zhuǎn)換,分別是:'十進(jìn)制轉(zhuǎn)換為十進(jìn)制'十制執(zhí)行用戶(hù)需要的進(jìn)制轉(zhuǎn)換運(yùn)算。最后輸出程序運(yùn)行結(jié)果。四、總體設(shè)計(jì)系統(tǒng)流程圖類(lèi)圖五、源代碼/calculator.h#ifnde
7、f CALCULATOR#defi ne CALCULATOR_H#in cludeviostream>#in clude<cmath>#in clude<stri ng>using n ames pace std;class calculatorp rivate:p ublic:void compu te();void calculator :co mpu te()double a,b;char s;coutvv"歡迎使用計(jì)算器運(yùn)算數(shù)據(jù)!"<<endl;為開(kāi)coutvv"本計(jì)算器能計(jì)算的簡(jiǎn)單運(yùn)算有:+,-,*,/,A,s
8、"vvendl;/s方運(yùn)算符coutvv"輸入你想要運(yùn)算的兩個(gè)數(shù)和運(yùn)算符。"vvendl;cout<<" 1運(yùn)算符中綴"<<e ndl;coutvv" 2運(yùn)算符后綴"<<e ndl;coutvv" 3運(yùn)算符前綴"<<e ndl;int n;cin>>n;switch( n)case 1:cin>>a;cin>>s;cin>>b;break;case 2:cin>>a;cin>>b;cin
9、>>s;break;case 3:cin>>s;cin>>a;cin>>b;break;switch(s)case '+':coutvv"="vv(a+b)vve ndl;/加法運(yùn)算break;case '-':coutvv"="vv(a-b)vve ndl;break;case1*1coutvv"="vv(a*b)vve ndl;/乘法運(yùn)算break;case '/': if(b!=O)coutvv"="vv(a/b)
10、vve ndl;elsecerrvv"Error!"vve ndl;break;/ 除法運(yùn)算調(diào)用pow函數(shù),將第二個(gè)形參設(shè)置為2以計(jì)開(kāi)方運(yùn)算case S':cout<<"="< vpo w(a,2)<<e ndl;/算平方break;/ 平方運(yùn)算case's':coutvv"="vvsqrt(a)vve ndl;/break;#en dif/Fun cti on.cpp#in clude"F un ctio n.h"#in clude<stri ng>
11、;#in clude<iostream>#in clude<cmath>using n ames pace std;void Function:co un t()coutvv"歡迎使用三角函數(shù)運(yùn)算程序!"vvendl;coutvv"請(qǐng)輸入所要計(jì)算的函數(shù)sin , cos, tan ,本計(jì)算器只支持這三種三角函數(shù)運(yùn)算。"<<e ndl;coutvv"并輸入所要計(jì)算的度數(shù),如60, 50。但在運(yùn)算tan時(shí)請(qǐng)不要輸入n12 的倍數(shù)。"vvendl;coutvv"1sin"vven dl
12、;coutvv"2cos"vve ndl;coutvv"3tan "vve ndl;int s;double degree;cin>>s;coutvv"請(qǐng)輸入度數(shù):"vvendl;cin> >degree;switch(s)case 1:coutwl in "<<46996<<"="<<5 in( degreelvve ndl;/s in函數(shù)break;case 2:8山<<七05"<<46996<<
13、"="<<8596996)<<6 ndl;/cos函數(shù)break;case 3:coutwa n"vvdegreevv"="vvta n( degreelvve ndl;/ta n函數(shù)break;/Fun cti on.h#ifndef FUNCTION_H#defi ne FUNCTIONclass Fun cti onp rivate:p ublic:void coun t();;#en dif/tran slate.cp p(進(jìn)制轉(zhuǎn)換函數(shù))#in clude"tra nslate.h"#i nc
14、lude <stack>#in clude <iostream>using n ames pace std;void p (i nt nu m);void tran slate:f(i nt x,i nt y)coutvv"歡迎使用進(jìn)制轉(zhuǎn)換程序!"<<endl;coutvv" 1.十進(jìn)制轉(zhuǎn)換為十進(jìn)制"<<endl;coutvv" 2.十進(jìn)制轉(zhuǎn)換為二進(jìn)制"vve ndl;coutvv" 3.十進(jìn)制轉(zhuǎn)換為八進(jìn)制"vve ndl;coutvv" 4.十進(jìn)制轉(zhuǎn)換為十
15、六進(jìn)制"vve ndl;coutvv" 5.八進(jìn)制轉(zhuǎn)換為十進(jìn)制"vvendl;coutvv" 6.十六進(jìn)制轉(zhuǎn)換為十進(jìn)制"vvendl;coutvv"請(qǐng)選擇輸入數(shù)據(jù)的進(jìn)制:"vvendl;int c,n;cin>>c;switch(c) case 1: coutvv"請(qǐng)輸入十進(jìn)制數(shù)據(jù):"vvendl;cin>>n;coutvv"轉(zhuǎn)換結(jié)果:"vvendl;coutv vnwen dl;break;case 2:coutvv"請(qǐng)輸入十進(jìn)制數(shù)據(jù):"&
16、lt;<e ndl;cin>>n;coutvv"轉(zhuǎn)換結(jié)果:"vvendl;P(n);break;case 3:coutvv"請(qǐng)輸入十進(jìn)制數(shù)據(jù):"<<e ndl;cin>>n;coutvv"轉(zhuǎn)換結(jié)果:"vvendl;coutvvoct vvnvven dl;break;case 4:coutvv"請(qǐng)輸入十進(jìn)制數(shù)據(jù):"vve ndl;cin>>n;coutvv"轉(zhuǎn)換結(jié)果:"vvendl;coutvvhexv vnvven dl;break;cas
17、e 5: cin>>oct>>n;coutvv"請(qǐng)輸入八進(jìn)制數(shù)據(jù):"vve ndl;coutvv"轉(zhuǎn)換結(jié)果:"vvendl;coutvvdecv vnvven dl;break;case 6: coutvv"請(qǐng)輸入十六進(jìn)制數(shù)據(jù):"vvendl;cin> >hex> >n;coutvv"轉(zhuǎn)換結(jié)果:"<<endl;coutvvdecv vnwen dl;break;void p (i nt num) int a100, i=0;while( nu m)ai=n
18、um%2;num/=2;i+;for(nu m=i-1; num >=0; nu m-)/if(ai)/ break;/for(num=i-1;i>=0;i-) cout<<a nu m;coutvve ndl;/tran slate.h #ifndef TRANSLATE H #defi ne TRANSLATE class tran slate p rivate: p ublic:void f(int x,i nt y);#en dif/計(jì)算器.cpp (計(jì)算器主函數(shù))#in clude"calculator.h" #in clude"
19、F un ctio n.h" #in clude"F un ctio n.cpp" #in clude"tra nslate.h" #in clude"tra nslate.c pp" #in clude<iostream> #in clude<cmath> using n ames pace std;int main() int x,y;cout<<""<<e ndl;請(qǐng)選擇需要的運(yùn)算!"<<e ndl;cout<<&qu
20、ot;1簡(jiǎn)單運(yùn)算!"<<e ndl;cout<<"2三角運(yùn)算!"<<e ndl;coutvv"3進(jìn)制轉(zhuǎn)換!"<<e ndl;cout<<"cout<<""<<e ndl;int s;cin>>s;switch(s) case 1: calculator a;a. co mpu te();break;case 2:Fun cti on b;b. co un t();break;case 3: tran slate c;c.
21、 f(x ,y);break;return 0;六、測(cè)試計(jì)算器主程序界面$cDrt<r 3 捋複| FHidi;3Utk(0rrturii 弗:=£int 5:C1UE;丈現(xiàn)刪隔棗51臥電le®歴0 ZA® 0口®鵜協(xié)case 1: cjlcilLtr J; NWRpitPU; bnk;CE» 2: FmctLDn h; D.cauKtl;brfdk; CHF 3: trjnstdtf c; c.Fx ,yl;breakj麗 瞪稲就L總阿越n底怦越I驟L兔加眄迪/ft而fl中州B*1、簡(jiǎn)單計(jì)算器基本運(yùn)算加法運(yùn)算ITIN-川-s F的運(yùn)運(yùn)轉(zhuǎn)
22、 n 嘗三進(jìn) 擇-選i-請(qǐng)0$/.算有運(yùn) fr和 g匹數(shù) 數(shù)®1-4- 運(yùn)的的蛾裟綴 器中后前 遲孌運(yùn)運(yùn)運(yùn) 迎計(jì)入 1歡本輸12 32+HCR輸入簡(jiǎn)單運(yùn)算代碼“ 1”,輸入運(yùn)算符位置形式“ 1”即運(yùn)算符中綴,輸入“ 5+2” 回車(chē),得到結(jié)果“ 7”乘法運(yùn)算AAD ebnj i縊星請(qǐng)選擇霊要旳運(yùn)算I13linmmimtvnmimtvnmimtvnmmitvnmmitvnmmitvnmi+,符:算 旬匡 !昇和 g邁數(shù) 運(yùn)的的綴綴綴 麗MM中后前 sit 第想運(yùn)運(yùn)運(yùn) 使算你 迎計(jì)入 1歡本輸12"=4Pressany key to continue輸入簡(jiǎn)單運(yùn)算代碼“ 1”,輸入
23、運(yùn)算符位置形式“ 1”即運(yùn)算符中綴,輸入“ 2*2 ”回車(chē),得到結(jié)果“ 4”平方運(yùn)算二 Uii二;m I 1'1 (r iRLljZ -LJl : J . VJ-ll-S 二 WW. 一的運(yùn)運(yùn)轉(zhuǎn)一 5 一 f©同三進(jìn)數(shù)需BMW運(yùn)的的綴蛾綴 器SIff蠱鑒運(yùn)運(yùn)運(yùn)使霸迎計(jì)入戲本輸1£3Pressany heu to continue輸入簡(jiǎn)單運(yùn)算代碼“ 1 ”,輸入運(yùn)算符位置形式“ 1 ”即運(yùn)算符中綴,輸入“ 2人9”回車(chē), 得到結(jié)果“ 4”。此處調(diào)用pow函數(shù),需要輸入兩個(gè)實(shí)參,因?yàn)橹恍栌?jì)算平方,故將第二個(gè) 形參設(shè)定為2,用戶(hù)可以輸入任何有效數(shù)值,計(jì)算結(jié)果均為平方的結(jié)果。此例計(jì)算2的平方,輸入“ 2人9”得到結(jié)果“ 4”開(kāi)方運(yùn)算iilFl I FilS 運(yùn)WW. 的運(yùn)運(yùn)轉(zhuǎn) H 一魯三進(jìn)擇選 i 2 3 -請(qǐng)有運(yùn)Jit 和 s匹數(shù) 運(yùn)的的綴變綴器 sn- 廖塑運(yùn)運(yùn)運(yùn)使迎計(jì)入 A歡本輸1E31£A/=3Pressany hey tc continue輸入簡(jiǎn)單運(yùn)算代碼“ 1 ”,輸入運(yùn)算符位置形式“ 1”即運(yùn)算符中綴,輸入“ 9S?!被剀?chē), 得到結(jié)果“ 3 ”減法與除法運(yùn)行情況相同,此處不再列舉。2、三角函數(shù)運(yù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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 景德鎮(zhèn)藝術(shù)職業(yè)大學(xué)《配合物化學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 遼寧大學(xué)《嵌入式技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇海事職業(yè)技術(shù)學(xué)院《口腔科學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 黑龍江工程學(xué)院昆侖旅游學(xué)院《建筑施工組織》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶三峽職業(yè)學(xué)院《食品儀器分析原子吸收測(cè)定水中鈣(標(biāo)準(zhǔn)曲線(xiàn)法)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江越秀外國(guó)語(yǔ)學(xué)院《漆畫(huà)表現(xiàn)灰料新語(yǔ)言》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江海洋大學(xué)《GIS氣象應(yīng)用與開(kāi)發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國(guó)計(jì)量大學(xué)《生物信息學(xué)入門(mén)(雙語(yǔ))》2023-2024學(xué)年第一學(xué)期期末試卷
- 中央財(cái)經(jīng)大學(xué)《工程建筑制圖》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)德育工作的管理制度
- 浙江寧波鄞州區(qū)市級(jí)名校2025屆中考生物全真模擬試卷含解析
- 電子招投標(biāo)平臺(tái)搭建與運(yùn)維服務(wù)合同
- IATF16949基礎(chǔ)知識(shí)培訓(xùn)教材
- 食品研發(fā)調(diào)研報(bào)告范文
- 2024-2030年國(guó)家甲級(jí)資質(zhì):中國(guó)干熱巖型地?zé)豳Y源融資商業(yè)計(jì)劃書(shū)
- 2024-2030年中國(guó)MVR蒸汽機(jī)械行業(yè)競(jìng)爭(zhēng)格局及投資發(fā)展前景分析報(bào)告
- 食材配送服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 中國(guó)慢性阻塞性肺疾病基層診療指南(2024年)解讀
- 二零二四年度贈(zèng)與合同:關(guān)于藝術(shù)品捐贈(zèng)的贈(zèng)與合同
- 2023年高考真題-化學(xué)(福建卷) 含解析
- 纏繞膜項(xiàng)目實(shí)施方案
評(píng)論
0/150
提交評(píng)論