c++計算器實踐報告

來源:果殼範文吧 2.2W

題 目

c++計算器實踐報告

科學計算器應用程式系統

學生姓名

指導教師

學 院

專業班級 學生學號 吳金星 嚴暉 材料科學與工程學院 1206 0607120610

計算機基礎教學實驗中心

2013年 7 月 3 日

科學計算器管理資訊系統

摘要:本設計是簡單計算器,日常計算機使用中,常常涉及到一些有關計算的問題,一個小型的計算器軟體變得非常有用,該校型計算器需要空間資源較少,對電腦其他程式的應用影響較小。它的設計按軟體工程的方法進行,系統具有良好的介面、必要的互動資訊和較好的健壯性;醒目美觀的軟體封面。使用人員能快捷簡單地進行操作。即時準確地獲得需要的計算的結果,充分降低了數字計算的難度和節約了時間,對人們的生活有一定的幫助。

關鍵詞:程式設計;計算器;MFC;按鈕控制元件

1. 計算器系統開發設計思想

⑴實驗目的

①通過實踐加強對程式設計語言課程知識點的理解和掌握,培養對課程知識綜合運用能力、實際分析問題能力及程式設計能力,養成良好的程式設計習慣。

②通過實踐進一步領會程式設計的特點和應用,提高運用C++ 以及面向物件知識解決實際問題的能力。

③通過實踐掌握用C++ 編寫面向物件的實用程式的設計方法,對面向物件方法和思想增加感性的認識;學會利用C++程式設計語言編寫出一些短小、可靠的Windows實用程式,切實提高面向物件的程式設計能力。為後續的相關課程的學習打下基礎。

⑵實驗要求

①二進位制、八進位制、十進位制及十六進位制數的加、減、乘、除、乘方、取模等簡單計算

②科學計算函式,包括(反)正弦、(反)餘弦、(反)正切、(反)餘切、開方、指數等函式執行

③以角度、弧度兩種方式實現上述部分函式

④具備歷史計算的記憶功能

⑤對不正確的表示式能指出其錯誤原因

⑥整理上機步驟,完成實驗報告、提交可執行的程式,給出實驗資料和實驗結果

2、計算器系統功能及系統設計介紹

⑴功能說明

它的設計按軟體工程的方法進行,系統具有良好的介面;必要的互動資訊;簡約美觀的效果。使用人員能快捷簡單地進行操作。即可單機按鈕進行操作,也可直接通過鍵盤直接輸入。即時準確地獲得需要的計算的結果,充分降低了數字計算的難度和節約了時間,對人們的生活有一定的幫助。

①包含的.功能有:加、減、乘、除運算,開方、求倒數等功能。②計算器上數字0—9為一個控制元件陣列,加、減、乘、除為一個控制元件陣列,其餘為單一的控制元件。③給對話方塊新增選單。④計算功能基本上是用系統內部函式。⑤程式可以能自動判斷輸入資料的正確性,保證不出現多於一個小數點、以0開頭等不正常現象。⑥“C”按鈕可以清除所有已輸入的資料從頭計算。

⑵設計思路

①演算法基本流程,數值計算及功能:②主要部分為按鍵後的接受處理

③鍵入為數字則檢查和增長運算元,有前算符則增長運算元1,否則增長運算元

2。計算器基本按:鍵入運算元1,鍵入運算子(若為單目算符即直接運算),鍵入運算元2,再鍵入算符即運算前算符,若為當前鍵入為單目算符即再運算,結果保留在運算元1中,並返回在介面顯示。

④在每次運算前將運算元進行進位制轉為十進位制,在運算結束後運算元還原進位制。 ⑤其中鍵入特殊算符和功能鍵作特殊處理,如:退格,進位制選鍵和”=”,”CE”,”C”等。顯示鍵入的相關資訊,如果鍵入不合法即提示錯誤。 ⑶演算法流程圖

⑷關鍵功能實現

①運算元的輸入,編輯框所關聯的變數為m_num,程式開始時為零。每按下一個數字鍵按鈕,就把它累加到m_num裡並重新整理顯示。BOOL型變數ele來判斷是否有小數點和一個整型數dint來表示小數點後的資料的位數。當ele=TRUE時,表示有小數點,否則則表示無小數點。按下小數點按鈕後執行ele=TRUE。當按下一個數字鍵時,首先根據ele判斷是否按下小數點,若有則把小數點後數的位數加1,dint則為此次鍵入的數所處的位數,將鍵入的數除以dint個10然後累加到編輯框所關聯的變數m_num上,若沒有則把m_num乘以10,然後累加到編輯框所關聯的變數m_num上。

②單目運算子功能的實現,由於單目運算子中必須有執行運算的函式,因而標頭檔案中要加入math.h,如m_num=sqrt(m_num).按下按鈕即可實現其功能。為實現連續運算,程式有所改動。

③雙目運算子功能的實現,雙目運算子需要兩個運算元才能運算,所以在執行雙目運算子按鈕的函式程式碼中,要把m_num中的值儲存到變數num2中,然後把m_num清零。這樣即可儲存第一個運算元。另外先定義了一個整形變數addt,在不同的雙目運算子中給addt賦不同的值,然後在等號中用switch語句來匹配addt值來判斷需要執行何種雙目運算。為實現連續運算,程式有所改動。 ④退格鍵功能的實現,當按下一次退格按鈕時,若m_num為整數,只需對其中資料除以10再取整即可,若按下一次退格按鈕為小數,則根據小數點後資料的位數dint進行操作,先對m_num執行(dint-1)次乘以10運算,然後取整,接著執行(dint-1)次除以10的運算即可。完成後需要把dint將減小1。

⑤正負號功能的實現,在標頭檔案中定義一個BOOL型變數ele2來判斷m_num的正負。ele2=TRUE時表示為正。在鍵入運算元時需要用到ele2。在正負號按鈕的訊息響應函式內容為m_num=-m_num;ele2=!ele2。

3.計算器系統開發的體會

實踐是獲取知識的一個極其重要的途徑,無論是過去還是現在抑或是將來,我都堅信這一點。在這個實驗中,我堅持以實踐為導向,雖然,我沒有對CLR與的系統的學習,理論理解並不多,但是在實際摸索應用的過程中,我還是學到很多東西,特別是理解了一個功能的使用方法之後,這種快樂的心情是無法描述的。現在可以靈活運用一些常用的屬性,進行一些基本操作,以實現預期目標。

實現該計算器,當時的想法是儘量向Windows計算器靠攏。可以看到,這個計算器有很多Windows計算器的影子。雖然這個計算器還有很多不足,比如表示式的處理。 這個計算器的程式碼都是自己思考過後寫出來的,特別是錯誤排除部分,經歷了很多Bug的時期。由於時間限制,視覺化計算器的基本實現告一段落,在時間允許的以後再進一步完善計算器功能。

熱門標籤