一、專案要求
二、設計步驟
三、程式執行結果
本專案利用mfc應用程式的基本知識,在visual studio2013環境下設計乙個計算器應用程式。
字首、中綴、字尾表示式是對表示式的不同記法,其區別在於運算子相對於運算元的位置不同,字首表示式的運算子位於運算元之前,中綴表示式的運算子位於運算元之前,字尾表示式的運算子位於運算元之前。
例如:(以#為運算子)
字首表示式:#ab
中綴表示式:a#b
字尾表示式:ab#
①建立兩個棧,乙個運算元棧,乙個運算操作符棧,設立一表示式結束符。
②首先將結束符入棧,然後依次將表示式元素與操作符棧棧頂元素進行比較。當當前運算操作符優先順序大於棧頂元素時,將運算子入棧,否則,操作符棧出棧,進行運算後將運算結果入棧運算元棧,重複進行優先順序比較,直至運算表示式結束。
計算器要求:
1)能通過設計的按鈕控制項輸入並實現簡單算術運算,要求表示式在編輯框中顯示,能將運算結果,輸出在編輯框內顯示;
2)能夠實現混合運算的求解,算術表示式中包括加、減、乘、除、括號等運算子;並且能夠識別括號,優先順序正確。
3)並儲存歷史的表示式運算記錄。
根據功能實現要求,介面如下:
**如下:
3.1建構函式
**如下:
:calculator()
else
tempstr= tempstr.
left
(tempstr.
getlength()
-1);
tempstr +
= l"="
; tempstr +
= str0;
str13 = str12;
str12 = str11;
str11 = str10;
str10 = str9;
str9 = str8;
str8 = str7;
str7 = str6;
str6 = str5;
str5 = str4;
str4 = str3;
str3 = str2;
str2 = str1;
str1 = tempstr;
updatedata
(false);}
3.2算術運算控制項對應函式
以加法為例,**如下:
:onbnclickedbuttonjia()
其他算術運算同理可得。
3.3運算方法
將運算方法封裝在一頭檔案中,在cpp原始檔中將控制項輸入的表示式從cstring轉為string,呼叫標頭檔案中運算函式,最後得到結果為數值,再轉為cstring型別,將內容傳至控制項中對應文字位置。(以#為結束符)
a =
"#";
tempstr.
(a);
std:
:string str=
ct2a
(tempstr.
getbuffer(0
));//caculate c("1+1#");
caculate c
(str)
;double m = c.
caculate()
;//cout << m << endl;
"%.4f"), m);
if(m -
int(m)
<=
1e-5
)else
tempstr= tempstr.
left
(tempstr.
getlength()
-1);
tempstr +
= l"="
; tempstr +
= str0;
實現計算器
dim boldot as boolean dim dblacc1,dblacc2 as double dim dblacc3 as double 10 dim strop as string private sub add num byval intnumber as integer if bol...
計算器的實現
計算器?不是非常簡單嗎?宣告兩個float型變數,再加上操作符,自動計算結果出來!public static float calc float a,float b,int operator 呵呵,這麼簡單,那就沒必要寫成文章了 這裡要說的是 程式計算表示式的值,比如 1 2 3 5 9 就是簡單兩個...
計算器的實現
今天來講一下計算器的實現,效果得是怎樣的呢,拿出你的手機的計算器看一下就知道了,注意的是我們運算了兩個數再點選等號會出結果,點選運算子也是會出結果的,這是第一點需要注意的,第二點需要注意的是出了結果出來之後再點選數字會覆蓋結果,根據你想要的效果,我們一步步迴圈漸進的來看看效果。首先我們來宣告乙個變數...