結對編程之四則運算——第二階段報告
摘要:本周主要任務是解決判題問題,修改程序的漏洞,實現計時功能等
代碼托管
需求分析
我將我做的的這一程序的定位是:能夠讓用戶知道自己的計算水平的同時也能夠讓設計者認識到用戶的水平。我並沒有設計要讓用戶選擇做幾道題,而是他能夠隨時選擇不做。這一想法是基於用戶自身希望了解自己實力的前提為保障。
關鍵代碼的解釋以及編寫時遇到的問題
判題問題
判題方面的問題是我上周遺留下來的問題,上周我一直糾結"="和"equals"這兩個方法,但是實在無法實現我想要的結果,本周我在百度中尋找答案,發現了自己一個很可笑的錯誤,就是equals方法雖然是自帶的,但每次使用一般都會重寫這個類,以達到自己想要實現的目標。同時我還記起來了曾經學習到的compareTo方法,於是我重寫了一個適用自己程序的compareTo方法。
解決方案
效果圖
限時答題
這是我自己另外想做的功能,我在網上搜索,學習如何做一個定時器,但是在運行的過程中出現了一個問題。我不知道該如何實現通過計時器終止之前的操作,想了很多的方法,包括當時間一到,將回答賦值給一個不可能正確的值,然后使得用戶錯誤,很遺憾我沒有堅持下來,無法實現那個功能。只做了一個簡單的功能,從而提醒用戶加快速度
解決方案
效果圖
實現多語言
在思考這一功能實現的方法上,我最先想到的就是運用equals方法,通過用戶選擇1,2,3或者是A,B,C,再運用if來判斷從而實現。想法很簡單但是對於我的程序來說這樣做就有些負責,我的程序有一個很大的問題就是沒有符合程序員編程時應該注意的原則,只實現了一個類,所以如果那樣做的,冗長,不便於閱讀。所以我以中文為主,英文為翻譯而提供給用戶
解決方案
效果圖
查看前文的圖片便知
BUG的修復
在這里感謝我的結對伙伴王譯瀟幫我找到了一些BUG
BUG-1
我沒有考慮到如果用戶輸入了Level1-6范圍之外的值怎么應對,如果我沒有采取措施的話,這個程序只能重新運行,所以我做了一些處理
解決方案
效果圖
BUG-2
沒有考慮到如果用戶一題都沒有回答怎么辦,也就是說當我在程序最后計算正確率的時候變成了0/0,分母出現了0就會出現了問題。於是我對程序進行了修改和完善。
解決方案
效果圖
UML圖
l的運行以及測試
Leve1與Level2
Level3與Level4
Level5與Level6
結對伙伴的評價
20162310王譯瀟同學是一個十分聰明的同學,結對編程過程中經常會提出一些令我震驚的問題,他十分擅長找BUG,在他的幫助下我們的程序更加的完善。至於他的問題,他缺少了一些務實的精神,應該要在這方面下點功夫
PSP2.1
PSP2.1 | Personal Software Process Stages | 預估耗時(小時) | 實際耗時(小時) |
---|---|---|---|
Planning | 計划 | 1 | 1 |
· Estimate | · 估計這個任務需要多少時間 | 5 | 10 |
· Analysis | · 需求分析 (包括學習新技術) | 2 | 2 |
· Design Spec | · 生成設計文檔 | 1 | 1 |
· Design Review | · 設計復審 (和同事審核設計文檔) | 1 | 1 |
· Coding Standard | · 代碼規范 (為目前的開發制定合適的規范) | 1 | 1 |
· Design | · 具體設計 | 2 | 3 |
· Coding | · 具體編碼 | 5 | 6 |
· Code Review | · 代碼復審 | 1 | 1 |
· Test | · 測試(自我測試,修改代碼,提交修改) | 1 | 1 |
Reporting | 報告 | 1 | 1 |
· Test Report | · 測試報告 | 2 | 2.5 |
· Size Measurement | · 計算工作量 | 0.5 | 0.5 |
· Postmortem & Process | · 事后總結, 並提出過程改進計划 | 3 | 2 |