軟件工程第三周結對編程
阿新 • • 發佈:2018-03-25
文字 class 復習題 時間的流逝 bug common 小程序 支持 rgs
結對編程之四則運算
1、項目成員
連燕波:201521123081
曾飛遠:201521123080
隊員風采展示
結對編程碼雲地址:https://gitee.com/Yanboooooooo/software_engineering_201521123081
2、需求分析
隨著課余娛樂項目的增加,現在的小孩子在學習上變得越來越不自覺,需要老師、家長在背後催著才會做作業,因此需要實現一個計時功能,以時間的流逝來給孩子一些緊迫感。另外,在經過長期的運算訓練之後,如何才知道學生的運算水平是否有顯著提高呢?將做題過程進行計時可以解決這個問題,從花費時間的長短就可以看出是否取得進步。
為了讓這個四則運算自動生成器的使用人群跨越國界,就需要我們實現語言切換功能。不僅讓中國大陸的小孩可以簡單上手這個小程序,同時還能讓中國臺灣以及外國的小孩同樣可以使用。實現這樣一個小小的功能,就可以讓我們這個自動生成器的受眾面遍布世界各地,不受語言的障礙。
在原有代碼上的改進:
Ⅰ改正一些錯誤的編碼和用法;
Ⅱ修改部分代碼風格;
Ⅲ修正復習題出現重復的BUG;
Ⅳ修改了部分GUI界面;
Ⅴ發現正確率不正確的問題。
3、程序設計
基礎功能
1、計時功能,顯示並記錄使用者答題所花費的時間;
2、支持三種語言文字,中文簡體/中文繁體/英語,選擇多樣,可再改進;
擴展功能
3、記錄使用者錯誤題集,程序退出再啟動的時候,能將以前的對錯數量保存並在此基礎上增量計算;
4、對用戶輸入題數的內容設置了容錯功能,只可以輸入1~10之間的數字,輸入字母或者不在範圍內的數字將無法點擊確定按鈕;
高級功能
5、設置錯題集,實現了錯題復習功能,可以將用戶使用以來做錯的題目保存在文檔中,點擊“復習”按鈕,生成的題目將全部是之前用戶做錯的題目,達到用戶復習的目的。
思維導圖
代碼規範
Arithmetic類 astr 返回答案字符串 qstr 返回問題字符串 int_operation() 整數計算函數 fra_operation() 分數計算函數 common_divisor(int m,int n) 公約數計算函數 toString() 輸出函數 Frame類 hs 實例化History hh 實例化QA_List timer 實例化Work_Time Time 計時器動態窗口 answer1~10 輸入窗口 Review 復習按鈕 question1~10 題目顯示標簽 Right_answer1~10 正確答案顯示標簽 Tip1~10 提示正確與否標簽 Time_cost 所花時間顯示標簽 Right_percent 正確率顯示標簽 Set_question 開始按鈕 jLabel5 歷史正確題數 jLabel7 歷史總題數 rn 單次正確題數 tot 單次總題數 Frame() Frame構造函數 initComponents() 窗體顯示 xxxClicked(KeyEvent evt) 點擊事件 KeyPressed(JLabel i,JLabel j,JLabel l,int x,JTextField k) 點擊事件批量處理函數 Hide() 使不需要的輸入窗口關閉 Tip(String answer,int i)提示對錯並計入 Histroy類 qstr 問題字符串 astr 答案字符串 str 答案+問題字符串(寫入文件) str2 正確題數+總題數字符串(寫入文件) tot 總題數 rn 正確題數 qstrlist 問題字符串列(讀入文件) astrlist 答案字符串列(讀入文件) scan(String qstr,String astr) qstr+" "+astr scan2(int tot,int rn) tot+" "+rn Histroy_create() 歷史文檔生成 Histroy_save() 存儲歷史題目與答案 Histroy_saveNum() 存儲歷史題目數目 Histroy_read() 讀入歷史題目與答案 History_num() 讀入歷史題目數目 QA_List類 i 加入列題目個數 Qusetion 問題字符串列 Answer 答案字符串列 QA_List() QA_List構造函數 Test_Number類 i 顯示Test_Number窗體次數 l 語言轉化參數標識 Cancel_Button 取消按鈕 Sure_Button 確定按鈕 English 英文界面標簽 Simplified_Chinese 簡體中文界面標簽 Traditional_Chinese 繁體中文界面標簽 Number 所需題數 Test_Number() Test_Number構造函數 initComponents() Test_Number窗體顯示 xxxClicked(KeyEvent evt) 點擊事件 Test類 main(String[] args) Work_Time類 x 00:00.x y 00:y.00 z z.00.00 局部變量和方法按照駝峰風格命名,類名采用Pascal風格。
PSP表格
PSP2.1 | 個人開發流程 | 預估耗費時間(min) | 實際耗費時間(min) |
---|---|---|---|
Planning | 計劃 | 15 | 13 |
Estimate | 明確需求和其他相關因素,估計每個階段的時間成本 | 10 | 7 |
Development | 開發 | 180 | 200 |
Analysis | 需求分析(包括學習新技術) | 30 | 30 |
Design Spec | 生成設計文檔 | 10 | 5 |
Design Review | 設計復審 | 5 | 7 |
Coding Standard | 代碼規範 | 5 | 4 |
Design | 具體設計 | 20 | 16 |
Coding | 具體編碼 | 60 | 60 |
Code Review | 代碼復審 | 10 | 5 |
Test | 測試(自我測試、修改代碼、提交修改) | 20 | 15 |
Reporting | 報告 | 8 | 10 |
測試報告 | 5 | 5 | |
計算工作量 | 5 | 5 | |
提出過程改進計劃 | 5 | 3 |
單元測試
覆蓋率
4、部分代碼展示及其運行情況
使用工具繪制界面實現多種語言文字
計時器
問題及其答案產生
題目對錯判斷及答案
6、碼雲提交展示
5、小結
第一次使用結對編程的合作模式,並非認知中的,你寫這些內容,而我負責這些內容。但是通過這兩周的合作發現並非如此,在我負責某些版塊任務的時候,搭檔則在一旁指點,兩個人在開發中交流,在交流中學習、進步。並且明顯感覺到1+1>2!
另外,結對編程中,兩個人一直在進行角色互換,兩人都不會感到特別疲乏。極大改善了雙方的編程體驗。
軟件工程第三周結對編程