第一次作業簡單艱辛的歷程
阿新 • • 發佈:2018-09-12
pub 一次 eth 測試結果 內容 出現 war rep github
快的並痛苦著
一、預估與實際
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 600 | 720 |
? Estimate | ? 估計這個任務需要多少時間 | 600 | 720 |
Development | 開發 | 600 | 900 |
? Analysis | ? 需求分析 (包括學習新技術) | 30 | 40 |
? Design Spec | ? 生成設計文檔 | 30 | 40 |
? Design Review | ? 設計復審 | 30 | 40 |
? Coding Standard | ? 代碼規範 (為目前的開發制定合適的規範) | 30 | 40 |
? Design | ? 具體設計 | 60 | 70 |
? Coding | ? 具體編碼 | 300 | 400 |
? Code Review | ? 代碼復審 | 10 | 30 |
? Test | ? 測試(自我測試,修改代碼,提交修改) | 20 | 40 |
Reporting | 報告 | 10 | 40 |
? Test Repor | ? 測試報告 | 30 | 40 |
? Size Measurement | ? 計算工作量 | 30 | 40 |
? Postmortem & Process Improvement Plan | ? 事後總結, 並提出過程改進計劃 | 20 | 40 |
合計 | 900 |
二、需求分析
- 要根據實際情況,結合實際,並不是所有的小學一年級生水平都一樣,需要有一個範圍
- 只有加減法
- 不能有負數小數
- 100以內的運算
經過分析,我認為,這個程序應當:
- 控制在一、二年級生能完成的水平內
- 都是整數,不能有小數,因為小數點一年級還沒學哈哈
- 不能出現負數
- 數據範圍嚴格控制好,不要超綱
三、設計
1. 設計思路
- 說明你如何設計這個程序
- 用戶輸入的參數,需要判斷是否符合要求
- 題目隨機生成,需要符合一二年級的算術規則
- 不能產生負數
- 範圍100以內
- 運用隨機數random()
- 文件的生成與寫入
- 將題目和答案存入out.txt文件
比如:
- 最重要的,判斷用戶輸入的數字是否符合規定,不符合的話,應該怎麽提示,這又應該怎麽控制
- 用到比如Integer.parseInt,一開始很困難,通過借鑒請教別的同學的以及查閱資料掌握
- 一二年級的數字範圍
2. 實現方案
- 準備工作:先在Github上創建倉庫,克隆到本地.
- 技術關鍵點:如何用命令行輸出參數
四、編碼
- 沒有考慮到用戶輸入輸入的參數不是整數數字的
- 開始有很多問題,比如不會生哼隨機數,不會寫入文件等等,通過復習和查閱資料弄清楚
1. 調試日誌
- 一開始出現的大小bug簡直是天花亂墜,後來經過很漫長的分析修改,一步一步的來,終於稍微好點了(感覺現在自己的代碼還是有很多bug)- 。-
- 算術題出現曉得一個數減去大的一個數理應是負數,但是小學一年級不會負數,所以需要換一下位置,用大的減去小的
- 當輸入不是整數的時候,包括輸入英文等其他內容,需要提示重新輸入
2. 關鍵代碼
private static int n1,n2,x; //定義三個靜態成員
private static String[] str1 ;
private static String sun; //創建新對象字符串
public static void main(String args[]) throws FileNotFoundException, InterruptedException {
// TODO Auto-generated method stub
int i =Integer.valueOf(args[0]).intValue(); //題目
int g =Integer.valueOf(args[1]).intValue(); //年級
//輸出保存在文件中
File file = new File("out6388.txt");
PrintStream ps = new PrintStream(file);
System.setOut(ps);
choiceGrade(i, g);
3. 代碼規範
- 有關縮進的問題,一定要符合規範,一個是整潔,一個是養成好習慣
- 括號的問題,有的是(),有的是{}一定要區分清楚
- 代碼的命名不規範向,這次寫的代碼命名就很不規範
- 用不上的代碼直接註釋掉//
五、測試
- 1.MathExam 輸入參數: 5 測試結果:生成符合數目的幾道一年級題目和答案 結果: 符合
- 2.MathExam 輸入參數:5.2 測試結果:輸入有誤,請重新輸入 結果:符合
- 3.MathExam 輸入參數:aaaaa 測試結果:輸入有誤,請重新輸入 結果:符合
- 4.MathExam 輸入參數:0 測試結果:輸入有誤,請重新輸入 結果:符合
六、總結
- 一開始體驗了什麽叫無頭蒼蠅一樣手足無措...
- 是否使用了“軟件開發的基本策略:分而治之”,是否需要重構
- “高質量的設計、規範的編碼以及有效的測試是保證軟件產品質量的三個重要方面”,你是否采用了相關的手段,是否需要重構
- 一定要充分考慮到需求的重要性,比如當客戶沒有輸入預期值該怎麽處理等等
- 當遇到不會的東西首先自己去查找學習並做好幾率,再不行就去問問同學老師,爭取自己獨立解決。
- 先寫註釋再寫代碼思路會清晰很多很多!!
第一次作業簡單艱辛的歷程