1. 程式人生 > >20172325《結對編程——四則運算》第一周總結

20172325《結對編程——四則運算》第一周總結

五個 操作 info 就是 https detail stand 時間 分別是

結對編程——四則遠算(20172325)

本周總結

我的結對夥伴是劉辰20172306,第一周的任務是設計整體思路,構建UML類圖。在拿到這個項目的時候,真的是像她說的一臉懵^,對於建幾個類,每一個類裏面放那些方法,定義那些變量等等都完全沒有思路。但是很多的查詢之後,求同存異,一步一步理清了思路,與目標也越來越接近。在這一周的任務中,我們有爭論,意見出現過分歧,但是在良好的溝通交流下,最終還算完整地完成了這一周的任務,為什麽這樣說呢,因為在設計類圖的時候總覺得要把每一步都考慮好,但是如果不實踐出來,根本不知道應該要註意哪些點,所以就很糾結。

需求分析

題目運算(判題)

要求:可獨立使用
實現中綴表達式轉為後綴表達式並計算
判斷用戶答題正誤,並輸出正確結果

  • 針對第一個需求,我們選擇建一個類,這個類裏面首先能夠對題目等級進行劃分,確定用戶所需等級;其次能夠隨機生成操作符合運算數,形成一個普通的算式;

自動生成題目

要求:自動生成題目
可獨立使用(能實現自己編寫測試類單獨生成題目的功能)
可生成不同等級題目,類似於:
1級題目:2 + 5 =
10 - 5 =
之類的兩個數,一個運算符的題目

  • 第二個需求,主要是表達式轉換和後綴表達式運算。建立兩個類,一個用於中綴轉後綴,一個用於後綴表達式的計算以及答案的判斷。

支持真分數

可獨立使用
實現分數算式的計算

  • 第三個需求,能獨立使用的真分數題目和答案,原本只考慮到在答案中體現真分數,只需要考慮求余運算,但是後來在學長給了一些提示之後才發現,還需要在題目中出現真分數,於是又將考慮如何使棧能夠識別分數形式的數,問題比較復雜,後期慢慢琢磨,先把它納入生成題目的類裏面。

題目去重(擴展需求,加分項)

要求:可獨立使用
實現對自動生成表達式的去重:如下
若生成:2 + 5 =
5 + 2 =
為同一題目

  • 第五個需求為拓展題,加分項,我們也在考慮這個問題,一開始我想到的是運用數組來搞兩個集合,一個存放操作符,一個存放運算數,識別題目中操作符和運算數的個數和位置,相同則為重復,但是這個想法要實踐起來可能就會遇到很多問題,所以先待定。

設計思路

  • 1、設計三個類,一個Test文件。三個類分別是生成題目、中綴轉後綴、後綴表達式的計算;
  • 2、在生成題目的類裏面聲明各種算法、真分數的加入;
  • 3、在中綴轉後綴的類裏面運用棧進行操作,按照老師上課講的內容,由於兩個人一組,不加入括號;
  • 4、在後綴表達式計算的類裏面,通過添加參數吧第二個類最後生成的後綴表達式導入,然後進行計算,同時,在這個類裏面加上答案的判斷,有用戶輸入一個值,將它和系統生成的值進行比較,然後輸出不同的信息。
  • 5、在Test文件裏我將會吧三個類串聯起來,然後在最後加上是否繼續(Y/N ?)的循環語句。

UML截圖

技術分享圖片

遇到的問題及解決方法

  • 問題1:項目已開始,我們在繼承上糾結了很久,為此還設計了很多類以為將要繼承一個大的父類。
  • 問題1解決方案:學長講解之後意識到,這次的項目和學到那沒有關系,是綜合能力的考察,也就是說不一定用到剛學完的繼承,於是豁然開朗,我們要根據需求設計不同的類,都能夠各自獨立完成自己的那一部分任務,然後將他們在Test文件裏一起引用。

  • 問題2:我是負責UML類圖的設計和中綴轉後綴,後綴表達式的計算,在一開始,我的設計就存在問題,UML類圖是一個類似提綱的存在,我需要的僅僅是將大致的思路構建在UML類圖裏面,但是我一直都覺得要將整個項目搞出來,具體實踐,才能知道在每一個類裏面需要用到什麽方法,聲明什麽變量,很糾結,浪費了不少時間。
  • 問題2解決方案:經過結對同學的提醒,以及和她的良好溝通,我們發現我們的設計思路完全一樣,只是在實踐的過程中有一些小問題,在相互的提醒下就解決了問題,最後完成任務。

對結對夥伴20172306的評價

有些急躁,在完成一件任務的時候不會有一個先思考的過程,大局意識比較弱,感覺只要在做這件任務就夠了,但是這樣的隊友能夠促使我盡快的著手去做,而不是一味的只知道想而不去付諸實踐。

參照網站

  • (https://blog.csdn.net/cbbbc/article/details/40345225)
  • (https://blog.csdn.net/u014611932/article/details/45538913)

PSP

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

20172325《結對編程——四則運算》第一周總結