1. 程式人生 > >20172312 2017-2018-2 結對編程--四則運算實驗總結

20172312 2017-2018-2 結對編程--四則運算實驗總結

.com per 運用 改進 process body 遇到 類型 sof

結對對象

20172312 彭霖

20172315 胡智韜

20172318 陸大嶽(組長)

  • 需求分析

    以結對小組形式編寫代碼,實現以下功能:
    1.自動生成題目
    可獨立使用(能實現自己編寫測試類單獨生成題目的功能)
    可生成不同等級題目,類似於:
    1級題目:2 + 5 =
    10 - 5 =
    分析:使用Random生成隨機數構成算式以及符號以及if語句形成兩個等級。

  • 題目運算(判題)
    可獨立使用
    實現中綴表達式轉為後綴表達式並計算
    分析:運用了兩個棧進行計算,第一個將中綴轉換為後綴,第二個計算後綴(第二個我個人是通過百度查找get的)
  • 支持真分數
    可獨立使用
    實現分數算式的計算
    分析:運用第四周的Rationalnumber類修改增加各種與整數的運算,目前我們只實現了獨立使用,還沒有將分數的計算編入主要的main程序裏。
  • 題目去重(擴展需求,加分項)
    可獨立使用
    實現對自動生成表達式的去重:如下
    若生成:2 + 5 =
    5 + 2 =
    為同一題目。
    分析: 加分項而且有些困難,所以本周暫未進行。

    代碼規範

    使用IDEA自帶的首行縮進,較為方便便於運用(即為3個空格的縮進)。

    設計思路

  • 生成隨機運算式和不同等級: 題目需要生成。首先用方法Random生成了運算數,在定義一個隨機數,隨機抽取運算符,並且使用了循環,通過確定循環次數來確定題目等級。
    目前總共分為兩個等級(後面有了括號以及分數之後會增加等級)
    第一個等級:一個運算符
    第二個等級:兩個運算符
  • 題目運算:總共使用了兩個棧,一個用來儲存符號,一個用來儲存數字。通過出棧,進棧的方式來進行將運算式由中綴表達式轉為後綴表達式。
  • 支持真分數:使用了第五章的RationalNumber類,並使用隨機數來生成分子分母,但是我們並沒有討論是否是真分數,因為在後面的題目生成中估計到會產生許多的假分數,於是沒有進行真假分數的處理。
  • 生成括號:感覺目前我們連分數都還沒有搞清,所以括號處在擱置狀態,下周將補上。

    UML圖

    技術分享圖片

    技術分享圖片

    問題統計

  • 問題1:計算正確率的時候出現了全對正確率為1,錯一道即為全部錯誤。

    技術分享圖片

  • 問題1解決方案:後來發現是錯用了除號和取余號。

  • 技術分享圖片

  • 小組成員評價

  • 20172315 胡智韜

  • 編寫中綴轉後綴以及計算的部分(臟活累活,辛苦了QwQ)

  • 20172318 陸大嶽
  • 編寫main類統籌規劃(最容易出錯的地方,不容易QwQ)
  • 相關過程截圖

    技術分享圖片



PSP時間統計

PSP2.1Personal Software Process Stages預估耗時(分鐘)實際耗時(分鐘)
Planning 計劃 55 75
Estimate 估計這個任務需要多少時間 3 5
Development 開發 2400 3000
Analysis 需求分析 (包括學習新技術) 300 360
Coding Standard 代碼規範 (為目前的開發制定合適的規範) 30 15
Design UML 設計項目UML類圖 60 120
Coding 具體編碼 2000 2400
Code Review 代碼復審 30 40
Test 測試(自我測試,修改代碼,提交修改) 240 300
Size Measurement 計算工作量(實際時間 5 5
Postmortem & Process Improvement Plan 事後總結, 並提出過程改進計劃 30 60
合計 5153 6380

其他

表示這個是真的難,不僅僅是工作量的巨大,更是各種方法直接的數據類型轉換等不協調出現問題,我們組由於其本上個人每個類遇到瓶頸的時候都會求助組員,所以我們組的很多數據類型都非常的統一協調。但是巨大的工作量以及各種細節問題讓我們難以應付,導致

20172312 2017-2018-2 結對編程--四則運算實驗總結