軟體實習實驗一計算器的開發(第一天)

2021-10-11 10:59:59 字數 1486 閱讀 2254

物聯網一班-李林青-182210713120

源**在github:

(1) 能通過設計的按鈕控制項輸入並實現簡單算術運算,要求表示式在編輯框中顯示,能將運算結果,輸出在編輯框內顯示;

(2)能夠實現混合運算的求解,算術表示式中包括加、減、乘、除、括號等運算子;並且能夠識別括號,優先順序正確。

(3)並儲存歷史的表示式運算記錄。

(1)使用編輯器及語言

visio studio2019,c++

(2)核心思想

利用兩個棧分別存放運算子和數字,當指標指到運算子時,先於存放運算子的棧中的運算子進行優先順序比較,如果高於棧運算子就入棧否則就將運算子出棧同時將存放數字的棧出棧兩次,再將數字和運算子進行算術運算,所得結果繼續入棧直至結束。

(3)關鍵**

1.對大於一位數的判斷,當判斷是數字或小數點時,將s[i]的字元加在string型別的keepnum上,在用for迴圈將後面的數字累加上去,最後一定要清空keepnum。

if

(s[i]

!='+'

&& s[i]

!='-'

&& s[i]

!='*'

&& s[i]

!='/'

&& s[i]

!='('

&& s[i]

!=')'

)else

double d =

atof

(const_cast

<

const

char

*>

(keepnum.

c_str()

)); constantstack.

push

(d);

keepnum ="";

//這裡一定要清空keepnum

}}

2.左括號的優先順序最高,直接入棧。

if

(s[i]

=='('

)

3.右括號的優先順序最低,用while迴圈進行遍歷,將左括號之前的運算子出棧進行運算。

if

(s[i]

==')'

) operatorstack.

pop();

}

(3)結果檢驗

在程式中輸入1.5-0.3*(8/3)

我的程式所得:

手機計算器所得結果:

進過大量資料檢驗,**計算的結果與計算器所得一致。

在理解利用堆疊來實現計算器功能後,後續的目標就明確了,總的來說今天是順利完成任務。

DC綜合實驗一 計算器

實驗一 計算器 摘要 本 dc綜合實驗設計了乙個簡單的二進位制計數器,由 fsm finite state machine 控制完成正向計數或者負向計數,並給出了設計原始碼和綜合步驟及結果。綜合工具 dc2005 1.資料準備 1 設定dc 的工作環境,即啟動檔案 在工作目錄下 home ic401...

Tkinter 計算器第一代

from tkinter import master tk master.title 第一代計算器 frame frame master frame.pack padx 10,pady 10 v1 stringvar v2 stringvar v3 stringvar def test conten...

自己開發的乙個計算器小程式

計算器程式是自己開始學習c 時自己編寫的一小程式,自己開始一直在摸索,在這其中也遇到了很多問題,比如正負號的問題,清零的操作等等。後來在同事的幫忙下順利完成了。畫面有些粗糙,望大家見諒哈 using system using system.collections.generic using syst...