計算器的實驗報告_第1頁
計算器的實驗報告_第2頁
計算器的實驗報告_第3頁
計算器的實驗報告_第4頁
計算器的實驗報告_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課題名稱:課題名稱:學生學號:專業(yè)班級:學生姓名:郵電與信息工程學院課程設(shè)計說明書mfc制作簡單計算器系統(tǒng)軟件綜合設(shè)計1002030218計算機科學與技術(shù)02班孫志宏指導(dǎo)教師:楊玉落一.題目:利用MFC框架編寫簡易計算器要求使用MFC框架在VisualStudio6.0環(huán)境下編寫一個簡易的計算器,支持任意位數(shù)的加減乘數(shù),正負轉(zhuǎn)換,并且實現(xiàn)BackspaceCEC功能。二.設(shè)計過程1.Windows消息處理機制的理解首先編寫程序需要對Windows程序的消息處理機制(MessageHandle)有個比較清晰的了解。Windows的程序都是通過消息來傳送數(shù)據(jù),有不需要用戶參與的系統(tǒng)消息,比如異常處理等。還有用戶消息,比如鼠標的單擊,雙擊,鍵盤的鍵入等。界面的設(shè)計仿照Windows附件里面的計算器,在資源視圖中畫好界面,如圖:主要使用到Layout菜單中的Align功能對各個按鈕進行對其,使界面更加整潔。拖出的控件有上面的一個Edit控件用于顯示數(shù)字,Button控件用于處理鼠標的消息。2.建立的變量,控件的命名,對應(yīng)的消息處理函數(shù)對應(yīng)表3變量定義,以及初始化longmtiFiist,a; 定義兩個長整型變量ifirst,aintiType; 定義整形變量iTypelongmtiRet=0; 定義一個長整型變量iRet并初始化4設(shè)計思路1我制作的是簡單的計算器,可以加減乘除,以及清零。所以我們先應(yīng)把計算器的界面設(shè)計出來。。分數(shù)字鍵和功能鍵2數(shù)字鍵0,1,2,3,4,5,6,7,8,9這10個命令按鈕控制的數(shù)字鍵,在編寫數(shù)字鍵代碼時,我考慮了比如111的輸出,我們可以用m_edit=m_edit*10-n(n代表你下一步所需按的鍵),這樣你當前的文本框會顯示出你想得到的數(shù),還有我們輸入的都是數(shù)字,所以我采用的是長整型輸入數(shù)據(jù)3功能鍵+-*/以及清零鍵CE,其中這里我們這些功能鍵并不是直接來運行的而是把他們當作一種標志分別標志為1234,真正執(zhí)行運算功能的是等于鍵=4等于鍵= 這里我們采用swichcash語句來執(zhí)行運算的功能的,當讀到標志為1時,即為加法,執(zhí)行加法功能°。。以此類推5程序代碼在這里我就把整個程序代碼寫下來,,就寫我們的數(shù)字和功能鍵部分的代碼把下面是數(shù)字鍵代碼voidCJisuanlDlg::OnOQ{m_edit=m_edit*10+0;這里我們采用這個表達式是想把數(shù)字連起來顯示在文本框中UpdateData(false); 你在程序里面改了變量的值.把這個變化反應(yīng)到界面上..更新顯示..}voidCJisuanlDlg::OnlQ{m_edit=m_edit*10+1;UpdateData(false);}voidCJisuanlDlg::Oii2Q{inedit=medit*10+2;UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}voidCJisuan1Dig::On3Q{medit=medit*10+3;UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}voidCJisuanlDig::On4Q{m_edit=m_edit*10+4;UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}voidCJisuanlDig::On5Q{m_edit=m_edit*10+5;UpdateData(false);//TODO:Addyouicontrolnotificationhandlercodehere}voidCJisuanlDig::On6Q(m_edit=m_edit*10+6;UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}voidCJisuanlDig::On7Q(m_edit=m_edit*10+7;UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}voidCJisuanlDig::On8Q(m_edit=m_edit*10+8;UpdateData(false);//TODO:Addyourcontrolnotificationhandlercodehere}voidCJisuanlDig::Oii9Q{medit=medit*10+9;UpdateData(false);}下面是功能鍵的代碼:voidCJisuanlDig::OnCheng(){正H-st=m_edit; ifust是我們定義的長整型變量,第一個值顯示在文本框上iType=3; 3是乘的標志m_edit=0; 這里文本框重新顯示為0UpdateData(false);刷新并使文本框中顯示為0}voidCJisuanlDig::OnChu(){iFiist=m_edit;iType=4;m_edit=0:UpdateData(false);}卜面是執(zhí)行運算的代碼即=鍵的代碼voidCJisuanlDig::OiiDengyuQlongintiRet=0;定義一個長整型變量iRet并初始化switch(iType)采用switchcash語句{case1:當iType為1即為加法時iRet=iFirst+m_edit;等于第一個數(shù)加上當前文本框中顯示的數(shù),結(jié)果并賦予iRetbreak;case2:iRet=iFirst-m_edit;break;case3:iRet=iFirst*ni_edit;break;case4:if(m_edit!=0)如果除一個不為0的數(shù)的(iRet=iFirst/m_edit;break;)else否則(MessageBox(Hcan*tusezero!”);)return:}m.edit=iRet;UpdateData(false);iFirst=O;iType=0;}voidCJisuanlDlg::OiiJia(){iFiist=m_edit;iType=l;m_edit=0;UpdateData(false);}voidCJisuanlDig::OiiJian()iFiist=m_edit;iType=2;m_edit=O:UpdateData(false);}下面是清零鍵代碼voidCJisuanlDig::OnQinglmgO{iFirst=O;第一個數(shù)重新為0iType=0;標志為0m_edit=0;當前文本框中顯示為0UpdateData(false);刷新}voidCJisuanlDig::OnChangeEditl(){}6運行界面比如我們想算158+232=?先輸入158,界面如下馳jisuanl15S11L^J3|+14161-|7118|。1*I01CE|=1然后按命令按鈕界面如下11213|+|4|5|'1」-|718|91*|°1CE=1/|輸入232得到卜面界而馳jisuianl232最后單擊“=”按鈕得到390參考的文獻:C++面向?qū)ο蟪绦蛟O(shè)計譚浩強編著清華大學出版社MFC,微軟基礎(chǔ)類(MicrosoftFoundationClasses)總結(jié): 一本次MFC計算器的制作,學習到了MFC基本的編程方法,增加了小組開發(fā)的團結(jié)協(xié)作能力。對OOP編程的理解進一步

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論