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