四則運算 個人專案實踐

2021-08-21 07:53:42 字數 4063 閱讀 8004

題目要求:像《構建之法》的人物阿超那樣,花二十分鐘寫乙個能自動生成小學四則運算題目的

命令列 「軟體

」, 分別滿足下面的各種需求。

下面這些需求都可以用命令列引數的形式來指定:

a) 一次可以出一千道道題目,並且沒有重複的,把題目寫入乙個檔案中。我們大家都知道,

(1+2)

和(2+1)

是重複的題目。

b) 當你有多於乙個運算子的時候,如何對乙個表示式求值?逐步擴充套件功能和可以支援的表示式型別,最後希望能支援下面型別的題目 (最多

10 個運算子,括號的數量不限制):

25 - 3 * 4 - 2 / 2 + 89 = ?

1/2 + 1/3 - 1/4 = ?

(6 - 4

) *

(3 + 28) =

?c) 除了整數以外,還要支援真分數的四則運算。 (例如:

1/6 + 1/8 = 7/24

)d) 讓程式能接受使用者輸入答案,並判定對錯。 最後給出總共 對

/錯 的數量。

e) 到目前為止,這個程式的介面都是中文的, 隨著這個應用大受歡迎,別的國家的使用者也要用,那麼怎麼能高效地讓這個

支援不同文字介面互換呢?你是在程式裡面不斷插入

if ... else ...

來處理中英文,還是有高效率,可以擴充套件的辦法?這個程式最終會擴充套件為支援

10種語言,而且每個語言的使用者需要符合他們文化的圖示。請問你還是用

if/else

來解決麼?

一.計畫個人專案花費時間

psp2.1

personal software process stages

time

planning

計畫

10min

· estimate

· 估計這個任務需要多少時間

10min

development

開發

· analysis

· 需求分析 (包括學習新技術)

20min

· design spec

· 生成設計文件

10min

· design review

· 設計複審 (和同事審核設計文件)

15min

· coding standard

· **規範 (為目前的開發制定合適的規範)

10min

· design

· 具體設計

30min

· coding

· 具體編碼

1h· code review

· **複審

10min

· test

· 測試(自我測試,修改**,提交修改)

20min

reporting

報告

· test report

· 測試報告

20min

· size measurement

· 計算工作量

10min

· postmortem & process improvement plan

· 事後總結, 並提出過程改進計畫

10min

合計215min

二.實際個人專案花費時間

psp2.1

personal software process stages

time

planning

計畫

20min

· estimate

· 估計這個任務需要多少時間

20min

development

開發

· analysis

· 需求分析 (包括學習新技術)

60min

· design spec

· 生成設計文件

20min

· design review

· 設計複審 (和同事審核設計文件)

15min

· coding standard

· **規範 (為目前的開發制定合適的規範)

10min

· design

· 具體設計

40min

· coding

· 具體編碼

2h· code review

· **複審

10min

· test

· 測試(自我測試,修改**,提交修改)

20min

reporting

報告

· test report

· 測試報告

20min

· size measurement

· 計算工作量

15min

· postmortem & process improvement plan

· 事後總結, 並提出過程改進計畫

15min

合計380min

三.程式改進

程式的改進主要為由算式得出答案改為由答案拆分成算式,避免了括號的插入與運算等難題,思路較為清晰簡單。

程式效能分析:

四.測試用例

由程式生成的題目與答案檔案如下:

整數:

分數:

由於由答案推出算式,測試用例全部正確。

五.個人心得體會

坦率的講,這次真的小看了這個專案,原本以為就是乙個類似於計算器的程式,準備寫乙個ios程式,為此浪費了大半個上午的時間,後來還是因為晚上臨時有事時間不充足和一些技術原因,還是暫時放棄,選擇使用

c++先完成任務,後期有時間完成這個程式。

簡單的四則運算,實際上有很多值得思考的地方。

1. 如何優雅的插入括號?

2. 如何優雅的完成帶括號的運算?

3. 如何完成真分數的運算?

4. 如何完成加減乘除的混合運算?

同學們雖然使用不同的語言,但是大致的思路一致,就是先完成隨機算式的生產,接著完成算式的運算,然後判斷運算結果與輸入結果是否一致,整個過程清晰但需要解決的問題很多。

在前期做了大量的設計工作,花費了大量時間後,我決定採用逆推的方法,便是由隨機答案生成隨機算式。大致思路採用遞迴演算法,以隨機生產數ans為答案,再生成隨機

f,根據

f的範圍絕定以

ans進行哪種運算操作,最後得出乙個算式

str。該方法難點在於分數的拆分,拆分演算法還需要進一步優化。

總結:由於個人對專案的不重視,沒有對專案的需求進行仔細的分析,在前期設計階段花費了大量的時間,這是乙個很嚴重的錯誤,此次在短時間內體驗了乙個完整的專案流程,自己的抗壓能力還是不足,在設計階段的失誤導致在編碼階段錯誤連連,**規範性差,可讀性差,在以後的專案實踐當中,必須吸取經驗,特別是在專案設計階段犯的錯誤必須要改正。

程式截圖:

二柱子的四則運算(個人專案3)

題目 二柱子將做好的專案交給了老師,幾天後又得到了新的需求 2 答題結束後,可以判斷對錯。3 並將錯題的結果儲存起來。設計思路 整理要求,利用srand time null 來進行迴圈,來計算題目數量,選擇公式。還要控制 資料範圍,運算加減乘除法四則運算,判斷負數和真分數並進行計算,最後判斷正錯和統...

個人專案(四則運算程式)總結

一.基本要求 將10 20道四則運算題目寫入文件,程式讀取並輸出題目,同時計算出正確結果。使用者對每道題目計算答案,答對進行提示,答錯輸出正確結果。分別記錄回答正確 錯誤的數目並輸出。四則運算題目基本要求 1.加減乘除四種運算全部出現 3.算式中要出現括號 2.出現真分數和假分數的運算 4.最少出現...

四則運算(小專案)

實現下述題目,重點是程式通順,沒有bug。先做基本功能,慢慢加內容,注意模組化設計。按照三到四次課的時間來完成應該差不多,大家先做做看,最後做完再交,注意我有查重系統。題目 小學生測驗 面向小學1 2年級學生,隨機選擇兩個整數進行四則運算,要求學生解答。功能要求 1 電腦隨機出題,題目數使用者設定,...