在編程中個人角色更傾向於領航員的角色,但在某些代碼編寫中我也化身爲副駕駛,協做,檢查,護航。html
我想要幹什麼java
- 自動生成小學四則運算題目(加、減、乘、除)
- 支持整數,支持多運算符,支持真分數
- 統計正確率
- 瞭解了中綴和後綴表達式
- 瞭解棧的使用
- 編寫過度數的四則運算程序
- 熟悉調度場算法
- 支持真分數
- 設計三個難度,對應運算符的多少以及是否加入括號
- 設計兩種類,一種用來生成題目,一種用來計算題目
- 計算:現將中綴表達式轉換爲後綴,在進行計算
調度場算法
在鄒老師的調度場算法中提到若是在上面的過程當中不執行計算,直接將數字和出棧的符號依次輸出,咱們就會獲得後綴表達式
git
經過閱讀了解到要想將中綴改成後綴有兩個關鍵問題github
- 如何去除括號
- 如何處理運算符的優先級
//解決去除括號問題 //若是讀入的操做符爲非")"且優先級比棧頂元素的優先級高或同樣,則將操做符壓入棧 if (Number(Opera.peek()) < Number(token) && !token.equals(")")) {...} //若是讀入的操做符是")",則彈出從棧頂開始第一個"("及其以前的全部操做符 else if (token.equals(")")) { while (!Opera.peek().equals("(")) { String operator = Opera.pop(); Methoder.append(operator); stack.push(operator); } Opera.pop(); } //解決運算符優先級的問題 private static int Number(String token){ switch (token) { case "+":return 1; case "-":return 1; case "*":return 2; case "/":return 2; case "(":return 3; case ")":return 3; default :return 0; } }
編寫好單一運算符的分數計算基礎類(王旌含)算法
以上就是一些階段成果,還有正在解決的問題編程
- 產生多運算符題目時如何將括號插入有效位置
- 未能解決分數的多運算符計算
碼雲項目app