項目代碼地址:https://git.coding.net/ranko/23333.git
1. 需求分析
面向小學生一個3到5個運算符的四則運算練習的命令行軟件
隨機產生n道加減乘除練習題,每一個數字在 0 和 100 之間,運算符在3個到5個之間
每一個練習題至少要包含2種運算符
在運算過程當中不得出現負數與非整數
練習題生成好後,將學號與生成的n道練習題及其對應的正確答案輸出到文件「result.txt」中,不輸出額外信息,文件目錄與程序目錄一致。
2. 功能設計
基本功能:生成四則運算,並可以將題目輸出到文件中,文件目錄與程序目錄一致。
擴展功能:支持有括號的運算式,包括出題與求解正確答案。
支持真分數的出題與運算,支持運算時分數的自動化簡,計算過程當中與結果都須爲真分數。
3. 設計實現
只用了一個Main類,功能全由對Main類的方法的調用來實現實現
隨機數與隨機運算符生成,用Random函數實現
4. 算法詳解
只用了很簡單的判斷語句,沒有考慮括號的問題
看了大佬們使用逆波蘭表達式,本身試了一下,撲街了,因而放棄了。
5. 測試運行
6. 代碼片斷java
import java.util.Scanner; import java.util.Random; public class hhhh { public static void main(String[] args) { String[] operate=new String[]{"+","-","×","÷"}; int[] numbers=new int[100]; for(int i=1;i<=100;i++){ numbers[i-1]=i; } Random r=new Random(); Scanner in = new Scanner(System.in); // in.close(); int x = 0; try { x = in.nextInt(); //x = Integer.parseInt(args[0]); if (x < 0 || x > 1000) { System.out.println("請輸入0-1000的整數"); return; } } catch (Exception e) { // TODO: handle exception System.out.println("請輸入0-1000的整數"); return; } System.out.println("2016012097"); for(int i=0;i<x;i++){ System.out.println(numbers[r.nextInt(100)]+operate[r.nextInt(4)]+numbers[r.nextInt(100)]+operate[r.nextInt(4)]+numbers[r.nextInt(100)]+operate[r.nextInt(4)]+numbers[r.nextInt(100)]+"="); } } }
7. 總結
先作的PSP再寫的總結,也看了其餘同窗的PSP,我的用的時間確實是明顯超長,並且這麼長時間作出來的東西也並無好用多少,可是也沒辦法,畢竟從新開始學,技術和腦子在那裏,盡力了。
不過這個時長的做業真的讓我感覺到生活和心情受到了影響,不過那也是沒辦法的事,就這樣吧,不想說話。
8. 展現PSPgit
PSP2.1算法 |
任務內容dom |
計劃共完成須要的時間(min)函數 |
實際完成須要的時間(min)學習 |
Planning測試 |
計劃編碼 |
10spa |
30.net |
· Estimate |
· 估計這個任務須要多少時間,並規劃大體工做步驟 |
10 |
30 |
Development |
開發 |
1080 |
1625 |
· Analysis |
· 需求分析 (包括學習新技術) |
45 |
115 |
· Design Spec |
· 生成設計文檔 |
0 |
0 |
· Design Review |
· 設計複審 (和同事審覈設計文檔) |
0 |
0 |
· Coding Standard |
· 代碼規範 (爲目前的開發制定合適的規範) |
0 |
0 |
· Design |
· 具體設計 |
120 |
180 |
· Coding |
· 具體編碼 |
735 |
970 |
· Code Review |
· 代碼複審 |
60 |
970 |
· Test |
· 測試(自我測試,修改代碼,提交修改) |
120 |
150 |
Reporting |
報告 |
95 |
135 |
· Test Report |
· 測試報告 |
5 |
10 |
· Size Measurement |
· 計算工做量 |
30 |
45 |
· Postmortem & Process Improvement Plan |
· 過後總結, 並提出過程改進計劃 |
60 |
80 |