VC++計(jì)算器課程設(shè)計(jì)報(bào)告計(jì)算器_第1頁(yè)
VC++計(jì)算器課程設(shè)計(jì)報(bào)告計(jì)算器_第2頁(yè)
VC++計(jì)算器課程設(shè)計(jì)報(bào)告計(jì)算器_第3頁(yè)
VC++計(jì)算器課程設(shè)計(jì)報(bào)告計(jì)算器_第4頁(yè)
VC++計(jì)算器課程設(shè)計(jì)報(bào)告計(jì)算器_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、25vc+計(jì)算器課程設(shè)計(jì)報(bào)告一、 作品名稱:計(jì)算器二、本次課程設(shè)計(jì)的目的 在程序設(shè)計(jì)中,通過(guò)設(shè)計(jì)、編制、調(diào)試一個(gè)模擬計(jì)算器的程序,加深對(duì)語(yǔ)法及語(yǔ)義分析原理的理解,并 實(shí)現(xiàn)對(duì)命令語(yǔ)句的靈活應(yīng)用。三、 主要功能實(shí)現(xiàn)計(jì)算器的功能。用戶根據(jù)程序提示,輸入數(shù)字或字符,選擇要進(jìn)行的運(yùn)算,可以進(jìn)行正弦、余弦、正切、開(kāi)方、對(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)行過(guò)程依次如下: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()為庫(kù)函數(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()/類(lèi)體外函數(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()/類(lèi)體外函數(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()/類(lèi)體外函數(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ù)開(kāi)平方根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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論