Github源碼地址連接:https://github.com/ijinping/SIZEYUNSUANgit
一.項目要求:github
嘗試按照《構建之法》第2章中2.3所述PSP流程,使用JAVA編程語言,獨立完成一個包含3到5個數字的四則運算練習的命令行軟件開發。編程
二.需求分析dom
201571030107編程語言
(78*23)-(6*91) = 1248學習
(3+36)*(34-21) = 507測試
(15*81)*(14+87) = 122715編碼
(95-4)+(37-30) = 98spa
支持有括號的運算式,包括出題與求解正確答案。注意,算式中存在的括號必須大於2個,且不得超過運算符的個數。命令行
三.功能設計
四.設計實現
五.測試運行
六.核心代碼
public static void main(String[] args) { // TODO Auto-generated method stub int x = 0,y,i; String m="201571030308"; String a1; int d1=0; String d = null; System.out.println("輸入學號開始"); Scanner scan1=new Scanner(System.in); a1=scan1.next(); if(a1.equals(m)){ System.out.println("請輸入題目的數量"); Scanner scan2=new Scanner(System.in); x=scan2.nextInt(); int daan[]=new int [x]; System.out.println("請輸入數值的範圍"); y=scan2.nextInt(); for(i=0;i<x;i++){ int a=(int)(Math.random()*y);//隨機生成一個1-10的整數 int b=(int)(Math.random()*y);//隨機生成一個1-10的整數 int n=(int)(Math.random()*30)*2;//隨機生成一個1-60的偶數 int c=(int)(Math.random()*4);
System.out.println("是否顯示答案(顯示請輸入1)"); if(scan2.nextInt()==1){ for(i=0;i<x;i++){ System.out.print(daan[i]+" "); } } } System.out.println("是否顯示答案(顯示請輸入1)"); if(scan1.nextInt()==1){ for(i=0;i<x;i++){ System.out.print(args[i]+" "); } } }
七.總結
在設計較這個程序的時候,我採用了自頂向下的方法,將這個問題劃分爲幾三個部分,第一部分是程序隨機生成的題數,第二部分是具體生成的題的「樣式」,第三部分是設計計算生成隨機題的答案。每一部分又再細化分解,直到分解爲較好解決問題爲止。
第一次如此認真的查找信息,尋找資料的來完成這個程序,雖然很辛苦,但收穫頗多
八.展現PSP
PSP2.1 |
任務內容 |
計劃完成須要的時間(min) |
實際完成須要的時間(min) |
Planning |
計劃 |
20 |
30 |
· Estimate |
· 估計這個任務須要多少時間,並規劃大體工做步驟 |
20 |
30 |
Development |
開發 |
240 |
270 |
·· Analysis |
需求分析 (包括學習新技術) |
30 |
40 |
· Design Spec |
· 生成設計文檔 |
20 |
20 |
· Design Review |
· 設計複審 (和同事審覈設計文檔) |
10 |
15 |
· Coding Standard |
代碼規範 (爲目前的開發制定合適的規範) |
30 |
40 |
· Design |
具體設計 |
10 |
12 |
· Coding |
具體編碼 |
36 |
90 |
· Code Review |
· 代碼複審 |
7 |
9 |
· Test |
· 測試(自我測試,修改代碼,提交修改) |
13 |
21 |
Reporting |
報告 |
55 |
50 |
·· Test Report |
· 測試報告 |
15 |
10 |
· Size Measurement |
計算工做量 |
15 |
20 |
· Postmortem & Process Improvement Plan |
· 過後總結 ,並提出過程改進計劃 |
15 |
|
---恢復內容結束---