20172325《結對編程——四則運算》第一周總結
結對編程——四則遠算(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《結對編程——四則運算》第一周總結