- 相關(guān)推薦
c++計算器實(shí)踐報告
題 目
科學(xué)計算器應用程序系統
學(xué)生姓名
指導教師
學(xué) 院
專(zhuān)業(yè)班級 學(xué)生學(xué)號 吳金星 嚴暉 材料科學(xué)與工程學(xué)院 1206 0607120610
計算機基礎教學(xué)實(shí)驗中心
2013年 7 月 3 日
科學(xué)計算器管理信息系統
摘要:本設計是簡(jiǎn)單計算器,日常計算機使用中,常常涉及到一些有關(guān)計算的問(wèn)題,一個(gè)小型的計算器軟件變得非常有用,該校型計算器需要空間資源較少,對電腦其他程序的應用影響較小。它的設計按軟件工程的方法進(jìn)行,系統具有良好的界面、必要的交互信息和較好的健壯性;醒目美觀(guān)的軟件封面。使用人員能快捷簡(jiǎn)單地進(jìn)行操作。即時(shí)準確地獲得需要的計算的結果,充分降低了數字計算的難度和節約了時(shí)間,對人們的生活有一定的幫助。
關(guān)鍵詞:程序設計;計算器;MFC;按鈕控件
1. 計算器系統開(kāi)發(fā)設計思想
⑴實(shí)驗目的
①通過(guò)實(shí)踐加強對程序設計語(yǔ)言課程知識點(diǎn)的理解和掌握,培養對課程知識綜合運用能力、實(shí)際分析問(wèn)題能力及編程能力,養成良好的編程習慣。
②通過(guò)實(shí)踐進(jìn)一步領(lǐng)會(huì )程序設計的特點(diǎn)和應用,提高運用C++ 以及面向對象知識解決實(shí)際問(wèn)題的能力。
③通過(guò)實(shí)踐掌握用C++ 編寫(xiě)面向對象的實(shí)用程序的設計方法,對面向對象方法和思想增加感性的認識;學(xué)會(huì )利用C++程序設計語(yǔ)言編寫(xiě)出一些短小、可靠的Windows實(shí)用程序,切實(shí)提高面向對象的程序設計能力。為后續的相關(guān)課程的學(xué)習打下基礎。
⑵實(shí)驗要求
①二進(jìn)制、八進(jìn)制、十進(jìn)制及十六進(jìn)制數的加、減、乘、除、乘方、取模等簡(jiǎn)單計算
②科學(xué)計算函數,包括(反)正弦、(反)余弦、(反)正切、(反)余切、開(kāi)方、指數等函數運行
③以角度、弧度兩種方式實(shí)現上述部分函數
④具備歷史計算的記憶功能
⑤對不正確的表達式能指出其錯誤原因
⑥整理上機步驟,完成實(shí)驗報告、提交可運行的程序,給出實(shí)驗數據和實(shí)驗結果
2、計算器系統功能及系統設計介紹
⑴功能說(shuō)明
它的設計按軟件工程的方法進(jìn)行,系統具有良好的界面;必要的交互信息;簡(jiǎn)約美觀(guān)的效果。使用人員能快捷簡(jiǎn)單地進(jìn)行操作。即可單機按鈕進(jìn)行操作,也可直接通過(guò)鍵盤(pán)直接輸入。即時(shí)準確地獲得需要的計算的結果,充分降低了數字計算的難度和節約了時(shí)間,對人們的生活有一定的幫助。
①包含的功能有:加、減、乘、除運算,開(kāi)方、求倒數等功能。②計算器上數字0—9為一個(gè)控件數組,加、減、乘、除為一個(gè)控件數組,其余為單一的控件。③給對話(huà)框添加菜單。④計算功能基本上是用系統內部函數。⑤程序可以能自動(dòng)判斷輸入數據的正確性,保證不出現多于一個(gè)小數點(diǎn)、以0開(kāi)頭等不正,F象。⑥“C”按鈕可以清除所有已輸入的數據從頭計算。
⑵設計思路
①算法基本流程,數值計算及功能:②主要部分為按鍵后的接受處理
③鍵入為數字則檢查和增長(cháng)操作數,有前算符則增長(cháng)操作數1,否則增長(cháng)操作數
2。計算器基本按:鍵入操作數1,鍵入運算符(若為單目算符即直接運算),鍵入操作數2,再鍵入算符即運算前算符,若為當前鍵入為單目算符即再運算,結果保留在操作數1中,并返回在界面顯示。
④在每次運算前將操作數進(jìn)行進(jìn)制轉為十進(jìn)制,在運算結束后操作數還原進(jìn)制。 ⑤其中鍵入特殊算符和功能鍵作特殊處理,如:退格,進(jìn)制選鍵和”=”,”CE”,”C”等。顯示鍵入的相關(guān)信息,如果鍵入不合法即提示錯誤。 ⑶算法流程圖
⑷關(guān)鍵功能實(shí)現
①操作數的輸入,編輯框所關(guān)聯(lián)的變量為m_num,程序開(kāi)始時(shí)為零。每按下一個(gè)數字鍵按鈕,就把它累加到m_num里并刷新顯示。BOOL型變量ele來(lái)判斷是否有小數點(diǎn)和一個(gè)整型數dint來(lái)表示小數點(diǎn)后的數據的位數。當ele=TRUE時(shí),表示有小數點(diǎn),否則則表示無(wú)小數點(diǎn)。按下小數點(diǎn)按鈕后執行ele=TRUE。當按下一個(gè)數字鍵時(shí),首先根據ele判斷是否按下小數點(diǎn),若有則把小數點(diǎn)后數的位數加1,dint則為此次鍵入的數所處的位數,將鍵入的數除以dint個(gè)10然后累加到編輯框所關(guān)聯(lián)的變量m_num上,若沒(méi)有則把m_num乘以10,然后累加到編輯框所關(guān)聯(lián)的變量m_num上。
②單目運算符功能的實(shí)現,由于單目運算符中必須有執行運算的函數,因而頭文件中要加入math.h,如m_num=sqrt(m_num).按下按鈕即可實(shí)現其功能。為實(shí)現連續運算,程序有所改動(dòng)。
③雙目運算符功能的實(shí)現,雙目運算符需要兩個(gè)操作數才能運算,所以在執行雙目運算符按鈕的函數代碼中,要把m_num中的值保存到變量num2中,然后把m_num清零。這樣即可保存第一個(gè)操作數。另外先定義了一個(gè)整形變量addt,在不同的雙目運算符中給addt賦不同的值,然后在等號中用switch語(yǔ)句來(lái)匹配addt值來(lái)判斷需要執行何種雙目運算。為實(shí)現連續運算,程序有所改動(dòng)。 ④退格鍵功能的實(shí)現,當按下一次退格按鈕時(shí),若m_num為整數,只需對其中數據除以10再取整即可,若按下一次退格按鈕為小數,則根據小數點(diǎn)后數據的位數dint進(jìn)行操作,先對m_num執行(dint-1)次乘以10運算,然后取整,接著(zhù)執行(dint-1)次除以10的運算即可。完成后需要把dint將減小1。
⑤正負號功能的實(shí)現,在頭文件中定義一個(gè)BOOL型變量ele2來(lái)判斷m_num的正負。ele2=TRUE時(shí)表示為正。在鍵入操作數時(shí)需要用到ele2。在正負號按鈕的消息響應函數內容為m_num=-m_num;ele2=!ele2。
3.計算器系統開(kāi)發(fā)的體會(huì )
實(shí)踐是獲取知識的一個(gè)極其重要的途徑,無(wú)論是過(guò)去還是現在抑或是將來(lái),我都堅信這一點(diǎn)。在這個(gè)實(shí)驗中,我堅持以實(shí)踐為導向,雖然,我沒(méi)有對CLR與.NET的系統的學(xué)習,理論理解并不多,但是在實(shí)際摸索應用的過(guò)程中,我還是學(xué)到很多東西,特別是理解了一個(gè)功能的使用方法之后,這種快樂(lè )的心情是無(wú)法描述的,F在可以靈活運用一些常用的屬性,進(jìn)行一些基本操作,以實(shí)現預期目標。
實(shí)現該計算器,當時(shí)的想法是盡量向Windows計算器靠攏?梢钥吹,這個(gè)計算器有很多Windows計算器的影子。雖然這個(gè)計算器還有很多不足,比如表達式的處理。 這個(gè)計算器的代碼都是自己思考過(guò)后寫(xiě)出來(lái)的,特別是錯誤排除部分,經(jīng)歷了很多Bug的時(shí)期。由于時(shí)間限制,可視化計算器的基本實(shí)現告一段落,在時(shí)間允許的以后再進(jìn)一步完善計算器功能。
【c++計算器實(shí)踐報告】相關(guān)文章:
C++基礎面試題07-13
華為C/C++筆試題07-11
經(jīng)典C/C++面試題07-11
華為C++/MFC面試題07-11
2016工資扣稅標準計算器07-06
社會(huì )保險繳費計算器07-13
《用計算器計算》教學(xué)反思07-03
C/C++面試題目集錦07-13
騰訊公司招聘c/c++筆試題07-13