版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C+課程設計報告( 2013 2014 年度第 1 學期)計算器程序設計專業(yè)計算機科學與技術學生姓名班級學號指導教師完成日期2014年1月16日目錄摘要11、引言11.1 課題意義及目的11.2 課程設計內容及要求12、開發(fā)工具的介紹23、設計內容33.1 功能說明33.2 流程圖:34、系統(tǒng)的實現44.1 文件創(chuàng)建44.2 界面設計64.3 數值計算功能的實現105、程序結果的演示25.1 測試的研究與選擇25.2 測試環(huán)境35.3 實例測試結果3心得與體會5參考文獻6附錄1:RUN函數程序7附錄2:計算器程序8摘 要隨著當今社會的發(fā)展,越來越多的人開始使用電子商品,新的高考制度也允許使用計
2、算器,而作為一名計算機專業(yè)的學生,在使用工具的同時也應該學會制作這類工具。本課程設計是利用VC+編程,實現一個簡單計算器。此計算器類似于Windows附件中自帶的計算器,它利用不僅實現了簡單的四則運算功能,還實現了少部分科學函數計算功能,例如sin,cos,tan等而且具有簡潔的外觀,好看的背景。用戶可以使用任何合法的四則運算,并且顯示運算結果。計算器的設計是基于MFC下進行,通過各種控件的使用,實現要求中的功能。該報告介紹了該課題的意義,設計內容及要求, vc+開發(fā)工具的簡單使用方式。且著重闡述了計算器的設計思路和功能,并對代碼進行了詳細的解釋。關鍵詞 VC+ , 計算器 , MFC , 控
3、件計算器程序設計1、引言現代計算器一般是指“電子計算器”,所以,可以認為是“電子計算器”的簡稱。能進行數學運算的手持機器,擁有集成電路芯片,但結構簡單,比現代的電腦結構簡單的多,但是比較廉價,可以說是現代辦公必備用品之一。本課程設計主要在運算過程中,如果通過計算器來完成,就會減少計算量,該程序即可以在簡單計算器鍵面下進行簡單運算,也可以在科學計算器鍵面下進行高級的科學計算。并且可以分別計算弧度、角度的三角函數的計算等較為復雜的運算。1.1 課題意義及目的現實學習生活中,常會遇到一些數目較大數據繁雜的數值運算,徒手運算起來很困難,這時候我們就必須用到計算器,所以便著手開發(fā)了這個計算器程序,以便用
4、于自己的學習工作。人們對計算的要求不斷提高,普通的功能簡單的僅能進行四則運算的計算工具已經不能滿足需要,需要一種能進行多種計算。現在已經有一些功能較為強大、涵蓋面較廣的計算軟件,而且各種平臺的小工具仍不斷出現。這些大大方便了我們的生活給我們更多的選擇和實現方式。這個程序可以直接輸入數學表達式,不需要任何轉換,就可以直接輸出數學四則運算的結果。并且操作簡單、界面清晰、靈活、實用、方便等要求出發(fā),它所能完成的主要計算功能有以下幾個方面:加法,減法,乘法,除法,求平方根,求Sin,求Cos,求Tan,求Log10。計算器的設計使我們所學到的c語言知識在現實中得到檢驗!信息時代是科技和經濟發(fā)展的產物,
5、軟件產業(yè)是信息時代的產物,它在我們的生活工作中發(fā)揮著越來越大的作用,計算器的設計對我們知識的掌握有很大的作用,更能方便他人,可行性很強!1.2 課程設計內容及要求1設計內容設計一個簡單的計算器。要求能實現整數、小數算術運算。程序帶清零按鈕。2設計要求用VC進行編寫MFC程序,工程名為自己的姓名首字母和學號連接而成。注重編碼質量,代碼要有適當的注釋;提交設計報告一份(課程設計任務書、目錄、設計的基本思路、設計的步驟及主要代碼、心得體會、參考文獻)。程序運行如下圖1所示:圖1 計算器運行界面2、開發(fā)工具的介紹本課程設計使用的是Visual C+6.0。Visual C+6.0 是Microsoft
6、公司在1998年推出的基于Windows 9X和Windows NT的優(yōu)秀集成開發(fā)環(huán)境。該環(huán)境為用戶提供了良好的可視化編程環(huán)境,程序員可以里利用該開發(fā)環(huán)境輕松地訪問C+源代碼編輯器,資源編輯器和使用內部調試器,并且可以創(chuàng)建項目文件。Visual C+6.0不僅包括編譯器,而且它還包括許多有用組件,通過這些組件的協(xié)同工作,可以在Visual C+6.0集成環(huán)境中輕松地完成創(chuàng)建源文件,編輯資源,以及對程序的編譯,連接和調試等各項工作。VC+6.0是Windows 95/98、XP或Windows NT下的一個應用程序,本身對軟硬件沒有特殊要求。就是說它對環(huán)境的要求與Windows 95/98、Wi
7、ndows NT要求是一致的。硬件要求:一般在586以上的處理器、16MB以上內存、100MB以上的硬盤。軟件要求:Windows 95/98或Windows NT3.51以上版本。VC+ 6.0系統(tǒng)可以在一張CD盤上,也可以在“Visual Studio( Visual C+、Visual Foxpro)”等產品的第一張CD盤上。一般都有一個VC的自動安裝程序,也可以執(zhí)行VC6目錄下的setup.exe,在安裝包的提示下進行,對初學者可采用“典型安裝”方式。在安裝好VC 6.0系統(tǒng)后,有時根據需要添加或刪除某些部件,可插入CD盤重新執(zhí)行setup.exe安裝程序,安裝程序會檢測當前系統(tǒng)安裝V
8、C6的足件,用戶單擊“添加刪除”按鈕后,在“安裝維護”對話框中選定要添加的部件或撤消選定要刪除的部件。與一般的應用軟件一樣,有以下兩種啟動方式:(1)通過“開始”按鈕,選擇“程序”菜單,然后打開“Microsoft Visual studio 6.0中文版”子菜單中的“Microsoft Visual C+ 6.0 中文版”程序。(2)用戶也可以使用命令行啟動VC。單擊“開始”按鈕后選擇“運行”命令,在“運行”對話框中輸入c:Program FilesMicrosoft Visual StudioVC98VC6.exe(按默認盤符和路徑安裝)即可。3、設計內容3.1功能說明它的設計按軟件工程的
9、方法進行,系統(tǒng)具有良好的界面;必要的交互信息;簡約美觀的效果。使用人員能快捷簡單地進行操作。即可單機按鈕進行操作,也可直接通過鍵盤直接輸入。即時準確地獲得需要的計算的結果,充分降低了數字計算的難度和節(jié)約了時間,對人們的生活有一定的幫助。功能:(1)包含的功能有:加、減、乘、除運算,開方,平方等功能。(2)計算器上數字09為一個控件數組,加、減、乘、除等為一個控件組。(3)給對話框添加菜單。(4)制定高級按鈕控件,使按鈕改變默認的顏色。(5)制定高級編輯控件,該編輯控件可以指定文本文字的字體和顏色。(6)輸入的原始數據、運算中間數據和結果都顯示在窗口頂部的同一個標簽中。(7)計算功能基本上是用系
10、統(tǒng)內部函數。(8)程序可以能自動判斷輸入數據的正確性,保證不出現多于一個小數點、以0開頭等不正?,F象。(10)“CE”按鈕可以清除所有已輸入的數據從頭計算功能模塊的實現:(1)首先,添加高級按鈕控件類,在這個類中實現高級的按鈕控件。在此類中對于所有的對于按鈕的繪制工作都是在DrawItem函數中完成的,實現按鈕對鼠標不同的位置和動作改變不同的顏色,并且按鈕的客戶區(qū)域變成一個橢圓。(2)其次,添加一個高級編輯控件類,在此類的基礎上實現高級編輯控件。在OnDisplay函數中設置編輯框的顯示文本,再調用OnDraw函數將其顯示出來,并用指定的畫刷填充客戶區(qū),并且用指定的顏色繪制顯示文本。(3)最后
11、,實現主對話框界面功能,主要是加載菜單資源和對話框擴展功能的實現。在CCalculatorDlg:OnCreate函數中設定對話框的初始大小與位置,可以在這個對話框中進行窗口風格修改,位置設置等操作,然后添加菜單項ID_EXTEND的響應函數OnExtend。3.2流程圖:開始輸入第一個數輸入第二個數+、-、*、/等x2、log、tan、cos、sin、等顯示結果按“CE”清零結束4、系統(tǒng)的實現4.1文件創(chuàng)建利用MFC AppWinzard生成計算器應用程序框架具體步驟如下:(1)執(zhí)行VC程序,選擇File|New命令,彈出New對話框.單擊Projects標簽,轉到Projects選項卡,選
12、擇MFC AppWizard(exe)選項,然后在Project name文本框中輸入ZZ 。Lacation文本框是指項目的本地路徑。如圖所示。(2)單擊OK按鈕,彈出MFC AppWinzard_Step1對話框。選中基本對話框,如圖所示。(3)單擊Next按鈕,彈出MFC AppWinzard_Step2 of4對話框,如圖所示。(4)單擊Next按鈕,彈出MFC AppWinzard_Step3 of4對話框,如圖所示。(5)單擊Next按鈕,彈出MFC AppWinzard_Step4 of4對話框,如圖所示。單擊Finish按鈕,創(chuàng)建框架。4.2界面設計(1)編輯對話框及控件資源利
13、用Visual C+提供的資源編輯器對對話框資源進行編輯。刪除對話框中默認的OK和Cancel按鈕。添加一個Edit控件,其控件ID為IDC_EDIT1。接下來在對話框上的合適的位置上按下鼠標左鍵并拖動鼠標畫出一個大小合適的下壓式按鈕。在按鈕上單擊鼠標右鍵,在彈出的快捷菜單中選擇屬性選項,此時也彈出Push Button屬性對話框,如圖所示,在該對話框中輸入控件的ID值和標題屬性。并通過復制添加若干按鈕控件,其ID如表4-1所示。表1按鈕控件資源清單:按鈕名稱按鈕ID用途0B0按鍵01B1按鍵12B2按鍵23B3按鍵34B4按鍵45B5按鍵56B6按鍵67B7按鍵78B8按鍵89B9按鍵9.B
14、d小數點=Brun求值+Badd加號-Bsub減號*Bmult乘號/Bdiv除號CEce清屏Sqrtsqrt開方sinsin正弦coscos余弦tantan正切x2pf平方loglog對數所有按鍵都添加好后的效果如圖2所示。圖2(2)連接按鈕與變量除了建立上面所示的控件外,還要對每個按鈕控件定義一個對象與之相關聯,并為每個按鈕控件建立一個成員函數來響應其BN_CLICKED消息。如圖3所示:圖3為按鈕控件添加消息響應(3)關聯控件與對象在CAboutDlg類的聲明中,已經為編輯框、靜態(tài)框及每一個按鈕聲明了相應類型的對象與之對應。但這些控件與對象的關聯工作是在DoDataExchange函數中完
15、成的。圖4關聯控件與對象(4)添加背景圖為對話框添加背景圖,以增加界面的美觀性。首先為工程添加一幅位圖資源,以作為對話框的背景。然后加入一個Static控件,將其Type屬性設為Bitmap,并為Image屬性選擇位圖資源,如圖5所示。圖5添加位圖參數設置后對話框的外觀如圖6所示。圖6運行結果圖4.3數值計算功能的實現具體功能的實現首先添加成員變量。該計算器中大部分的運算都是二元運算,即需要兩個操作數和一個二元運算操作符。所以必須聲明兩個浮點數,分別用來表示初始操作數和結果操作數,同時,必須聲明兩個字符串類型的變量,分別用來顯示初始操作數。還需要一個整形變量來記錄當前運算符,以及一個整形變量來
16、記錄當前小數點按鈕是否被單擊過。定義如下:public:CZZDlg(CWnd* pParent = NULL);/ standard constructordouble m_input; /保存輸入的數字bool m_done,opt; /布爾類型成員變量,判斷一次計算結束,和操作符點擊的憑據void Numin(double put); /成員函數,處理輸入的數據double num_1,num_2; /兩個操作數void operate();/輸入運算符后要調用的函數int yun;/運算判斷bool dian;/判斷小數點是否被點擊int n;/顯示小數部分的輸入位數double m;
17、void OnMnuCut();void OnMnuCopy();void OnMnuPaste();void OnContextMenu(CWnd* pWnd, CPoint point);當小數點鍵被單擊時,首先判斷小數點鍵是否已經被單擊過,以及當前初始操作數字符串是否為空。如果小數點鍵沒有被單擊過,而且當前初始操作數字符串不為空,則將小數點追加到初始操作數末尾,并且修改小數點標識dian為TRUE。實現代碼如下:小數點的定義如下:void CZZDlg:OnBd() / .dian=true;n=1;程序判斷代碼實現如下:void CZZDlg:Numin(double put) if(
18、m_done=true|opt=true) /如果一次計算結束或運算符已經選擇 if(dian=false)/如果小數點還沒有被按下 m_Result=m_input=0.0; UpdateData(false);m_input=m_input*10+put;m_Result=m_input;UpdateData(false);opt=false;m_done=false; else if(dian=true)/如果小數點已經被按下/ m_Result=m_input=0.0; UpdateData(false);int i; for(i=0;in;i+) put=put/10; m=put;
19、m_input=m_input+m;m_Result=m_input;UpdateData(false);opt=false;m_done=false; else if(dian=false)/如果小數點還沒有被按下 m_input=m_input*10+put;m_Result=m_input;UpdateData(false);opt=false;m_done=false; else if(dian=true)/如果小數點已經被按下/ int i; for(i=0;in;i+) put=put/10; m=put;m_input=m_input+m;m_Result=m_input;Upd
20、ateData(false);opt=false;m_done=false; n+;當數字鍵09被單擊時,則將當前所按鍵加到初始操作數末尾,并將初始操作數顯示出來。以數字鍵盤被單擊為例,實現代碼如下:void CZZDlg:OnB0() / 0Numin(0.0);void CZZDlg:OnB1() / 1Numin(1.0);void CZZDlg:OnB2() / 2Numin(2.0);void CZZDlg:OnB3() / 3Numin(3.0);void CZZDlg:OnB4() / 4Numin(4.0);void CZZDlg:OnB5() / 5Numin(5.0);vo
21、id CZZDlg:OnB6() / 6Numin(6.0);void CZZDlg:OnB7() / 7Numin(7.0);void CZZDlg:OnB8() / 8Numin(8.0);void CZZDlg:OnB9() / 9Numin(9.0);void CZZDlg:operate()num_1=m_Result;opt=true; dian=false;n=0;當清除鍵CE被單擊時,則對所有的成員變量進行初始化。清除小數點標識,將保存初始操作數和結果操作數的字符串清空,將保存初始操作數和結果操作數的浮點數清0,將當前操作符清0。實現代碼如下:void CZZDlg:OnBce
22、() / CEm_input=0; m_Result=float(m_input);UpdateData(false);m_done=false;dian=false;opt=false;n=0;當任何一個運算符鍵被單擊時,首先根據當前運算符計算運算結果,再修改記錄當前運算符的變量的值。以加號鍵被按下為例,實現代碼如下:加號函數:void CZZDlg:OnBadd() / + operate(); yun=1;void CZZDlg:operate()num_1=m_Result;opt=true; dian=false;n=0;加號運算的實現如下:if(yun=1)/判斷執(zhí)行何種運算 m_
23、Result=num_1+num_2; UpdateData(false);計算機還有簡單的函數功能,函數定義如下:void CZZDlg:Onlog() operate();yun=5;void CZZDlg:Onpf() operate();yun=6;void CZZDlg:Onsqrt() operate();yun=7;void CZZDlg:Onsin() operate();yun=8;void CZZDlg:Ontan() operate();yun=9;void CZZDlg:Oncos() operate();yun=10;函數運算實現如下:else if(yun=6)/平
24、方 m_Result=num_1*num_1; UpdateData(false);else if(yun=7)/根號if(num_1=0)m_Result=0;UpdateData(false); m_Result=sqrt(num_1); UpdateData(false);else if(yun=8)/sin m_Result=sin(num_1*PI/180); UpdateData(false);else if(yun=9)/tan m_Result=tan(num_1*PI/180); UpdateData(false);else if(yun=10)/cos m_Result=c
25、os(num_1*PI/180); UpdateData(false);計算器的核心運算函數Run。在Run中,首先將記錄當前操作數的字符串中保存的字符串轉化為浮點數;其次根據當前操作符的類型,選擇適當的運算操作;再將記錄結果操作數的浮點變量中的值轉化為字符串,并顯示在結果編輯框中。Run函數實現代碼見附錄1。計算器的全部代碼實現見附錄2。5、程序結果的演示5.1測試的研究與選擇測試過程中要判斷測試是否成功,首先要分析程序界面的變化是否正常、輸入數據顯示是否正常,然后是計算數據的結果是否正確,最后看各個功能鍵是否能正常使用。5.2 測試環(huán)境測試環(huán)境如下: 測試系統(tǒng): Windows win7
26、*64位測試工具: Visual Studio C+ 6.0 5.3 實例測試結果首先,在運行界面測試簡單運算是否能正常運算,輸入“34+87=”見結果圖5-1所示,觀察計算結果是否正確。圖5-1“34+78=”的運行結果其次,輸入“2*4=”,見結果圖5-2所示圖5-2“2*4=”的運行結果再輸入“9/3=”,見結果圖5-3所示圖5-3“9/3=”的運行結果最后出入25開根,見結果圖5-4所示:圖5-3“25開根=”的運行結果測試結構顯示,“計算器”運行基本正常,沒有發(fā)現明顯的錯誤。心得與體會經過兩個星期的努力,課程設計基本完成了。在課程設計的實踐中,學到很多有用的知識,也積累了不少寶貴的經
27、驗。本次設計是以一個計算器的實現為基礎,掌握一個基于對話框的應用程序的編程方法以及對話框常用控件的高級編程。在課程設計中我了解到到對話框應用程序的編程模式、對話框添加背景圖片。課程設計是需要大量時間去動手練習才能體驗到它的內涵的,同時還需要用心地投入,時間和情感花下去之后,的確感受到有所收獲,增加了對編程的興趣。通過這次課程設計,掌握了對話框的相關操作,也體會到書寫代碼一定要仔細,有時候一小點拼寫錯誤會浪費很多調試程序的時間,再有一點就是要好好學習英語,對編程有很大幫助。經過設計的各個環(huán)節(jié),從中學到了很多,鍛煉了自己系統(tǒng)的設計的能力,從系統(tǒng)的需求到系統(tǒng)的功能,到系統(tǒng)的測試,到系統(tǒng)的發(fā)布,可以掌
28、握到一個完全的過程,這樣對我們以后在工作中或學習中得到很好的鍛煉,為用VC+編輯軟件奠定基礎。這次課程設計讓我學到了很多,不僅鞏固了MFC程序設計知識,而且也培養(yǎng)了我的動手能力,令我的創(chuàng)造性思維得到拓展。期待今后有更多類似的鍛煉機會。當然,本課程設計所采取的解決問題的方法并不是非常完善的,在今后的學習、工作中,我將繼續(xù)認真學習,以求能做出更完善的程序。參考文獻1 徐金梧TURBO C實用大全北京機械工業(yè)出版社1996. 52 江漢秀C語言實用程序薈萃西安西安電子科技大學出版社19933 譚浩強C語言程序設計北京清華大學出版社1999.124 楊開城C語言教程實驗與練習北京人民郵電出版社2002
29、.85 揣錦華.面向對象程序設計與VC+實踐西安電子科技大學出版社.20056 張建宏、湯練兵、馬德駿計算機程序設計基礎-C語言程序設計科學出版社20067陳清華Visual C+課程設計案例精選與編程指導東南大學出版社2004附錄1:RUN函數程序void CZZDlg:OnBrun() / TODO: Add your control notification handler code here/=num_2=m_Result;if(yun=1)/加 m_Result=num_1+num_2; UpdateData(false);else if(yun=2)/減 m_Result=num_
30、1-num_2; UpdateData(false);else if(yun=3)/乘 m_Result=num_1*num_2; UpdateData(false);else if(yun=4)/除 m_Result=num_1/num_2; UpdateData(false);else if(yun=5)/logif(num_1=0)m_Result=0;UpdateData(false); m_Result=log10(num_1); UpdateData(false);else if(yun=6)/平方 m_Result=num_1*num_1; UpdateData(false);e
31、lse if(yun=7)/根號if(num_1 1000#pragma once#endif / _MSC_VER 1000/ CZZDlg dialogclass CZZDlg : public CDialog/ Constructionpublic:CZZDlg(CWnd* pParent = NULL);/ standard constructordouble m_input; /保存輸入的數字bool m_done,opt; /布爾類型成員變量,判斷一次計算結束,和操作符點擊的憑據void Numin(double put); /成員函數,處理輸入的數據double num_1,nu
32、m_2; /兩個操作數 void operate();/輸入運算符后要調用的函數int yun;bool dian;/判斷小數點是否被點擊int n;/顯示小數部分的輸入位數double m;void OnMnuCut(); void OnMnuCopy(); void OnMnuPaste();void OnContextMenu(CWnd* pWnd, CPoint point);/ Dialog Data/AFX_DATA(CZZDlg)enum IDD = IDD_ZZ_DIALOG ;doublem_Result;/AFX_DATA/ ClassWizard generated vi
33、rtual function overrides/AFX_VIRTUAL(CZZDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CZZDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);a
34、fx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnB0();afx_msg void OnB1();afx_msg void OnB2();afx_msg void OnB3();afx_msg void OnB4();afx_msg void OnB5();afx_msg void OnB6();afx_msg void OnB7();afx_msg void OnB8();afx_msg void OnB9();afx_msg void OnBadd();afx_msg void OnBce();a
35、fx_msg void OnBd();afx_msg void OnBdiv();afx_msg void OnBmult();afx_msg void OnBrun();afx_msg void OnBsub();afx_msg void OnChangeEdit1();afx_msg void Onpf();afx_msg void Onsin();afx_msg void Onsqrt();afx_msg void Ontan();afx_msg void Oncos();afx_msg void Onlog();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_IN
36、SERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_ZZDLG_H_70D9D5A9_C97C_488F_8F36_08F210B07A01_INCLUDED_)/ ZZDlg.cpp : implementation file/#include stdafx.h#include ZZ.h#include ZZDlg.h#include string.h#include #include
37、malloc.h#include #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function
38、overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDat
39、aExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CZZDlg dialogCZZDlg:CZZDlg(CWnd* pParent /*=NULL*/): CDialog(CZZDlg:IDD, pParent)/AFX_DATA_INI
40、T(CZZDlg)m_Result = 0.0;/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CZZDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CZZDlg)DDX_Text(pDX, IDC_EDIT1, m_Result);/AFX_DATA_MAPBE
41、GIN_MESSAGE_MAP(CZZDlg, CDialog)/AFX_MSG_MAP(CZZDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_B0, OnB0)ON_BN_CLICKED(IDC_B1, OnB1)ON_BN_CLICKED(IDC_B2, OnB2)ON_BN_CLICKED(IDC_B3, OnB3)ON_BN_CLICKED(IDC_B4, OnB4)ON_BN_CLICKED(IDC_B5, OnB5)ON_BN_CLICKED(IDC_B6, OnB6)ON_BN_C
42、LICKED(IDC_B7, OnB7)ON_BN_CLICKED(IDC_B8, OnB8)ON_BN_CLICKED(IDC_B9, OnB9)ON_BN_CLICKED(IDC_Badd, OnBadd)ON_BN_CLICKED(IDC_Bce, OnBce)ON_BN_CLICKED(IDC_Bd, OnBd)ON_BN_CLICKED(IDC_Bdiv, OnBdiv)ON_BN_CLICKED(IDC_Bmult, OnBmult)ON_BN_CLICKED(IDC_Brun, OnBrun)ON_BN_CLICKED(IDC_Bsub, OnBsub)ON_EN_CHANGE(
43、IDC_EDIT1, OnChangeEdit1)ON_BN_CLICKED(IDC_pf, Onpf)ON_BN_CLICKED(IDC_sin, Onsin)ON_BN_CLICKED(IDC_sqrt, Onsqrt)ON_BN_CLICKED(IDC_tan, Ontan)ON_BN_CLICKED(IDC_cos, Oncos)ON_WM_RBUTTONDOWN()ON_BN_CLICKED(IDC_log, Onlog)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CZZDlg message handlersBOOL CZZDlg:OnInitDialog()CD
44、ialog:OnInitDialog();m_input=0.0;opt=false,m_done=false;dian=false;/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAbout
45、Menu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a con
46、trolvoid CZZDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/vie
47、w model,/ this is automatically done for you by the framework.void CZZDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the mini
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色建筑項目HSE管理體系優(yōu)化合同3篇
- 2024版有機化肥技術服務合同
- 2024版美容師合同
- 幼兒園外教2025年度聘用合同2篇
- 全球電子商務人才培養(yǎng)2025年度國際協(xié)調項目合同
- 年度地震電磁輻射觀測儀產業(yè)分析報告
- 2024版社工項目合同范本
- 二零二五年度智能樓宇電梯全面維保及保養(yǎng)服務合同2篇
- 二零二四年??漆t(yī)院聘任康復治療師服務合同3篇
- 重慶市二零二五年度房屋買賣中介服務合同2篇
- 《請柬及邀請函》課件
- 中小銀行上云趨勢研究分析報告
- 機電安裝工程安全培訓
- 遼寧省普通高中2024-2025學年高一上學期12月聯合考試語文試題(含答案)
- 青海原子城的課程設計
- 常州大學《新媒體文案創(chuàng)作與傳播》2023-2024學年第一學期期末試卷
- 麻醉蘇醒期躁動患者護理
- 英語雅思8000詞匯表
- 小學好詞好句好段摘抄(8篇)
- JT-T-1059.1-2016交通一卡通移動支付技術規(guī)范第1部分:總則
- 《茶藝文化初探》(教學設計)-六年級勞動北師大版
評論
0/150
提交評論