![MFC多功能計算器的設(shè)計.._第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/b7de3ed5-c99a-4415-b271-193b35e020a1/b7de3ed5-c99a-4415-b271-193b35e020a11.gif)
![MFC多功能計算器的設(shè)計.._第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/2/b7de3ed5-c99a-4415-b271-193b35e020a1/b7de3ed5-c99a-4415-b271-193b35e020a12.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第1頁設(shè)計題目 MFC 多功能計算器一系統(tǒng)實現(xiàn)(開發(fā)工具)Visual C+6.0 是 Microsoft 公司在 1998 年推出的基于 Windows 9X 和Win dowsNT 的優(yōu)秀集成開發(fā)環(huán)境。該環(huán)境為用戶提供了良好的可視化編程環(huán)境,程序員可以里利用該開發(fā)環(huán)境輕松地訪問C+源代碼編輯器,資源編輯器和使用內(nèi)部調(diào)試器,并且可以創(chuàng)建項目文件。 Visual C+6.0 不僅包括編譯器,而且它還包括許多有用組件,通過這些組件的協(xié)同工作,可以在Visual C+6.0 集成環(huán)境中輕松地完成創(chuàng)建源文件,編輯資源,以及對程序的編譯,連接和調(diào)試等各項 工作。VC+6.0 是 Windows 95/
2、98、XP 或 Windows NT 下的一個應(yīng)用程序,本身對 軟硬件沒有特殊要求。就是說它對環(huán)境的要求與Windows 95/98、Windows NT要求是一致的。硬件要求:一般在 586 以上的處理器、16MB 以上內(nèi)存、100MB 以上的硬盤。軟件要求: Windows 95/98 或 Windows NT3.51 以上版本。VC+6.0 系統(tǒng)可以在一張 CD 盤上,也可以在“ Visual Studio( Visual C+Visual Foxpro) ”等產(chǎn)品的第一張 CD 盤上。一般都有一個 VC 的自動安裝程序, 也可以執(zhí)行 VC6 目錄下的 setup.exe,在安裝包的提示
3、下進行,對初學者可采用 “典型安裝”方式。在安裝好 VC 6.0 系統(tǒng)后,有時根據(jù)需要添加或刪除某些部件,可插入 CD 盤重新執(zhí)行 setup.exe 安裝程序,安裝程序會檢測當前系統(tǒng)安裝 VC6 的足件,用 戶單擊“添加/刪除”按鈕后,在“安裝維護”對話框中選定要添加的部件或撤 消選定要刪除的部件。二.基本功能描述簡單計算器包括雙目運算和單目運算功能。 雙目運算符包含基本的四則運算 及乘幕功能,單目運算符包含正余弦,階乘,對數(shù),開方,進制轉(zhuǎn)換等運算???對輸入任意操作數(shù),包括 小數(shù)和整數(shù)及正數(shù)和負數(shù)進行以上的所有運算并能連續(xù)運算。出現(xiàn)錯誤會給出相應(yīng)提示,同時包含清除,退格,退出功能以及有與所
4、 有按第2頁鈕相對應(yīng)的菜單項。2.1 設(shè)計思路如圖是整個計算器的流程圖,打開計算器程序,輸入數(shù)據(jù),調(diào)用輸入數(shù)據(jù)子 程序。子程序開始時 m_nun 為零。按下數(shù)字按鈕后,判斷 m_nunt勺正負號,對其 進行相關(guān)處理,然后在判斷是否有小數(shù)點,處理后輸出結(jié)果?;氐娇偭鞒虉D中,輸完第一個操作數(shù)后,若按下雙目運算符,則把m_num存入 num2 按下輸入第二個操作數(shù)并算出結(jié)果。若按下的是單目運算符,則直 接對其處理得出結(jié)果。若按下清零,則m_num 等于 0.在運算中還要判斷運算是否合法,以及結(jié)果是否超出顯示范圍,以做出相關(guān)提示,按下清零。算出后把結(jié) 果保存至 num2 若需用算出的結(jié)果繼續(xù)運算則回到
5、輸入完第一個操作數(shù)后,若 不需要則判斷試否需要開始新一輪的運算,不需要則結(jié)束第3頁輸入數(shù)據(jù)子函數(shù)圖 1 輸入數(shù)據(jù)子函數(shù)流程圖第4頁H進行運算把結(jié)果保存到num2彈出對話框顯T示ERROR第5頁圖 2 簡單計算器總流程圖2.2 軟件設(shè)計(1)設(shè)計步驟打開 Microsoft Visual C+ 6.0,在文件中點擊新建,在彈出框內(nèi)選擇MFCAppWizardexe工程,輸入工程名 zhoutong 及其所在位置,點擊確定,如圖 3 所示。圖 3 新建 MFC AppWizardexe工程將彈出 MFC AppWizard-step 1 對話框,選擇基本對話框,點擊完成,如圖4所示。第6頁瑩文檔関
6、廠多重文檔跖萬禾對話框皿您的資源使用的悟言杲: 沖艾審畐fjAPPWZCH工B LL1上一涉 下一播完咸瞬圖 4 基本對話框這樣,MFC AppWizard 就建立了一個基于對話窗口的程序框架, 如圖 5 所示 idfKHiWngl - HkroMril Vburi C* - - Lfhintmal.n:U_2H(XfTClKil_DM.0G! (Owkm;)口固宜嚕 HCZltiauloingl DigT|(Alh chass nimbe r|* CZiiouilufigi1 DigT 玄”凸!3文杵( 猶心蘭五毎ffiACU 141(E)垣屢聞布簡閥工目口啊flWcC-_;J|)t|沐絹喪
7、.廠謹武廠至龍廂中宜扶I在我件舛宜fVH需帚麵IIIW躺口就緒勺 札n ifj aDx?NI圖 5 新建的對話框(2)界面設(shè)計1、創(chuàng)建控件在圖 5 所示的 Resoure View 選項卡中打開 Dialog 資源組,雙擊IDD_ZHOUTONG_DIALOG, 在右邊的窗口中顯示出待編輯的對話框。 開始擺 放控件,包括編輯框和按鈕的創(chuàng)建。按鈕的創(chuàng)建以“ 1”例進行介紹,其他按鈕MFC應(yīng)用程序育號-歩*1您聶倉Q建的應(yīng)用程序類型是;-_J zhdiutDngi ourccB-_J OlBlog23 IDD.ABOUTBOX2 IDD_ZHOUTOhlG1_OI/* J Icon+ Siring
8、 Table+ _ Verskn;Cl陰RUSIIQI“ 莖FildVi0-血EJB咨忌HA 第7頁的創(chuàng)建可參照此進行操作。1)在圖 5 中 Controls 的編輯框”按鈕上單擊鼠標左鍵,在對話框編輯窗口上合適的位置按下鼠標左鍵并拖動鼠標畫出一個大小合適的編輯框。在編輯框上單擊鼠標右鍵,在彈出的快捷萊單中選擇屬性選項,此時彈出Edit 屬性對話框,如圖 6 所示,在該對話框中輸入 ID 屬性。圖 6 Edit 屬性對話框2)在圖 3 中 Controls 的“ Button 按鈕上單擊鼠標左鍵,在對話框上的合適的位置上按下鼠標左鍵并拖動鼠標畫出一個大小合適的下壓式按鈕。在按鈕上單擊鼠標右鍵,
9、在彈出的快捷菜單中選擇屬性選項,此時也彈出Push Button 屬性對話框,如圖 7 所示,在該對話框中輸入控件的 ID 值和標題屬性。圖 7 Push Button 屬性按照上面的操作過程編輯其他按鈕和編輯框等對象的屬性。第8頁表 1 各按鈕和編輯框等對象的屬性對象ID標題或說明編輯框IDC xia nshi結(jié)果顯示按鈕IDC BUTTONO0按鈕IDC BUTT0N11按鈕IDC BUTT0N212按鈕IDC BUTT0N33按鈕IDC BUTT0N44按鈕IDC BUTT0N55按鈕IDC BUTT0N66按鈕IDC BUTT0N77按鈕IDC BUTT0N88按鈕IDC BUTT0N
10、99按鈕IDC cha nge+/-按鈕IDC poi nt按鈕IDC add+按鈕IDC differe nee-按鈕IDC multiply*按鈕IDC devide/按鈕IDC sqrtsqrt按鈕IDCnln按鈕IDC sinsin按鈕IDC coscos按鈕IDC powxAy按鈕IDC 0 nequal=按鈕IDC backspace退格按鈕IDC 0nclear清零完成后界面如圖 8 所示第9頁(3)連接變量和代碼1)給編輯框連接變量。在編輯框上單擊鼠標右鍵,在彈出菜單中選擇ClassWizard 菜單項,彈出 MFC ClassWizard 對話框,選擇 Member Vari
11、ables 選項卡,如圖 9 所示。在 Control IDs 列表框中選擇 IDC_xianshi,單擊 Add Variables 按鈕,在彈出的對話框中連接變量 m_num。變量類型設(shè)定為 doubel 型。如圖 10 所示。左科學計算器2圖 8 計算器界面Open/Off第10頁Add Member VariaMeMember variable name:im numl一1Category:ValueVarjable type:二doubleDes匚liption:double with range validation圖 10 m_num 屬性設(shè)置2)給“ 1 按鈕連接代碼。在“ 1
12、 按鈕上單擊鼠標右鍵,選擇 Classwizard 菜單項,在彈出的對話框中選擇 Messages Maps 選項卡,然后在 Object IDs 列表框中 選擇 IDC_ADD_BUTTON,在 Messages 列表框中選擇 BN_CLICKED 項,即選 擇單擊按鈕事件,如圖 11 所示。圖 11“ 1”按鈕鏈接代碼對話框(4) 菜單的設(shè)計選擇 插入/資源命令,將顯示插入資源對話框。如圖12 所示。選擇 Menu,OKCancel第11頁圖 12 插入資源對話框Resoure View 選項卡中打開 Menu 資源組,雙擊 IDR_MENU1,然后給菜單添加相應(yīng)的標題,并把每個菜單對應(yīng)的
13、 ID 值與相應(yīng)的按鈕的一致。如圖 13 所示。圖 13 菜單屬性對話框在對話框的任何一個空白域單擊鼠標右鍵,然后在彈出的快捷菜單中選擇Properties 命令,彈出 Dialog Properties 對話框,如圖 14。在對話框中的菜單組合 框中選擇 IDR MENU1o點擊新建即可資源類型山:AcceleratorBitmapCursorDialogHTMLIcon m BiMmBiiau ipMenuString TableToolbarVersion新建自定義0.取消12d- z hDulong re source5-Fj!Dialog習IDD_BOUTBOXH IDO ZHIOU
14、TONG+/jJcon-也也Meou倉IDA MENU! J Siring Table+ _| VersionIALOC文件噪f簾飾中目運算符t i皺目運宜幷*+樂乎撐鈕卜dear第12頁對話麗性占豐常規(guī) 樣式|更多樣式|擴展樣式|更多擴展樣式|圖 14 對話屬性對話框 最終的得到的界面如圖 15。2.3 關(guān)鍵功能的實現(xiàn) 1)操作數(shù)的輸入編輯框所關(guān)聯(lián)的變量為 m_num,程序開始時為零。每按下一個數(shù)字鍵按鈕, 就把它累加到 m_num 里并刷新顯示。BOOL 型變量 ele 來判斷是否有小數(shù)點和 一個整型數(shù) dint 來表示小數(shù)點后的數(shù)據(jù)的位數(shù)。當 ele=TRUE 時,表示有小數(shù)點,否則則表
15、示無小數(shù)點。按下小數(shù)點按鈕后執(zhí)行 ele=TRUE。當按下一個數(shù)字鍵時,首先根據(jù) ele判斷是否按下小數(shù)點,若有則把小數(shù)點后數(shù)的位數(shù)加1, di nt 則為此次鍵入的數(shù)所處的位數(shù),將鍵入的數(shù)除以di nt 個 10 然后累加到編輯框所關(guān)聯(lián)的變量 m_num 上,若沒有則把 m_num 乘以 10,然后累加到編輯框所關(guān)聯(lián)的變 量m_num 上。2) 單目運算符功能的實現(xiàn)由于單目運算符中必須有執(zhí)行運算的函數(shù),因而頭文件中要加入math.h,如ID:I _字體名稱: 字體大小:字體CQ)IDD-ZHOUTONG DIALOG J標題|):I簡單計算器宋體菜單囲:位置豈0位置丫oIDR MENU1圖
16、15 計算器完整界面第13頁m_num=sqrt(m_num)按下按鈕即可實現(xiàn)其功能。為實現(xiàn)連續(xù)運算,程序有所改動,參見(6)。3) 雙目運算符功能的實現(xiàn)雙目運算符需要兩個操作數(shù)才能運算,所以在執(zhí)行雙目運算符按鈕的函數(shù)代 碼中,要把 m_num 中的值保存到變量 num2 中,然后把 m_num 清零。這樣即可 保存第一個操作數(shù)。另外先定義了一個整形變量 addt,在不同的雙目運算符中給 addt 賦不同的值,然后在等號中用 switch 語句來匹配 addt 值來判斷需要執(zhí)行何 種雙目運算。為實現(xiàn)連續(xù)運算,程序有所改動。4) 退格鍵功能的實現(xiàn)當按下一次退格按鈕時,若 m_num 為整數(shù),只需
17、對其中數(shù)據(jù)除以 10 再取整 即可,若按下一次退格按鈕為小數(shù),則根據(jù)小數(shù)點后數(shù)據(jù)的位數(shù) dint 進行操作, 先對m_num 執(zhí)行(dint-1)次乘以 10 運算,然后取整,接著執(zhí)行(dint-1)次除 以 10 的運算即可。完成后需要把 dint 將減小 1。5) 連續(xù)運算功能的實現(xiàn)要連續(xù)運算必須將每次運算的結(jié)果保存下來。對于雙目運算符:首先在等號按鈕的消息處理函數(shù)中在 m_num 清零之前將m_num 的值賦給 num2.不過這樣的話如果再按雙目運算符則 num2 的值將會被覆 蓋,于是在雙目運算符按鈕的消息處理函數(shù)中將“n um2=m_num;改為“ if(m_num!=O)num2=
18、m_num;這樣若已經(jīng)保存了結(jié)果則不進行覆蓋。 然后在每個數(shù)字按鈕前加上“if(addt=0)num2=0;,這樣如果進行完一次運算之后按下任一 數(shù)字鍵表示不需要連續(xù)運算,則將保存的結(jié)果刪除,若按下的是雙目運算符按鈕 則可以繼續(xù)運算。對于單目運算符:每次運算完之后都會對 m_num 清零,因此其結(jié)果也要賦 給num2,下次運算是則會用到 num2, 于是第一次運算時直接將 m_num 的值賦 給 num2,對其進行運算。以開根號為例,在消息處理函數(shù)代碼中將“ m_num=sqrt(m_num)改為 “ num2=m_num;m_num=sqrt(num2);num2=m_num;” 但是第一次
19、運算執(zhí)行完成之后 m_num 被清零,所以之后將 m_num的值不能賦 給 num2, 代碼改為 “if(m_num=0)m_num=sqrt(num2);num2=m_num” 其他單 目運算符同理。第14頁為實現(xiàn)連續(xù)運算是不需要按下等號即可實現(xiàn),又在所有的運算符按鈕的消息 處理函數(shù)代碼前加上了 “if(addt!=0)Onequal();。既若之前有按下雙目運算符和兩 個操作數(shù)則連續(xù)運算再按下任一運算符時會自動調(diào)用等號的處理函數(shù)將上次的 運算完成并保存結(jié)果方便下一次的運算。第15頁三.結(jié)論與心得體會經(jīng)過多番測試,得出結(jié)論為設(shè)計的計算器能夠完成功能描述內(nèi)容中的全部功 能。經(jīng)過 2 個星期的 VC+課程設(shè)計,我在老師和同學的共同幫助下,順利完成 該課程設(shè)計,收獲很大。正所謂“紙上談兵終覺淺,覺知此事要躬行?!彼栽诒緦W期課程設(shè)計是很及時、很必要的。這樣不僅能加深我們對程序設(shè)計的掌握, 而且還及時、真正的做到了學以致用。主要是以下幾點?;竟σ^硬。不能馬虎經(jīng)常犯犯小錯誤。提高自己找錯糾錯能力,通常錯 誤總是那幾種,多練習就熟練了。要善于查找資料提高自己的資料查詢能力, 要善于利用網(wǎng)絡(luò)來獲得知識,獲 得幫助。開始著手程序設(shè)計時,有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 永州2025年湖南永州市寧遠縣教育系統(tǒng)引進急需緊缺高層次專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 杭州2025年浙江杭州市臨安區(qū)湍口鎮(zhèn)人民政府招聘編外聘用人員筆試歷年參考題庫附帶答案詳解
- 2025年中國導電橡膠連接器市場調(diào)查研究報告
- 2025年中國單向加熱攪拌器市場調(diào)查研究報告
- 2025年中國CO2保護焊機變壓器市場調(diào)查研究報告
- 2025至2031年中國銅管割刀行業(yè)投資前景及策略咨詢研究報告
- 2025年電磁式水表項目可行性研究報告
- 2025至2031年中國牙刷消毒器行業(yè)投資前景及策略咨詢研究報告
- 2025年板式螺釘壓接端子排項目可行性研究報告
- 2025年數(shù)字制版機項目可行性研究報告
- 電子物料基礎(chǔ)知識
- 2025屆江蘇省南京市鹽城市高三一??荚囌Z文試題 課件
- 廣西出版?zhèn)髅郊瘓F有限公司招聘筆試沖刺題2025
- 江蘇省南京市2024年中考英語試題(含解析)
- 外科圍手術(shù)期處理(外科學課件)
- 宮頸癌診療指南要點
- 兩個人合伙買攪拌車的合同
- 腦卒中護理課件
- 水利工程施工監(jiān)理規(guī)范(SL288-2014)用表填表說明及示例
- 部編版2023-2024學年六年級上冊語文期末測試試卷(含答案)
- 2025年考勤表(1月-12月)
評論
0/150
提交評論