程式設計第四次作業 計算器第二步(計算)

2022-05-02 00:51:12 字數 1654 閱讀 5595

<1>使用呼叫的方式。也就是在命令列裡(如windows下的cmd)輸入表示式,得到結果。

<2>對四則運算表示式進行拆解。

<3>通過兩個棧來處理計算和優先順序。

從看到題目就是一臉懵逼,後來看了同學的部落格和在網上相關的資料的查詢,才漸漸了解的題目的大概意思,和主要的如何實現目的的**操作。

想法:<1>將佇列傳入處理的函式calculate,掃瞄並劃分哪一些是操作符,哪些是計算數;

<2>通過優先順序,來處理操作符push進棧的先後;

<1>建立兩個棧,分別用來儲存操作符和數字

stackstaoper; //只處理+ - # / ()運算

stackstanum; //只處理輸入數字運算

<2>判斷是否是運算元還是數字

bool operation::isoperator(string str)

<3>主要的難點是操作符優先順序的判斷,這個我想了很久也不會,於是查詢了網上相關的資料

了解到計算機是無法自己識別括號,並像人工那樣計算的,只能將中綴表示式轉變為字尾表示式,以棧的方式進行讀取計算。

operation::operation()    //定義建構函式為資料賦值 

雖然借鑑了,但是主要的意思,就是這個優先順序的判斷是如何得來的,還是搞不太清楚<4>棧的儲存都完成後,最後只要取出乙個操作符和兩個數字進行計算就可以了。<1>在傳入的佇列多了乙個回車(這個bug讓我找了很久,一直是帶有括號的計算不了,加了很多的輸出流來檢查)

if (count<=10&&str!="")  //這個位置開始我並沒有查詢是否為空,就將剩餘的字元push進去,導致錯誤

<2>傳入函式的引數為指標沒有加上&<3>在處理負數的計算要先在數字的棧push進乙個『0』<4>完成配對用「##」的配對完成<5>無法完成小數計算,我將輸入改為double型別

<1>對輸入的表示式是否合法,沒有進行首要的判斷

<2>在處理除數為0的情況,會出現奇怪的答案

<3>沒有用cmd傳入的形參(後來才改正的)

《計算思維綜合訓練》第四次作業題解

請大家理解思路,自己嘗試寫出 不要抄襲!請大家理解思路,自己嘗試寫出 不要抄襲!請大家理解思路,自己嘗試寫出 不要抄襲!problem c.課堂作業 9 2 分析 dfs即可 每搜到乙個塊,把所有礦打標記,並把答案ans 1。jerry99 include using namespace std t...

中山大學服務計算第四次作業

在 gitee 或 github 上發布乙個讀配置檔案程式包,第一版僅需要讀 ini 配置 1.核心任務 包必須提供乙個函式 watch filename,listener configuration,error 優點 2.包必須包括以下內容 由於本次實驗要求自定義錯誤,因此,在readconfig...

2020軟體工程第四次作業(第二次結對)

作業公共資訊區 部落格資訊 瀋陽航空航天大學計算機學院2020軟體工程作業 作業要求 課程目標 熟悉乙個 高質量 軟體的開發過程 作業目標 結對程式設計練習 1 題目要求 2 任務分工 駕駛員 曾麗君 3 位址 點這裡呀!小學生四則運算生成程式 鏈結 4 功能設計 經過我和魏思夢同學審題後的結果得出...