




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、25vc+計(jì)算器課程設(shè)計(jì)報(bào)告一、 作品名稱:計(jì)算器二、本次課程設(shè)計(jì)的目的 在程序設(shè)計(jì)中,通過設(shè)計(jì)、編制、調(diào)試一個(gè)模擬計(jì)算器的程序,加深對(duì)語法及語義分析原理的理解,并 實(shí)現(xiàn)對(duì)命令語句的靈活應(yīng)用。三、 主要功能實(shí)現(xiàn)計(jì)算器的功能。用戶根據(jù)程序提示,輸入數(shù)字或字符,選擇要進(jìn)行的運(yùn)算,可以進(jìn)行正弦、余弦、正切、開方、對(duì)數(shù)、加、減、乘、除、華氏溫度與攝氏度之間的換算以及平方根的運(yùn)算。四、 具體內(nèi)容釋解1.初始運(yùn)行界面如下: 2.進(jìn)行正弦運(yùn)算3.進(jìn)行混合運(yùn)算4.求平方根運(yùn)算,根據(jù)用戶輸入與系統(tǒng)提示,運(yùn)行過程依次如下:5.進(jìn)行華氏溫度和攝氏度間的轉(zhuǎn)化,運(yùn)行如下:6.進(jìn)行測(cè)試7.選擇6鍵,回到菜單界面,運(yùn)行如下
2、:五、 備注:1. #include為編譯預(yù)處理命令,其作用是將源程序文件中的預(yù)處理命令進(jìn)行處理,生成一個(gè)中間文件,編譯系統(tǒng)再對(duì)此文件進(jìn)行編譯并生成目標(biāo)代碼,最后生成的代碼中并不包含預(yù)處理命令。2.#define max 100 為宏定義,以后程序中再出現(xiàn)100,都用max代替。3. exit()為庫函數(shù),其功能是終止程序運(yùn)行,將流程控制返回給操作系統(tǒng)。exit(表達(dá)式)通常把表達(dá)式的值作為終止程序的原因。用0表示正常退出,其他整數(shù)值作為異常處理。使用它時(shí),要包含頭文件stdlib.h。4. void test();測(cè)試函數(shù)。測(cè)試程序是由計(jì)算機(jī)出題、用戶運(yùn)算,計(jì)算機(jī)判斷對(duì)錯(cuò)并給出分?jǐn)?shù),計(jì)算機(jī)用
3、隨機(jī)數(shù)發(fā)生器給出兩個(gè)操作數(shù)。六、附錄(源程序)計(jì)算器(calculator)-源代碼及關(guān)鍵源代碼注解如下:#include #include/用以產(chǎn)生隨機(jī)數(shù)#define max 100/宏定義#include #include #include #include double number1,number2,answer,number3,num10000;/定義全局變量int n,k=1;char input,val;/定義輸入的運(yùn)算符號(hào)class oopcalc private:double x,y;/私有變量x和y double fartocel(double number1);/華氏溫
4、度轉(zhuǎn)化為攝氏溫度的函數(shù)聲明double celtofar(double number1);/攝氏溫度轉(zhuǎn)化為華氏溫度的函數(shù)聲明double sqroot(double number1);/void calcsqr();void calccos();void calctan();void calcsin();void calclog();public:double getx()return x;double gety()return y;double set()x=number1;y=number2;double calcadd(double number1,double number2);/加法
5、運(yùn)算的函數(shù)聲明double calcsub(double number1,double number2);/減法運(yùn)算的函數(shù)聲明double calcdiv(double number1,double number2);/除法運(yùn)算的函數(shù)聲明double calcmult(double number1,double number2);/乘法運(yùn)算的函數(shù)聲明void calcfartocel();void calcceltofar();void calcsroot();void exitprog();void menu();/主菜單函數(shù)void caculate();/混合運(yùn)算函數(shù)的函數(shù)聲明 void
6、 test();/測(cè)試函數(shù)的函數(shù)聲明void badinput(); ;void oopcalc:calcsin()/類體外函數(shù),定義正弦函數(shù)coutthe sin functionn;coutnumber1;answer=sin(number1);coutthe sin of number1 is answerendl;coutpress any key to continuen;getch();menu();void oopcalc:calccos()/類體外函數(shù),定義余弦函數(shù)coutthe cos functionn;coutnumber1;answer=cos(number1);cou
7、tthe cos of number1 is answerendl;coutpress any key to continuen;getch();menu();void oopcalc:calctan()/類體外函數(shù),定義正切函數(shù)coutthe tan functionn;coutnumber1;answer=tan(number1);coutthe tan of number1 is answerendl;coutpress any key to continuen;getch();menu();void oopcalc:calcsqr()/求平方的函數(shù)coutthe sqr functio
8、nn;coutnumber1;answer=(number1*number1);coutthe sqr of number1 is answerendl;coutpress any key to continuen;getch();menu();void oopcalc:calclog()/對(duì)數(shù)函數(shù)coutthe log functionn;coutnumber1;if(number1=0) coutbad input!n;coutpress any key to continuen;getch();menu();elseanswer=log(number1);coutthe log of n
9、umber1 is answerendl;coutpress any key to continuen;getch();menu();double oopcalc:calcadd(double number1,double number2)/加法運(yùn)算answer=number1+number2;return(answer);double oopcalc:calcsub(double number1,double number2)/減法運(yùn)算answer = number1-number2;return(answer);double oopcalc:calcdiv(double number1,d
10、ouble number2)/除法運(yùn)算if(number2=0)getch();/排除除數(shù)為零的情況menu();elseanswer = number1/number2;return(answer);double oopcalc:calcmult(double number1,double number2)/乘法運(yùn)算answer = number1*number2;return(answer);void oopcalc:calcfartocel()/華氏溫度轉(zhuǎn)化為攝氏溫度cout the farenheit to celsius functionn;cout number1;answer =
11、(number1 - 32) * 5) / 9;cout the tempature in celsius is answer endl;cout press any key to continuen;getch();menu();void oopcalc:calcceltofar()/攝氏溫度轉(zhuǎn)化為華氏溫度cout the celsius to farenheit functionn;cout number1;answer =number1 * 9 / 5 + 32;cout the tempature in farenheit is answer endl;cout press any k
12、ey to continuen;getch();menu();void oopcalc:calcsroot()/求平方根的函數(shù)cout the square root functionn;cout number1;if(number10)/排除負(fù)數(shù)開平方根coutyour enter is incorrect,please enter a new numbern;getch();menu();elseanswer = sqrt(number1);cout the square root of number1 is answer endl;cout press any key to contin
13、uen;getch();menu();void oopcalc:exitprog()exit(-1);void oopcalc:menu()oopcalc a;system(cls); /執(zhí)行系統(tǒng)命令:cls-清屏cout =menu=n;cout s:選擇s進(jìn)行正弦運(yùn)算n;cout c:選擇c進(jìn)行余弦運(yùn)算n;cout t:選擇t進(jìn)行正切運(yùn)算n;cout g:選擇g進(jìn)行對(duì)數(shù)運(yùn)算n;cout n:選擇n進(jìn)行求平方運(yùn)算n;cout 1: 選擇1進(jìn)行混合運(yùn)算n;cout 2: 選擇2進(jìn)行華氏溫度轉(zhuǎn)化為攝氏溫度的運(yùn)算n;cout 3: 選擇3進(jìn)行攝氏溫度轉(zhuǎn)化為華氏溫度的運(yùn)算n;cout 4: 選擇4進(jìn)
14、行求平方根運(yùn)算n;cout 5: 選擇5進(jìn)行測(cè)試n;cout 6:選擇6退出運(yùn)算n; cout input;cout =n;switch (input)case s:case s:a.calcsin();break;case c: case c: a.calccos();break;case t:case t: a.calctan();break;case g:case g:a.calclog();break;case n:case n:a.calcsqr();break;case 1:a.caculate();break;case 2:a.calcfartocel();break;case
15、3:a.calcceltofar();break;case 4:a.calcsroot();break;case 5: a.test();break;case 6:a.exitprog();break;default :a.badinput();void oopcalc:caculate() oopcalc a;coutthe multifunction(混合四則運(yùn)算)n;for(int n=1;n+)coutnumbernnumn;/輸入要運(yùn)算的數(shù)if(numn=0)/遇到0為止coutpress any key to continuen;getch();menu();switch(k)ca
16、se 1:if(n=1)answer=num1;break;/如果第一個(gè)數(shù)則不進(jìn)行運(yùn)算else answer=a.calcadd(answer,numn);/如果不是第一個(gè)數(shù)進(jìn)行運(yùn)算 coutthe answer is answerendl;break;case 2:if(n=1)answer=num1;break;/如果第一個(gè)數(shù)則不進(jìn)行運(yùn)算else answer=a.calcsub(answer,numn);/如果不是第一個(gè)數(shù)進(jìn)行運(yùn)算coutthe answer is answerendl;break;case 3:if(n=1)answer=num1;break;/如果第一個(gè)數(shù)則不進(jìn)行運(yùn)算
17、else answer=a.calcmult(answer,numn);/如果不是第一個(gè)數(shù)進(jìn)行運(yùn)算coutthe answer is answerendl;break;case 4:if(n=1)answer=num1;break;/如果第一個(gè)數(shù)則不進(jìn)行運(yùn)算else answer=a.calcdiv(answer,numn);/如果不是第一個(gè)數(shù)進(jìn)行運(yùn)算coutthe answer is answerendl;break;label1:coutval;switch(val)case+:k=1;break;case-:k=2;break;case*:k=3;break;case/:k=4;brea
18、k;default:coutbad input!n;goto label1;void oopcalc:test()/測(cè)試函數(shù)coutthe test functionn;int s;float p;s=rand()%4+1;/隨機(jī)給出題目的+或-或*或/srand ( time (null) );number1=rand()%max+1;/在1100之間隨機(jī)給出數(shù)字number2=rand()%max+1;switch(s)case 1:coutnumber1+number2=;answer=calcadd(number1,number2);break;case 2:coutnumber1-n
19、umber2=;answer=calcsub(number1,number2);break;case 3:coutnumber1/number2=;answer=calcdiv(number1,number2);break;case 4:coutnumber1*number2p;if(answer=p)coutcorrect!you are very clever!n;elsecoutno!the correct answer is answer,you should have more practise.n;coutpress any key to continuen;coutflush;getch();menu();void oopcalc:badinput()cout bad input!n;cout press any key to continuen;getch();menu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)孤獨(dú)癥患者關(guān)懷的個(gè)人方法計(jì)劃
- 分配任務(wù)與跟進(jìn)進(jìn)度的秘書工作計(jì)劃
- 品牌資產(chǎn)與市場(chǎng)風(fēng)險(xiǎn)的關(guān)聯(lián)研究計(jì)劃
- 全面提升團(tuán)隊(duì)績效的年度規(guī)劃計(jì)劃
- 強(qiáng)化職能部門之間的配合計(jì)劃
- 如何選擇合適的品牌推廣渠道計(jì)劃
- 2025年物位儀項(xiàng)目建議書
- 2025年數(shù)字貨幣金融項(xiàng)目發(fā)展計(jì)劃
- 2025年瀝青試驗(yàn)儀器項(xiàng)目發(fā)展計(jì)劃
- 新員工入職引導(dǎo)及工作流程簡明教程
- 二年級(jí)乘除法口訣專項(xiàng)練習(xí)1000題-推薦
- 貸款項(xiàng)目資金平衡表
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)項(xiàng)目監(jiān)理日志
- [整理]10kv開關(guān)站標(biāo)準(zhǔn)設(shè)計(jì)說明(最終版)
- 分級(jí)診療制度管理辦法
- 義務(wù)教育語文課程標(biāo)準(zhǔn)2022年版
- 公務(wù)員入職登記表
- 九年級(jí)新目標(biāo)英語單詞表默寫最新版
- 臨水臨電計(jì)算公式案例
- 2022新教科版六年級(jí)科學(xué)下冊(cè)第二單元《生物的多樣性》全部教案(共7節(jié))
- PEP人教版小學(xué)英語單詞四年級(jí)上冊(cè)卡片(可直接打印)
評(píng)論
0/150
提交評(píng)論