計算器的課程設計()_第1頁
計算器的課程設計()_第2頁
計算器的課程設計()_第3頁
計算器的課程設計()_第4頁
計算器的課程設計()_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、徐州師范大學物電學院課程設計報告課程名稱:計算機程序設計實訓題目:科學計算器專業 班級:電子科學與技術學生姓名:徐金富學生學號:09223034日期:2011/12/10指導教師:趙紀平物電學院教務部印制說明:1、報告中的第一、二、三項由學生在課程設計開始前填寫,由指導教師指 導并確認簽字。2、學生成績由指導教師根據學生的設計情況給出各項分值及總評成績,并 填寫成績評定表。3、所有學生必須參加課程設計的答辯環節,凡不參加答辯者,其成績一律 按不及格處理。答辯小組成員應由2人及以上教師組成。答辯后學生根 據答辯情況填寫答辯記錄表。4、報告正文字數一般應不少于3000字,也可由指導教師根據本門課程

2、設 計的情況另行規定。5、平時表現成績低于6分的學生,取消答辯資格,其該課程設計成績按不 及格處理。6、課程設計完成后,由指導教師根據完成情況寫出總結。7、此表格式為徐州師范大學物理與電子工程學院提供的基本格式,指導教 師可根據本門課程設計的特點及內容做適當的調整。一、課程設計目的、任務和內容要求:計算機語言程序設計是一門以編程實踐為主的專業課,目的在于培養學生利 用計算機語言進行軟件開發所必需的基本思想和基本技能,進一步提高綜合應用計算 機語言的各種編程知識和技巧進行程序設計的能力,通過本次課程設計,學生應能達 到具備設計功能較為復雜的應用程序的能力,同時培養學生自主學習和獨立創新的精 神。

3、任務如下:1. 進行需求分析和概要設計,給出流程圖。2. 寫出詳細設計,熟悉其中采用的關鍵技術。3. 給出具體的編碼實現并調試。4. 寫課程設計報告提交源程序。內容要求:設計并完成軟件系統。要求:1. 應具有簡潔友好的用戶界面。2. 要求軟件系統的功能完整。3. 要求程序具備正確性,可讀性和運行的高效性。二、進度安排:第13天:查找資料,進行需求分析和概要設計;第46天:各模塊的詳細設計;第712天:軟件實現與調試;第1314天:寫課程設計報告并提交源程序。三、主要參考文獻:【1】王敬棟visual c+課程設計案例精編(m)北京:中國水利水電出版社2006【2】夏崇錯 任海軍vsiualc+

4、課程設計案例精編(m)北京:清華大學出版社20083 鄭阿奇visual c+實用教程(m)北京:電子工業出版社20104 陳清華.visual c+課程設計案例精選與編程指導(m)南京東南大學出版 社,200451夏崇錯 任海軍vsiualc+課程設計案例精編(m)北京:清華大學出版社2002指導教師簽字:年 月 日目錄摘要iiabstract i i1緒論 11.1背景、目的11.2簡易計算器的功能12設計方案簡述22. 1輸入流程分析22. 2計算流程分析 23 i羊細設計43. 1起始設計步驟43. 1界面設計54設計結果及分析104.1測試設計結果104. 2設計分析105總結12參

5、考文獻13附錄程序代碼14摘要隨著計算機網絡通信技術、微電子技術的快速發展,作為21世紀的接班人,跟上 時代的前進步伐,這就需要適應能夠適應現實生活的節奏,現實生活中,很多時候要經 行計算來處理一些事務,設計計算器可以幫助人們避免繁瑣的計算,也可以加快人們辦 事效率,設計中運用mfc設計的是簡單計算器,包括雙目運算和單目運算功能。雙目運 算符包含基本的四則運算及乘幕功能,單目運算符包含三角函數,反三角函數,階乘, 對數,開方,倒數等方面的運算。可對輸入任意的操作數,包括小數和整數及正數和負 數進行以上的所有運算并能連續運算。當岀現錯誤會給岀相應提示。關鍵詞:簡單計算器;mfc;計算abstra

6、ctwith the computer network communication technology, the rapid development of microelectronics technology, as the successor to the 21st century, keep up the pace of the times, which need to adapt to adapt to the rhythm of real life, real life, many times to be calculated by the line deal with some

7、matters, the design calculator can help people avoid complicated calculations, you can also expedite renmen efficiency, the design of mfc design is the use of simple calculator, including the eyes and the unary operator function. binocular operators include basic arithmetic, and power functions, una

8、ry include trigonometric functions, inverse trigonometric functions, factorial, logarithm, square root, reciprocal and other aspects of operations. the operation can enter any number, including decimals and integers, and positive and negative for all of the above operations and to continuous operati

9、on. when an error will give a prompt.keywords: simple calculator;mfc calculation1緒論背景' 目的21世紀,隨著科技的發展,人們生活節奏的加快,要想跟上吋代的前進步伐,這需 要我們適應能夠適應現實生活的節奏,而生活屮有很多方面需要進行計算,如統計,測 量,等等各方面需要處理大量的計算任務,如果只靠人腦通過筆來計算,那效率低下, 還煩瑣。而且容易出錯,這就需要處理事件快捷的工具一一計算器。目前所有計算機帶 自帶計算器,大大的方便人們的計算,處理事務,本設計中,運用mfc實現計算器的 功能。同樣可以方便生活中處

10、理計算類的事件,避免煩瑣的計算,提高人們的處理計算 事件的辦事效率,而且計算不會出錯。當輸入有錯時候,可以自動提示錯誤。計算器的發展已經經過幾十年的過程,現在的計算器種類繁多,運算功能強大,在 各行各業中均有應用,它的發展讓人們節省了很多時間精力,計算器的發展止在向各個 方向延伸,每個行業所需要的計算有差別,這就發展了各種類型單獨的計算辭,計算的 運算速度,計算數字的龐大也在不斷向前發展,本設計中的簡易計算器,可以實現簡單 的單目和雙目運算,方便一些簡單事務的處理。2簡易計算器的功能計算器的功能多少決定了計算器的實用價值,本設計中的簡易計算器實現的主要功能 有:1)簡單的四則運算:力口、減、乘

11、、除以及取百分數2)開方、幕運算、倒數、對數、階乘、平方3)正弦、余弦、正切這些功能都是很常見的需要計算器功能,它可以幫助人們完成很多需要計算處理的 功能。所以次簡易計算器很有實用價值,可以很好的幫助使用者,讓計算變的簡單化,不 必去進行復雜的筆算,很大程度上的減輕了使用者的精神上的損耗,也很大程度上提高 了使用者的辦事效率。2設計方案簡述2. 1輸入流程分析如圖2-1是整個計算器的流程圖,打開計算器程序,輸入數據,調用輸入數據子程 序。子程序開始吋m_show為零。按下數字按鈕后,判斷m_show的正負號,對其進行相 關處理,然后在判斷是否有小數點,處理后輸岀結果。輸入數據子函數圖21輸入數

12、據子函數流程圖2. 2計算流程分析回到總流程圖中,輸完第一個操作數后,若按下雙目運算符,則把n)_show存入 datal,按下輸入第二個操作數并算出結果。若按下的是單目運算符,則直套對其處理 得出結果。若按下清零,則ni.show等于0.在運算中還要判斷運算是否合法,以及結果是否超出顯示范圍,以做出相關提示,按下清零。算出后把結果保存至m_show +0若 需用算岀的結果繼續運算則當按下運算符號時,將自動先將m.show的數字保存到datal 中再進行運算。科學計算器總流程圖如圖2-2所示結束n 、圖2-2科學計算器總流程圖3詳細設計過程3. 1起始設計步驟1.打開microsoft vis

13、ual c+ 6. 0,在文件屮點擊新建,在彈出框內選擇mfc appwizatdcxc工程,輸入工程名jianyi jisuanqi及其所在位置,點擊確定.2將彈岀mfc appwizard-step 1對話框,選擇基本對話框,點擊完成新建工程信息 如圖3-1贛建工程信邑appwizard will create a new skeleton project with the following specifications:application type of jianyijisuanqi:dialog-based application targeting:win32classes t

14、o be created:application: cjianyijisuanqiapp in jianyijisuanqi.h and jianyijisuanqi.cpp dialog: cjianyijisuanqidig in jianyijisuanqidig.h and jianyijisuanqidig.cppfeatures:+ about box on system menu+ 3d controls+ uses shared dll implementation (mfc42.dllj+ activex controls support enabled+ localizab

15、le text in:中文簡體,中國】re a 錄:d:vk工管理數據庫jianyijisuanqi圖3t這樣,mfc appwizard就建立了一個基于對話窗口的程療;框架,如圖3-2所示s junyijisuanqi $天+ t - (jianyijisuanqi.rc - idd_j1anyu1suanqi_dialog( dialog)肖玄件ww 血入 jew鉀e jm 50口 jsftn酋30©寧二 口丙百|喰丨_dl cjianyijisimnqidig | (all class members ) cjianyijisunnqidigco.jianyijisuanqi

16、resources 由 lj dialog 印 o icon |_| string table lj version可 jianyijisuanqi : class. | 程i re:oe fllevi i叵閤ablo®1 i國囹ulljgr&日団 e 國ztek編譯l調試 査找文件x 查找文件2、結果 sql debygsg丿圖3-23. 2界面設計3. 2.1 創建控件在圖2所示的resoure view選項卡屮打開dialog資源組,雙擊 i dd_ ji an yijisu anqi _d ialog,在右邊的窗口中顯示出待編輯的對話框。開始擺放控件, 包括編輯框和按

17、鈕的創建。其中按鈕的創建以“1”為例進行介紹,其他按鈕的創建可 參照它進行操作。1)在圖3-2中controls的“編輯框討安鈕上單擊鼠標左鍵,在對話框編輯窗口上合適 的位置按下鼠標左鍵并拖動鼠標畫出一個大小合適的編輯框。在編輯框上單擊鼠標右 鍵,在彈出的快捷萊單屮選擇屬性選項,此時彈出edit屬性對話框,如圖33所示,在 該對話框中輸入id屬性,再選擇styles屮將align test屮選擇right oid: |ldc_show g顯示廠group廠旦幫助id廠 disabled j7 tab 停止圖3-32)在圖32屮controls的“buttoit按鈕上單擊鼠標左鍵,在對話框上的合

18、適的位置 上按下鼠標左鍵并拖動鼠標畫出一個大小合適的下壓式按鈕。在按鈕上單擊鼠標右鍵, 在彈出的快捷菜單屮選擇屬性選項,此時也彈出push button屬性對話框,如圖3-4所示, 在該對話框中輸入控件的id值和標題屬性。圖3-4按照“1”的操作過程編輯完成其他按鈕和編輯框等對彖的屬性。各按鈕與編輯框等對象的屬性如表31、32、3-3. 34所示表3-1數字按鈕和編輯框等對彖的屬性控件類型id展性設計edit boxidc show editbuttonidc num1 button1buttonidc num2 button2buttonidc num3 button3buttonidc n

19、um4 button4buttonidc num5 butt0n5buttonidc num6 butt0n6buttonidc num7 butt0n7buttonidc num8 button8buttonidc num9 button9buttonidc numo button0表32.四則運算的按鈕對象屬性buttonidc fu1button+buttonidc fu2 butt0nbuttonidc fu3 buttonxbuttonidc fu4 butt0n表33三角函數集反三角函數的屬性buttonidc sin buttonsinbuttonidc cos buttonco

20、sbuttonidc tan buttontan表34其他按鈕的屬性buttonidc log buttonlogbuttonidc mod buttonmodbuttonidc ke2 butt0nxa2buttonidc ke4 button10axbuttonidc fu7 buttonbuttonidc_equal_buttonbuttonidc_fu5_butt0n%buttonidc_fu6_button+/-buttonidc_backspace_button回刪buttonidc_c_button清零buttonidc ke1 button1/xbuttonidc ln but

21、toninbuttonidc_ce_buttonj元成后界面如圖3-5所示電科學計(09223034徐金富)回刪8入區+ i土 i48123494567891050111213141516175118192028222324522526272930312011年12月2012年1月星期日星期一星期二星期三星期四星期五星期六11234567289101112131431516171819202142223242526272852930312012年2月科學符號區tancossinjwf乍人,09«131徐金畜(版權所有 請勿模仿)nodlog1234567891011121314151

22、61718!920212223242526272829圖3-53. 2. 2程序運行時初始化1)jianyi jisuanqidlg. cpp 里加上頭文件include "math. h以及定義#define pi 3. 141592653589792),zjianyi jisuanqidlg. h中變量的定義bool decimal二0;/判斷是否小數double data2=0;double datal=0;double data_dec=0;double dcita_int=0;/輸入數據整數與小數部分double valuc=0;double count=10;int ty

23、pe;/存放運算類型3. 2.3.連接變量和代碼1)給編輯框連接變量。在編輯框上單擊鼠標右鍵,在彈出菜單中選擇“建立類向導” 菜單項,彈出mfc classwizard對話框,選擇member variables選項卡,再將class name 中選擇 cjianyijisuanqidlg.雙擊 idc_show_edit,彈出 add menber variable,連接變量為 m_show,變量類型設定為cstring型。如圖36所示。圖3-62)給“廠按鈕連接代碼。在按鈕上單擊鼠標右鍵,選擇“建立類向導”菜單項,在彈 出的對話框中選擇messages maps選項卡,然后在object

24、ids列表框中雙擊選擇 idc_num1_button,在messages列表框屮選擇雙擊bn.clicked項,即給“ 1 ”按 鈕選擇單擊衣鈕事件,如圖3-7所示圖37 “1”按鈕鏈接代碼對話框即對應的添加按鈕“1”的代碼void cjsqdlg:onnumlbutton()/ todo: add your control notification handler code here updatedatao ;if(m_flag=l)mflag = 0; m_show=" m_show+=, r ;elseif(m_show二二0")"m show二; m_s

25、how+二'r ;"updatedata(false);其他按鈕如參照按鈕“1”來連接代碼,詳細代碼見附錄。4設計結果及分析4.1測試設計結果1)輸入“100”,“-” , "28.5",“二”,得到結果如圖4-1所示圖4-12).輸入(f,%o叩運行結果如圖4-2所示圖424. 2設計分析4. 2. 1操作數的輸入編輯框所關聯的變量為m_show,程序開始時為0。每按下一個數字鍵按鈕,就把它 累加到m_show里并刷新顯示。bool型變量用docimal來判斷是否有小數點和一個整型 數data_int來表示小數點后的數據的位數。當docimal二1時,表

26、示有小數點,否則則 表示無小數點。按下小數點按鈕后執行docimal二1。當按下一個數字鍵時,首先根據 decimal判斷是否按下小數點,若有即運行count二count*10,則為此次鍵入的數所處的 位數,將鍵入的數除以count然后累加到編輯框所關聯的變量m_show上,若沒有則把 m_show乘以10,然后累加到編輯框所關聯的變量m_show上。4.2.2單目運算符功能的實現由于單目運算符中必須有執行運算的函數,因而頭文件中要加入math, h,如 m_show=sqrt (m_show).按下按鈕即可實現其功能。4. 2. 3雙目運算符功能的實現雙冃運算符需要兩個操作數才能運算,所以在

27、執行雙冃運算符按鈕的函數代碼中, 要把m.show中的值保存到變量datal中,然后把m.show清零。這樣即可保存第一個操 作數。運算在實現部分在“二”中實現,過程4.2.4中闡述的。4.2. 4等于按鈕的功能實現我們在每個函數中運用了 type來定義運算類型,每個函數的type不同(如加法type二0; 減法type二1);在等于號按鈕的實現時候,我們用switch (type)來實現,當case 0時 候,實現加法運算value=datal+data2;break;當case 1時候,同樣實現減法運算 value=datal-data2;break;用break來跳!ju函數,結束運算,

28、現實結果。5總結在此我要感謝趙紀平老師,她嚴謹的治學態度、追求卓越的生活精神,特別是她教 課時候的激情深深地感染著我。我還要感謝所有關心幫助過我的同學。基于vc+下的設計,可以看出vc+它的多態性,繼承性,封裝性的優越特點,這 讓編譯設計更加的簡單方便,特別是它的繼承性。使用mfc減少了大量建立windows程 序時必須編寫的代碼,由于vc+的繼承和封裝,正是由于mfc編程方法充分利用了面向 對象技術優點,使的設計程序編程吋極少需要關心對象方法的實現細節,而只需要簡單 的調用自己已有對象的方法就可以了。簡單的說,mfc的優點可以歸結為以下幾點:(1) mfc是c+的microsoft wind

29、ows應用程序的編程接口。(2) mfc開發的應用程序使用了標準化的結構。(3) 使用mfc開發的應用程序不僅小,而且運行快。(4) visual c+工具降低了編碼的復雜性。(5) mfc庫功能豐富經過長達2個星期的vc+課程設計和多番測試,終于將設計的簡易計算器能夠完成 功能描述內容中的全部功能。在本學期中我們開設了visual c+實用教程課的mfc 部分皆為需要實踐內容,在開始著手程序設計時,有些功能感覺無從下手,都不知道要 干什么。正所謂“紙上談兵終覺淺,覺知此事要躬行。”所以在本學期末的課程設計是 很及時、很必要的。這樣不僅能夠加深我們對mfc程序設計的掌握,而且還及吋、真正 的做

30、到了學以致用。讓我感受到了:學完vc+后做課程設計得基本功過硬,設計過程中不得有半點馬虎。同吋在實踐過 程中提高自己找錯糾錯能力,通常錯誤就那幾種,多練習就熟練了。同吋在設計過程中 多思考,能否更好的完成實現。設計過程中我們要善于查找資料提高自己的信息搜索查詢能力,要善于利用并能更 哈的利用網絡來獲得知識,獲得幫助。在面臨無從下手等這些問題只要找到相關的資料 就會得到提示從而理解所要解決問題的大致方向。當我們有了明確的目的,就可以發揮 自己的頭腦來完成實現它了。在設計過程中我們要善于思考。在程序設計過程中總會有些實現難點和最初完成程 序時免不了的有許多不足,這就需要自己根據代碼及實現的功能去認

31、真思考并解決遇到 的難點。只有這樣不斷糾正不斷思考,才能完成程序設計功能目的,才能在實踐中不斷 提升自己。通過本次的課程設計讓我學到了并收獲了很多,不僅僅鞏固了先前學的mfc程序 設計知識,讓我認識到了自己很多的不足,而且此次課程設計還培養了我的動手實踐能 力,讓我的創造性思維得到拓展。它還讓我感受到了實踐的重要性。參考文獻【1】 鄭阿奇visual c+實用教程(m)北京:電子工業出版社20102王敬棟visual c+課程設計案例精編(m)北京:中國水利水電出版社2006【3】夏崇錯 任海軍vsiualc+課程設計案例精編(m)北京:清華大學岀版社20084 陳清華.visual c+課程

32、設計案例精選與編程指導(m)南京.東南大學出版 社,20045 夏崇錯 任海軍vsiualc+課程設計案例精編(m)北京:清華大學岀版社2002附錄程序代碼/ jsqdlg.cpp : implementation file/#include "stdafx.h"#include ”jsq.h“include ”jsqdlg.h”#include "math.h"#ifdef .debug#define new debug_new#undefthis_filestatic char th1s_f1le = _file_;#endiflllllllllll

33、llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll/ caboutdlg dialog used for app aboutclass caboutdlg : public cdialogpublic:caboutdlgo;/ dialog data/afx_data(caboutdlg) enum idd = idd_aboutbox ;/ afx_data/ classwizard generated virtual function overrides/afx_virtual(caboutdlg)/ ddx

34、/ddv supportprotected:virtual void dodataexchange(cdataexchange* pdx);/afx_virtual/ implementationprotected:/afx_msg(caboutdlg)/afx_msgdeclare_message_map()caboutdlg:caboutdlg(): cdialog(caboutdlg:idd) /afx_data_init(caboutdlg)/ afx_data_init void caboutdlg:dodataexchange(cdataexchange* pdx) cdialog

35、: :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()/ cjsqdlg dialogcjsqdlg:cjsqdlg(cwnd* pparent /*二null*/):cdialog(cjsqdlg:idd, pparent)/afx_data_init(cjsqdlg)m_m = _t(“);m_show =

36、 _t(”0”);/afx_datanit/ note that load i c on does not require a subseque nt destroylcon in win32 m_hlcon = afxgetapp()->loadicon(idr_mainframe);void cjsqdlg:dodataexchange(cdataexchange* pdx) cdialog: :dodataexchange(pdx);/afx_data_map(cjsqdlg)ddx_text(pdx, idc_m_edit, m_m);ddx_text(pdx, idc_show

37、_edit, m_show);/ afx_data_mapbegin_message_map(cjsqdlg, cdialog)/afx_msg_map(cjsqdlg)on_wm_syscommand()on_wm_paint()on_wm_querydragicon() on_bn_clicked(idc_numo_button, onnumobutton) on_bn_clicked(idc_num 1 .button, onnum 1 button) on_bn_clicked(idc_num2_button, onnum2button) on_bn_clicked(idc_num3_

38、button, onnum3button) on_bn_clicked(idc_num4_button, onnum4button)on_bn_clicked(idc_num5_button, onnum5button)on_bn_clicked(1dc_num6_button, onnum6button)on_bn_clicked(idc_num7_button, onnum7button)on_bn_clicked(idc_num8_button, onnumsbutton)on_bn_clicked(idc_num9_button, onnum9button)on_bn_clicked(

39、idc_fu7_button, onfu7button) on_bn_clicked(idc_backspace_button, onbackspacebutton) on_bn_clicked(idc_ce_button, oncebutton)on_bn_clicked(idc_fu6_button, onfu6button) on_bn_clicked(idc_c_button, onclear) on_bn_clicked(idc_fu 1 .button, onful button)on_bn_clicked(idc_fu2_button, onfu2button)on_bn_cl1

40、cked(idc_fu3_button, onfu3button)on_bn_clicked(idc_fu4_button, onfu4button) on_bn_clicked(idc_equal_button, onequalbutton) on_bn_clicked(idc_ke 1_button, onke 1 button) on_bn_clicked(idc_sin_button,onsinbutton) on_bn_cl1cked(idc_cos_button, oncosbutton) on_bn_clicked(idc_tan_button, ontanbutton) on_

41、bn_clicked(idc_ke2_button, onke2button) on_bn_clicked(idc_ln_button, onlnbutton) on_bn_clicked(1dc_log_button, onlogbutton) on_bn_clicked(idc_ke3_button, onke3button) on_bn_clicked(idc_ke4_button, onke4button) on_bn_clicked(idc_mod_button, onmodbutton) on_bn_clicked(idc_fu5_button, onfu5button) on_b

42、n_clicked(idc_m 1 .button, onm 1 button) on_bn_cl1cked(1dc_m2_button, onm2button) on_bn_clicked(idc_mr_button, onmrbutton) on_bn_clicked(idc_mc_button, onmcbutton) on_wm_ctlcolor()/ afx_msg_mapend_message_map()lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll/ cjsqdlg mes

43、sage handlersbool cjsqdlg:oninitdialog()cdialog: :oninitdialog();/add "abo in." menu item to system menu./ idm_aboutbox must be in the system command range.assert(idm_aboutbox & oxfffo) = idm_aboutbox);assert(idm_aboutbox < oxfooo);cmenu* psysmenu = getsystemmenu(false);if (psysmenu

44、 != null)cstring straboutmenu;straboutmenu.loadstring(ids_aboutbox);if (!straboutmenu.isempty()psysmenu->appendmenu(mf_separator);psysmenu->appendmenu(mf_string, idm_aboutbox, straboutmenu);/ set the icon for this dialog. the framework does this automatically / when the application's main

45、window is not a dialog setlcon(m_hlcon, true);/ set big iconsetlcon(m_hlcon, false); / set small icon/ todo: add extra initialization herereturn true; / return true unless you set the focus to a control void cjsqdlg:onsyscoinmand(uint nid, lparam i param)if (nid & oxfffo) = idm_aboutbox)caboutdl

46、g dlgabout; dlgabout.domodal();elsecdialog:onsyscommand(nid, iparam);/ 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/view model,/ this is automatically done for you by the framework.void cjsqdlg:onpaint()m=0;訐(isi

47、conico)cpaintdc dc(this); / device context for paintingsendmessage(wmconerasebkgnd, (wparam) dc.getsafehdc(), 0);/ center icon in client rectangleint cxlcon = getsystemmetrics(sm_cxicon);int cylcon = getsystemmetrics(sm_cyicon);crect rect;getclientrect(&rect);int x = (rect.width() - cxlcon + 1)/

48、2;int y = (rect.height() cylcon + 1) / 2;/ draw the icondc.drawicon(x, y, m_hlcon);elsecdialog:onpaint();/ the system calls this to obtain the cursor to display while the user drags / the minimized window.hcursor cjsqdlg: :onquerydragicon()return (hcursor) m_hlcon;void cjsqdlg:operation()double fl ,

49、f2,f3;switch (choose)case 1:updatedata(); string2=m_show; if(stringl.left !二 fl=atof(stringl);if(string l.left( 1 )=-')string 1 =string 1 .right(string 1 .getlength()-1); fl=(-l)*(atof(string 1);f2=atof(string2);f3=fl+f2;string 1 .format(h%f',f3);while (stringl.right(l)=,or,)string 1 =stri n

50、g 1 .left(string l.getlength()-1);if (string 1 .right( 1 )=m.h)string 1 =stri ng 1 .left(string 1 .getlength()-1);m_show=stringl;updatedata(false);break;case 2:updatedata();string2=m_show;fl=atof(stringl);f2=atof(string2);f3=fl-f2;string l.fonnat(h%ff3);while (string 1 .right( 1 )="0")stri

51、ng 1 =string 1 .left(string l.getlength()-l);if (stringl.right(l)=m.m)m_show=stringl;updatedata(false);break;case 3:updatedata(); string2=m_show; fl=atof(stringl); f2=atof(string2);f3=fl*f2;string 1 .format(n%f',f3);while (stringl.right(l)=,o")if (string l.righl(l)=h.h)string 1 =string 1 .l

52、eft(string 1 getlength()-l);m_show=stringl;updatedata( false);break;case 4:updatedata();string2=m_show;fl=atof(stringl);f2=atof(string2);if(f2=0)messagebox(h被除數不能為零!“);elsef3=fl/f2;string 1 .format(u%f',13);while (string 1 .right( 1 )="0")string i =string i .left(string 1 .getlength()-

53、1);if (string! .right( 1 )=".h)string 1 =stri ng 1 .left(string 1 .getlength()-1);m_show=stringl;updatedata(false);break;case 5:updatedata();intffl,ff2,ff3; string2=m_show; ffl=atoi(stringl); ff2=atoi(string2);ff3=ffl%ff2;slringl .formal("%d",n3);while (stringl.right(l)=,o")if (s

54、tring l.right(l)=h.h)string 1 =string 1 .left(string 1 .getlength()-1); m_show=stringl;updatedata( false); break;m_count=0;m_flag = 1 ;void cjsqdlg:onnumobutton()/ todo: add your control notification handler code here updatedata();if(m_flag=l)m_flag = 0;m_show=,h,;m_show+=,0'elseif(m_show=,'0")m_show=”“;updatedata(false);void cjsqdlg:onnuml button。/ todo: a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論