四則運算

coding.net:https://git.coding.net/vambo/Caculates.gitgit

需求分析:
編寫一個程序
1.自動生成小學四則運算的題目
2.Myapp.exe -n 10 -o Exercise.txt 經過-n控制題目數量 Myapp.exe -r 10 -r控制數值範圍
3.假分數轉爲真分數表示
5.程序生成的題目不能重複(PS:經過有限次交換+或者×變成同一道題目)
6.生成的題目存入執行程序的當前目錄下的Exercises.txt文件,同時生成答案,存入當前目錄下的Answers.txt文件。
特別的,真分數的運算以下例所示:1/6 + 1/8 = 7/24。
7.程序能支持生成1W題
8.給定題目文件和答案文件,能斷定對錯 :如Myapp.exe -e <exercisefile>.txt -a <answerfile>.txt -o Grade.txt算法

設計文檔:
1.設計一個類來存儲運算數,類成員分別表示整數部分,分子部分,分母部分,boolean型表示是否帶有分數。
2.設計一個類來存儲運算符,+,-,×,÷。
3.獲取控制檯參數,有-e則爲校驗答案,不然爲生成式子。設計文檔:
4.用兩個數組分別存儲操做數和操做符,根據操做符數組來決定式子的運算方法。
5.計算過程用假分數表示,得出最終結果再約分。
具體實現:
數組

  • com.main
    • Main    提供方法入口,接收控制檯參數
  • com.operationBean  bean包
    • Operand  操做數類
    • Operator 操做符類
  • com.tools      工具包
    • Caculate 提供計算方法
    • Reduction 提供方法將數化爲規範的真分數           

PS:加減乘除方法相近,故只貼加法app

同理類推,三個運算符則爲(++)+,(++)-,++(×),++(÷)eclipse

 

 

 運行結果工具

 

 

 

爲了方便在myeclipse集成環境下測試運行學習

 

 

 

PSP

 

PSP2.1測試

Personal Software Process Stages編碼

Time Senior Studentspa

Time

 

Planning

計劃

5

10

 

· Estimate

估計這個任務須要多少時間

5

5

 

Development

開發  

105

410

 

· Analysis

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

10

10

 

· Design Spec

生成設計文檔

10

10

 

· Design Review

設計複審

10

5

 

· Coding Standard

代碼規範

10

5

 

· Design

具體設計

10

20

 

· Coding

具體編碼

50

300

 

· Code Review

代碼複審

5

30

 

· Test

測試(自我測試,修改代碼,提交修改)

13

30

 

Reporting

報告

15

20

 

·

測試報告

6

10

 

·

計算工做量

6

5

 

·

並提出過程改進計劃

6

10

 

 

 

 

 

 

 

 總結

  最近課餘心思比較多的花在參加宣講會和簡歷上,因此對於課業花的心思會比較少。對於這個項目我以爲是一個比較好的方式去學習和實踐算法,但我應該是沒作到。

在考慮查重的時候,看到王文基學長分享的《【四則運算】做業--如何判斷重複》中,當算式使用二叉樹形式存儲時,能夠經過最小子樹判斷算式的運算步驟。根據這種思路從而推出更淺顯且暴力,能適用於我這個項目中的用法(由於項目並無使用二叉樹做爲存儲結構),既經過運算過程來判斷算式是否重複,由於當1+2+3和3+2+1在我這個項目中實則爲caculate(caculate(1+2),3)和caculate(caculate(3+2),1),即判斷最小的caculate(操做數1,操做數2,操做符)是否相同(或者操做符爲+、×時經過交換兩個操做數位置後相同),可是在讀取字符串時,想將字符串讀取爲操做數數組和操做符數組存儲時出現邏輯問題,因此如今卡在這裏。也由於此輸入題目文件和答案文件時檢查題目正確性也使用直接讀取答案文件來匹配了。

一片綠。。。。。爲了遇上deadline,就先提交目前的版本,以後在改進。

相關文章
相關標籤/搜索