C++計(jì)算器程序_第1頁
C++計(jì)算器程序_第2頁
C++計(jì)算器程序_第3頁
C++計(jì)算器程序_第4頁
C++計(jì)算器程序_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、武漢理工大學(xué)面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)說明書目錄1.基本功能描述12.設(shè)計(jì)思路13.軟件設(shè)計(jì)43.1設(shè)計(jì)步驟43.2界面設(shè)計(jì)93.3關(guān)鍵功能的實(shí)現(xiàn)124.結(jié)論與心得體會(huì)135.思考題146.附錄166.1調(diào)試報(bào)告166.2測試結(jié)果166.3關(guān)鍵源代碼19計(jì)算器程序1.基本功能描述1)“標(biāo)準(zhǔn)型”計(jì)算器,開始運(yùn)行程序,界面顯示的窗口就是標(biāo)準(zhǔn)型的。標(biāo)準(zhǔn)型計(jì)算器包含了計(jì)算器基本運(yùn)算功能,通過數(shù)字鍵按鈕和符號(hào)按鈕實(shí)現(xiàn)數(shù)字的加、減、乘、除運(yùn)算,以及數(shù)字回刪和清除功能。2)“科學(xué)型”計(jì)算器。通過點(diǎn)擊單選組框中的“科學(xué)型”選項(xiàng),將計(jì)算器轉(zhuǎn)換為科學(xué)型??茖W(xué)型計(jì)算器除了包含標(biāo)準(zhǔn)型所有的功能外,還增加了數(shù)字的“正弦”

2、、“余弦”、“冪”、“開放”、“開根號(hào)”、“對(duì)數(shù)”等擴(kuò)展功能。其中,科學(xué)型計(jì)算器還包含了一個(gè)“弧度”、“度數(shù)”的單選組匡,以實(shí)現(xiàn)弧度和度數(shù)的轉(zhuǎn)換。3)菜單欄,包含“查看”、“操作”、“幫助”三個(gè)功能?!安榭础敝杏小翱茖W(xué)型”和“標(biāo)準(zhǔn)型”兩種界面顯示方式;“操作”中有“退出”功能鍵;“幫助”中有“關(guān)于”和“幫助”兩個(gè)功能。用戶可根據(jù)需求選擇菜單欄里的選項(xiàng)。2.設(shè)計(jì)思路首先利用MFC類向?qū)е谱鲗?duì)話框的界面,按照自己預(yù)先規(guī)劃的樣式進(jìn)行界面的設(shè)計(jì)。例如,按鈕的個(gè)數(shù),位置;編輯框的個(gè)數(shù),位置,只讀屬性;靜態(tài)提示的文字位置等等。其次,給每一個(gè)控件修改ID以便于自己的識(shí)別,控件的屬性要按自己的思路修改。以下是

3、相關(guān)變量:m_Edit_Result:與編輯框相關(guān)的變量。num1:作為臨時(shí)變量存儲(chǔ)當(dāng)前的鍵入值。num2:作為臨時(shí)變量存儲(chǔ)計(jì)算結(jié)果的的值。flag:雙目運(yùn)算符的標(biāo)志位。j:小數(shù)點(diǎn)的標(biāo)志位。h:弧度與度數(shù)的標(biāo)志位,為0時(shí)表示弧度。具體設(shè)計(jì)要根據(jù)自己所畫的流程圖來進(jìn)行,流程圖要盡可能的詳細(xì),這樣在實(shí)施起來就會(huì)清晰而方便。 圖1數(shù)據(jù)的輸入與輸出 圖2單目運(yùn)算符流程圖圖3雙目運(yùn)算符流程圖 圖4程序計(jì)算流程圖3.軟件設(shè)計(jì)3.1設(shè)計(jì)步驟1)打開VC+6.0,在File菜單下選擇NEW,創(chuàng)建MFC AppWizard(exe)工程,鍵入的工程名zhoujie_caculate_update,在應(yīng)用程序類型

4、中選擇基本對(duì)話框,其他屬性直接選用默認(rèn),單擊確定完成對(duì)話框的創(chuàng)建。最后彈出新建工程信息對(duì)話框,該對(duì)話框列出了關(guān)于新建的應(yīng)用程序項(xiàng)目文件的相關(guān)信息。單擊確定,應(yīng)用程序向?qū)械墓ぷ骶腿客瓿闪?,此時(shí)向?qū)橛脩羯闪艘粋€(gè)可執(zhí)行的應(yīng)用程序框架。圖5新建工程圖6選擇基于對(duì)話框,其他默認(rèn),按“finish”圖7單擊“OK”完成工程新建2)初始化界面,在對(duì)話框中添加所需的控件如按鈕,文本,編輯框,菜單,Picture控件,進(jìn)度條;放置在相應(yīng)的位置上。根據(jù)需要對(duì)其屬性進(jìn)行修改,添加對(duì)應(yīng)的控件變量,并建立類向?qū)В谙鄳?yīng)的地方添加響應(yīng)函數(shù)。圖8添加控件并設(shè)定屬性圖9利用類向?qū)砑酉⒌捻憫?yīng)函數(shù)圖10利用類向?qū)?/p>

5、加成員變量3)制作菜單并為相應(yīng)的菜單項(xiàng)設(shè)定ID和變量以及響應(yīng)函數(shù),部分菜單具體功能與主界面相同,可以直接將ID設(shè)為與界面控件一致即可實(shí)現(xiàn)相同功能,不用另外添加代碼。圖11為菜單項(xiàng)設(shè)定ID圖12為菜單項(xiàng)添加響應(yīng)函數(shù)4)在實(shí)現(xiàn)文件.cpp中添加實(shí)現(xiàn)功能所需要的各種函數(shù),并添加相應(yīng)的代碼,同時(shí)在頭文件中添加對(duì)各種函數(shù)及變量的聲明。3.2界面設(shè)計(jì)1)初始化界面如下所示:圖13主界面初始顯示圖2)主界面控件設(shè)置如下:表1 主界面對(duì)話框控件表 控件名稱 控件類型 屬性(ID) 對(duì)應(yīng)函數(shù)名 0 按鈕ID_BUTTON_ZEROOnButtonZero() 1 按鈕ID_BUTTON_ONEOnButtonO

6、ne() 2 按鈕ID_BUTTON_TWOOnButtonwo() 3 按鈕ID_BUTTON_THREEOnButtonThree() 4 按鈕ID_BUTTON_FOUROnButtonFour() 5 按鈕ID_BUTTON_FIVE OnButtonFive() 6 按鈕ID_BUTTON_SIXOnButtonSix() 7 按鈕ID_BUTTON_SEVENOnButtonSeven() 8 按鈕ID_BUTTON_EIGHTOnButtonEight() 9 按鈕ID_BUTTON_NINEOnButtonNine() . 按鈕ID_BUTTON_POINTOnButtonPo

7、int() + 按鈕ID_BUTTON_ADDOnButtonAdd() - 按鈕ID_BUTTON_SUBSTRACTOnButtonSubstract() * 按鈕ID_BUTTON_MULTIPLYOnButtonMutiply() / 按鈕ID_BUTTON_DEVIDEOnButtonDevide() = 按鈕ID_BUTTON_DENGYUOnButtonDengyu() back 按鈕ID_BUTTON_BACKSPACEOnButtonBackspace()clear 按鈕ID_BUTTON_CLEEAROnButtonClear()sin 按鈕ID_BUTTON_SINOnB

8、uttonSin() 續(xù)表1 cos 按鈕ID_BUTTON_COSOnButtonCos()log 按鈕ID_BUTTON_LOGOnButtonLog()sqrt 按鈕ID_BUTTON_SQURTOnButtonSqurt() 按鈕ID_BUTTON_ZHISHUOnButtonZhishu() ! 按鈕ID_BUTTON_JIECHENGOnButtonJiecheng() 科學(xué)型 單選按鈕ID_RADIO_KEXUEOnRadioKexue()標(biāo)準(zhǔn)型單選按鈕ID_RADIO_BIAOZHUNOnRadioBiaozhun()弧度單選按鈕ID_RADIO_HUDUOnRadioHudu

9、()度數(shù)單選按鈕ID_RADIO_DUSHUOnRdioDushu() 表2 主界面菜單項(xiàng)列表 菜單名稱 菜單ID菜單函數(shù)名稱標(biāo)準(zhǔn)型 ID_BIAOZHUN Oniaozhun()科學(xué)型 ID_KEXUE OnKexue()關(guān)于 ID_Guanyu OnGuanyu()幫助 ID_HELP_USING OnHelp()退出 ID_EXIT OnExit()3)程序的菜單制作圖14菜單制作3.3關(guān)鍵功能的實(shí)現(xiàn)1)數(shù)字鍵:首先在對(duì)話框中設(shè)置0-9十個(gè)數(shù)字的按鈕控件,再分別對(duì)每個(gè)控件添加類向?qū)Ш瘮?shù)。在鍵入數(shù)字之前要判斷雙目運(yùn)算符標(biāo)志位、小數(shù)點(diǎn)標(biāo)志位的值,根據(jù)標(biāo)志位來鍵入相應(yīng)的數(shù)字。2)單目運(yùn)算符:在

10、對(duì)話框中添加單目運(yùn)算符-/+、log、sqrt、cos、sin、tan、log的控件,并分別對(duì)這些控件添加類向?qū)Ш瘮?shù)。首先對(duì)輸入的數(shù)值判斷是否合法,如開平方、取對(duì)數(shù)、取倒數(shù)等操作,不合法時(shí)輸出 響應(yīng)的提示,合法時(shí)利用數(shù)學(xué)函數(shù)進(jìn)行運(yùn)算,并用m_Edit_Result記錄結(jié)果。3)雙目運(yùn)算符:在對(duì)話框中添加雙目運(yùn)算符+、-、*、/、的控件,并對(duì)這些控件添加類向?qū)Ш瘮?shù)。設(shè)置z為雙目運(yùn)算符標(biāo)志位,當(dāng)鍵入一個(gè)數(shù)字后鍵入雙目運(yùn)算符,將z賦值為1。接著可以鍵入下一個(gè)數(shù)字,執(zhí)行運(yùn)算。其中第一個(gè)數(shù)字用變量num1保存,計(jì)算結(jié)果現(xiàn)保存在num2中,最后將結(jié)果賦值給m_Edit_Result。 4)等于:在對(duì)話框中

11、添加=符號(hào)的控件,對(duì)它添加類向?qū)Ш瘮?shù)。該功能是針對(duì)雙目運(yùn)算符的結(jié)果進(jìn)行輸出。以flag作為標(biāo)志位。+、-、*、/、對(duì)應(yīng)的flag值分別為1、2、3、4、5,根據(jù)相應(yīng)的flag的值再利用swich執(zhí)行各個(gè)雙目運(yùn)算符的算法。5)回刪與清除數(shù)字:在對(duì)話框中添加back、clear控件按鈕,為它們添加類向?qū)Ш瘮?shù)。首先判斷當(dāng)前數(shù)值是否是小數(shù),如果不是小數(shù)則對(duì)編輯框里邊的數(shù)進(jìn)行除10操作,然后進(jìn)行取余操作,減去該十分位小數(shù);當(dāng)該數(shù)為小數(shù)時(shí),利用小數(shù)點(diǎn)后的位數(shù)標(biāo)志位j進(jìn)行for循環(huán),移動(dòng)小數(shù)點(diǎn)的位置,當(dāng)只有十分位時(shí)停止,減去該位,再次利用for循環(huán)將小數(shù)點(diǎn)移至原來的數(shù)后面,用UpdateData(FALSE

12、),刷新輸出到編輯框。對(duì)于清除功能,只要將編輯框變量m_Edit_Result賦值為0即可實(shí)現(xiàn)。 6)科學(xué)性與標(biāo)準(zhǔn)型切換:在對(duì)話框中添加“科學(xué)型”、“標(biāo)準(zhǔn)型”的單選按鈕控件,并把它們?cè)O(shè)置成一個(gè)復(fù)組匡。使用SetWindowPos()函數(shù),它可以改變窗先將窗口的大小和位置。先將窗口初始化,即SetWindowPos(NULL,0,0,279,340,SWP_NOMOVE);然后在“科學(xué)型”按鈕函數(shù)里添加SetWindowPos(NULL,0,0,400,340,SWP_NOMOVE)語句,使窗口大小改變,這樣,就可以將科學(xué)型包含的功能得以顯現(xiàn)?!皹?biāo)準(zhǔn)型”按鈕函數(shù)設(shè)置為與初始化相同。通過這兩個(gè)按鈕

13、來實(shí)現(xiàn)“科學(xué)型”、“標(biāo)準(zhǔn)型”的轉(zhuǎn)換。7)弧度與度數(shù)切換:首先在對(duì)話框中添加“弧度”、“度數(shù)”的單選按鈕控件,并把它們?cè)O(shè)置成一個(gè)復(fù)組匡。設(shè)置h為標(biāo)志位,如果是度數(shù),令h=1,例如取余弦值就可以用m_edit_result=sin(m_edit_result*PI/180)語句給變量賦值。如果是弧度,令h=0,如果取余弦,用m_edit_result=sin(m_edit_result)語句進(jìn)行轉(zhuǎn)換,并UpdateData(true)更新數(shù)據(jù)到文檔中。8)小數(shù)點(diǎn):在對(duì)話框中添加“.”的控件,對(duì)它添加類向?qū)Ш瘮?shù)。首先通過小數(shù)標(biāo)志位j判斷當(dāng)前是否有小數(shù)點(diǎn)。最開始,j初始化為0,鍵入數(shù)字后按下小數(shù)點(diǎn)按鈕

14、,將j賦值為1,之后每鍵入一個(gè)數(shù)字j將加一,利用m_edit_result=m_edit_result+8/(pow(10,j)語句來實(shí)現(xiàn)鍵入的數(shù)字為小數(shù)。最后利用UpdateData(FALSE),刷新輸出到編輯框。4.結(jié)論與心得體會(huì)從最開始的初定題目,到最后程序的完成,歷經(jīng)兩周的時(shí)間。在這期間,遇到了各種問題,各種困難,程序運(yùn)行錯(cuò)誤,無法實(shí)現(xiàn)功能的挫敗和絕望感,解決問題后的欣喜和滿足感,各種感受記憶猶新。之所以選擇計(jì)算器程序,主要是因?yàn)橹白鲞^簡單的兩位數(shù)計(jì)算。想當(dāng)然的以為這個(gè)課設(shè)應(yīng)該相對(duì)容易一些。但是當(dāng)真正開始做以后,才發(fā)現(xiàn)一個(gè)完整的計(jì)算器涉及的知識(shí)點(diǎn)、功能竟然這么多,一個(gè)小數(shù)點(diǎn)的功能實(shí)

15、現(xiàn)耗費(fèi)了我兩天的時(shí)間,怎么調(diào)試都不行,遇到了瓶頸。之后通過翻閱書籍,網(wǎng)上查詢才最終完成這一功能。整個(gè)過程中的實(shí)際操作確實(shí)是對(duì)我的一種考驗(yàn)。之前學(xué)習(xí)過C+語言,對(duì)MFC編程的印象還是比較深的,但是經(jīng)過課設(shè)以后,無疑更加加深了印象。讓我再一次體會(huì)到了VC+的強(qiáng)大與復(fù)雜,感覺到自己學(xué)習(xí)C+就好像在大海里掙扎,這門語言真的好復(fù)雜。系統(tǒng)提供的各種類,各種函數(shù)真是多如牛毛。盡管我只用了很少的一些函數(shù),但是這幾天在網(wǎng)上搜索資料,對(duì)C+有了進(jìn)一步的了解。最強(qiáng)的感覺就是,自己真的好菜,好水。不得已,只得要用什么功能就在網(wǎng)上搜索對(duì)應(yīng)的資料。這樣才感覺有了一點(diǎn)眉目,要不然真的是只能望洋興嘆了。正所謂“紙上談兵終覺淺

16、,覺知此事要躬行?!彼栽诒緦W(xué)期課程設(shè)計(jì)是很及時(shí)、很必要的。這樣不僅能加深我們對(duì)MFC程序設(shè)計(jì)的掌握,而且還及時(shí)、真正的做到了學(xué)以致用。做MFC程序,首先就是做界面了,主體是一個(gè)對(duì)話框。我是先在紙上畫出了界面的布局,然后照著預(yù)先的布局做的界面,添加各種各樣的控件,每添加一個(gè)控件我就會(huì)在布局的紙上相應(yīng)控件的位置上標(biāo)上自己更改以后控件的ID號(hào),這樣既便于認(rèn)識(shí)出控件是代表哪個(gè),又不至于以后弄混淆了無法差錯(cuò),同樣的方法,修改了控件的屬性,對(duì)應(yīng)的函數(shù)以及變量名,目的就是為了自己能更好地識(shí)別每一個(gè)控件,防止自己犯低級(jí)錯(cuò)誤。當(dāng)然,之所以這樣做,也是由于以前犯過弄混淆ID和變量對(duì)應(yīng)不好的低級(jí)錯(cuò)誤。然后就是對(duì)各

17、個(gè)控件添加代碼了,這一過程才是真正考驗(yàn)自己編程能力和真正的難度所在。記得最開始實(shí)現(xiàn)雙目運(yùn)算符功能時(shí),一直在糾結(jié)怎樣鍵入運(yùn)算符后再鍵入第二個(gè)數(shù)字,怎么將結(jié)果通過“=”按鈕顯示出來。各種翻閱資料和冥想后才想出了解決辦法,利用flag標(biāo)志位和swich語句實(shí)現(xiàn)了這一功能。 由于時(shí)間問題和自身編程能力限制,雖然最后做出的計(jì)算器并不令我十分滿意,由于編輯框變量設(shè)置為double型,無法顯示+、-等符號(hào),使界面不那么友好。但這次課設(shè)確實(shí)讓我收獲了很多,所學(xué)的理論知識(shí)也及時(shí)得到鞏固。5.思考題1) 程序中如何實(shí)現(xiàn)小數(shù)的顯示與運(yùn)算? 答:首先通過小數(shù)標(biāo)志位j判斷當(dāng)前是否有小數(shù)點(diǎn)。最開始,j初始化為0,表示不是

18、小數(shù)鍵入數(shù)字后按下小數(shù)點(diǎn)按鈕,將j賦值為1,之后每鍵入一個(gè)數(shù)字,j將加一,利用m_edit_result=m_edit_result+8/(pow(10,j)語句來實(shí)現(xiàn)之后鍵入的數(shù)字為小數(shù)。最后再利用UpdateData(FALSE),刷新輸出到編輯框。2) 描述等號(hào)對(duì)應(yīng)的消息處理函數(shù)中需要處理的問題及相應(yīng)的實(shí)現(xiàn)代碼。答:等號(hào)對(duì)應(yīng)的消息處理函數(shù)主要處理雙目運(yùn)算符的運(yùn)算。利用單雙目運(yùn)算符的標(biāo)志 位flag,判斷其值選擇相應(yīng)的雙目運(yùn)算符的算法表達(dá)式進(jìn)行運(yùn)算,這些雙目運(yùn)算按順序依次為:加法、減法、乘法、除法及取對(duì)數(shù)。其中在除法和取對(duì)數(shù)運(yùn)算中還要判斷操作數(shù)是否合法,如果不合法輸出提示內(nèi)容,如果合法進(jìn)行

19、運(yùn)算。然后對(duì)結(jié)果判斷是否超過double型數(shù)據(jù)的顯示范圍,若超過也輸出提示信息。最后對(duì)相應(yīng)的標(biāo)志位進(jìn)行復(fù)位。實(shí)現(xiàn)代碼如下:void CZhoujie_calculate_updateDlg:OnButtonDengyu() / TODO: Add your control notification handler code hereUpdateData(true);switch(flag)case 1:num2=num1+m_edit_result;break; case 2:num2=num1-m_edit_result;break; case 3:num2=num1*m_edit_resu

20、lt;break;case 4:num2=num1/m_edit_result;break;case 5:num2=pow(num1,m_edit_result);break;m_edit_result=num2;z=1;j=0;UpdateData(false); 3)(選做)若實(shí)現(xiàn)了科學(xué)型和標(biāo)準(zhǔn)型,說明科學(xué)型和標(biāo)準(zhǔn)型實(shí)現(xiàn)的關(guān)鍵算法? 答:使用SetWindowPos()函數(shù),它可以改變窗先將窗口的大小和位置。先將窗口初始化,即SetWindowPos(NULL,0,0,279,340,SWP_NOMOVE);然后在“科學(xué)型”按鈕函數(shù)里添加SetWindowPos(NULL,0,0,400,

21、340,SWP_NOMOVE)語句,使窗口大小改變,這樣,就可以將科學(xué)型包含的功能得以顯現(xiàn)?!皹?biāo)準(zhǔn)型”按鈕函數(shù)設(shè)置為與初始化相同。通過這兩個(gè)按鈕來實(shí)現(xiàn)“科學(xué)型”、“標(biāo)準(zhǔn)型”的轉(zhuǎn)換。6.附錄6.1調(diào)試報(bào)告1) 在編譯時(shí)出現(xiàn)Cant open precompiled header file:debug/zhoujie_caculate.pch:No such file or director.按f7編譯所有,可解決這一錯(cuò)誤。2) 輸入一個(gè)小數(shù),按下回刪鍵,出現(xiàn)錯(cuò)誤。在回刪鍵的函數(shù)里沒有對(duì)小數(shù)的情況進(jìn)行算法設(shè)置,利用if語句判斷小數(shù)點(diǎn)標(biāo)志位j,然后進(jìn)行回刪。3)未定義變量的錯(cuò)誤:例如:'h&

22、#39; : undeclared identifier。在調(diào)試的過程中會(huì)出現(xiàn)某些變量未定義,導(dǎo)致這種錯(cuò)誤有可能是在對(duì)控件建立類向?qū)У臅r(shí)候沒有添加變量,也有可能是在添加代碼的時(shí)候變量名輸錯(cuò)導(dǎo)致的;對(duì)變量建立類向?qū)У臅r(shí)候添加變量或者改正錯(cuò)誤的變量名就能改正這種錯(cuò)誤。4)未添加消息響應(yīng)函數(shù)的邏輯錯(cuò)誤:在類的源文件中添加代碼之后,運(yùn)行的過程中代碼并沒有被應(yīng)用,錯(cuò)誤原因是沒有添加相應(yīng)的消息函數(shù);在類向?qū)е刑砑酉鄳?yīng)的消息函數(shù)之后,代碼就是可用的了。5)頭文件錯(cuò)誤:例如:unexpected end of file while looking for precompiled header directiv

23、e添加了打開文件的相關(guān)代碼后,編譯顯示相關(guān)語句沒有定義不能識(shí)別:這是由于忘了加頭文件;加上頭文件后編譯成功。6)丟失分號(hào)的語法錯(cuò)誤:syntax error : missing '' before ''在錯(cuò)誤出現(xiàn)的地方查看分號(hào)丟失的位置并添加上。6.2測試結(jié)果1)打開計(jì)算器程序程序,界面顯示如下:圖15初始化主界面顯示圖 圖16科學(xué)型計(jì)算器界面圖2)數(shù)字鍵入顯示圖17數(shù)字鍵入顯示圖3)菜單欄功能顯示圖圖18菜單欄功能顯示圖6.3關(guān)鍵源代碼1)定義全局變量int flag;/雙目運(yùn)算符標(biāo)志位int z=0;int j=0;/小數(shù)點(diǎn)標(biāo)志符int h=0;/弧度角度標(biāo)

24、志位double num1;/作為臨時(shí)變量存儲(chǔ)當(dāng)前的鍵入值double num2;/作為臨時(shí)變量存儲(chǔ)運(yùn)算結(jié)果2)數(shù)字鍵函數(shù)void CZhoujie_calculate_updateDlg:OnButtonZero() / TODO: Add your control notification handler code hereUpdateData(true);if(z!=0)m_edit_result=0;if(j=0)m_edit_result=m_edit_result*10+0;elsem_edit_result=m_edit_result+0/(pow(10,j);j+;Update

25、Data(false);z=0;void CZhoujie_calculate_updateDlg:OnButtonOne() / TODO: Add your control notification handler code hereUpdateData(true);if(z!=0)m_edit_result=0;if(j=0)m_edit_result=m_edit_result*10+1;elsem_edit_result=m_edit_result+1/(pow(10,j);j+;UpdateData(false);z=0;void CZhoujie_calculate_update

26、Dlg:OnButtonTwo() / TODO: Add your control notification handler code hereUpdateData(true);if(z!=0)m_edit_result=0;if(j=0)m_edit_result=m_edit_result*10+2;elsem_edit_result=m_edit_result+2/(pow(10,j);j+;UpdateData(false);z=0;void CZhoujie_calculate_updateDlg:OnButtonThree() / TODO: Add your control n

27、otification handler code hereUpdateData(true);if(z!=0)m_edit_result=0;if(j=0)m_edit_result=m_edit_result*10+3;elsem_edit_result=m_edit_result+3/(pow(10,j);j+;UpdateData(false);z=0;void CZhoujie_calculate_updateDlg:OnButtonFour() / TODO: Add your control notification handler code hereUpdateData(true)

28、;if(z!=0)m_edit_result=0;if(j=0)m_edit_result=m_edit_result*10+4;elsem_edit_result=m_edit_result+4/(pow(10,j);j+;UpdateData(false);z=0;void CZhoujie_calculate_updateDlg:OnButtonFive() / TODO: Add your control notification handler code hereUpdateData(true);if(z!=0)m_edit_result=0;if(j=0)m_edit_result

29、=m_edit_result*10+5;elsem_edit_result=m_edit_result+5/(pow(10,j);j+;UpdateData(false);z=0;void CZhoujie_calculate_updateDlg:OnButtonSix() / TODO: Add your control notification handler code hereUpdateData(true);if(z!=0)m_edit_result=0;if(j=0)m_edit_result=m_edit_result*10+6;elsem_edit_result=m_edit_r

30、esult+6/(pow(10,j);j+;UpdateData(false);z=0;void CZhoujie_calculate_updateDlg:OnButtonSeven() / TODO: Add your control notification handler code hereUpdateData(true);if(z!=0)m_edit_result=0;if(j=0)m_edit_result=m_edit_result*10+7;elsem_edit_result=m_edit_result+7/(pow(10,j);j+;UpdateData(false);z=0;

31、void CZhoujie_calculate_updateDlg:OnButtonEight() / TODO: Add your control notification handler code hereUpdateData(true);if(z!=0)m_edit_result=0;if(j=0)m_edit_result=m_edit_result*10+8;elsem_edit_result=m_edit_result+8/(pow(10,j);j+;UpdateData(false);z=0;void CZhoujie_calculate_updateDlg:OnButtonNi

32、ne() / TODO: Add your control notification handler code hereUpdateData(true);if(z!=0)m_edit_result=0;if(j=0)m_edit_result=m_edit_result*10+9;elsem_edit_result=m_edit_result+9/(pow(10,j);j+;UpdateData(false);z=0;3) 運(yùn)算符函數(shù)void CZhoujie_calculate_updateDlg:OnButtonDengyu() / TODO: Add your control notif

33、ication handler code hereUpdateData(true);switch(flag)case 1:num2=num1+m_edit_result;break; case 2:num2=num1-m_edit_result;break; case 3:num2=num1*m_edit_result;break;case 4:num2=num1/m_edit_result;break;case 5:num2=pow(num1,m_edit_result);break;m_edit_result=num2;z=1;j=0;UpdateData(false);void CZho

34、ujie_calculate_updateDlg:OnButtonAdd() / TODO: Add your control notification handler code hereUpdateData(true);num1=m_edit_result;UpdateData(false);flag=1;z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonSubstract() / TODO: Add your control notification handler code hereUpdateData(true);num1=m_edit

35、_result;UpdateData(false);flag=2;z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonMultiply() / TODO: Add your control notification handler code hereUpdateData(true);num1=m_edit_result;UpdateData(false);flag=3;z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonDevide() / TODO: Add your control notifi

36、cation handler code hereUpdateData(true);num1=m_edit_result;UpdateData(false);flag=4;z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonZhishu() / TODO: Add your control notification handler code hereUpdateData(true);num1=m_edit_result;UpdateData(false);flag=5;z=1;j=0;void CZhoujie_calculate_updateDl

37、g:OnButtonQufan() / TODO: Add your control notification handler code hereUpdateData(true);m_edit_result=-m_edit_result;UpdateData(false);z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonZhengxian() / TODO: Add your control notification handler code hereUpdateData(true);if(h=0)m_edit_result=sin(m_ed

38、it_result);else m_edit_result=sin(m_edit_result*PI/180);UpdateData(false);z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonYuxian() / TODO: Add your control notification handler code hereUpdateData(true);if(h=0)m_edit_result=cos(m_edit_result);else m_edit_result=cos(m_edit_result*PI/180);UpdateData

39、(false);z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonZhengqie() / TODO: Add your control notification handler code hereUpdateData(true);if(h=0)m_edit_result=tan(m_edit_result);else m_edit_result=tan(m_edit_result*PI/180);UpdateData(false);z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonDuishu

40、() / TODO: Add your control notification handler code hereUpdateData(true);m_edit_result=log(m_edit_result);UpdateData(false);z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonJiecheng() / TODO: Add your control notification handler code hereUpdateData(true);double i,j;i=m_edit_result;j=1;while(i!=0)j=j*i;i-;m_edit_result=j;UpdateData(false);z=1;j=0;void CZhoujie_calculate_updateDlg:OnButtonCl

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論