一、Github項目地址:https://github.com/WQH1999/031702437
二、PSP表格java
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 15min | 15min |
Estimate | 估計這個任務須要多少時間 | 15min | 15min |
Development | 開發 | 15min | 10min |
Analysis | 需求分析 (包括學習新技術) | 8h | 3d |
Design Spec | 生成設計文檔 | 15min | 15min |
Design Review | 設計複審 | 5min | 5min |
Coding Standard | 代碼規範 (爲目前的開發制定合適的規範) | 20min | 10min |
Design | 具體設計 | 1h | 30min |
Coding | 具體編碼 | 4h | 3h30min |
Code Review | 代碼複審 | 30min | 10min |
Test | 測試(自我測試,修改代碼,提交修改) | 1h | 2h |
Reporting | 報告 | 30min | 30min |
Test Repor | 測試報告 | 1h | 30min |
Size Measurement | 計算工做量 | 10min | 10min |
Postmortem & Process Improvement Plan | 過後總結, 並提出過程改進計劃 | 30min | 30min |
合計 | 18h20min | 3d9h |
三、解題思路:做業要求是將被打亂的文件按要求從新梳理。一共有電話號碼、姓名、我的地址三部分,這能夠成爲三個獨立的函數來實現。
四、設計實現過程:代碼有一個類homework1,類中有getphone、getname、getaddress三個私有類分別對應得到電話號碼、名字、地址三個功能,還有getdata、dealdata、outputdata三個公有類供外部調用以實現輸入、處理、輸出三個功能。
五、改進花費了一個多小時。一開始是將處理電話、名字、地址都混在一塊兒,後來纔將這三個功能拆分開。
六、代碼說明:
...c++
static class homework1 { //建立一個地址 private String data=null; //原始輸入數據 String name=null; //名字 String phone=null; //手機號 String province=null; //省或直轄市 String city=null; //市或直轄市 String county=""; //縣或區或縣級市 String town=""; //街道或鎮或鄉 String address=null; //詳細地址 private void getphone() //私有類,用於找手機號 { int i,j,k,d=0; String s=data; String s1=null; while (phone==null) { i=s.indexOf("1"); d=d+i; k=0; for (j=i+1;j<11;j++) { if (s.charAt(j)<48||s.charAt(j)>57) { k=1; break; } } if (k==0) { phone=s.substring(i,i+11); s=data.substring(0,d); s1=data.substring(d+11); data=s.concat(s1); } else { s=s.substring(i+1); d++; } } } private void getname() //私有類,用於查找名字 { int i; String s=data; i=s.indexOf(","); name=data.substring(0,i); data=s.substring(i+1); } private void getaddress() { String s=data; int i,j=-1; i=data.indexOf("省"); if (i!=-1) { province=data.substring(0,i+1); data=s.substring(i+1); s=data; } i=data.indexOf("市"); city=data.substring(0,i+1); data=s.substring(i+1); s=data; if ((i=data.indexOf("縣"))!=-1||(i=data.indexOf("區"))!=-1||(i=data.indexOf("市"))!=-1) { county=data.substring(0,i+1); data=s.substring(i+1); s=data; } if ((i=data.indexOf("鎮"))!=-1||(i=data.indexOf("鄉"))!=-1||(j=data.indexOf("街道"))!=-1) { if (j!=-1) { i=j+1; } town=data.substring(0,i+1); data=s.substring(i+1); s=data; } address=data; if (province==null) { j=city.length(); province=city.substring(0,j-1); } } public void getdata ()throws IOException //提供輸入方法 { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; System.out.println("Please Enter:"); str = br.readLine(); data=str; } public void dealdata() //提供處理數據方法(這是做業中要求1) { getphone(); getname(); getaddress(); } public void outputdata() //提供輸出的方法 { System.out.println("{「姓名」「"+name+"」「手機」「"+phone+"」「地址」[「"+province+"」「"+city+"」「"+county); System.out.println("」「"+town+"」「"+address+"」]}"); } }
...
心路歷程與收穫:這些須要使用的工具在以前我都沒有用過。本來打算使用c++來寫,然而vs2017下載不下來,只好換成java。而java本身又不熟悉,這才致使學習的時間大大超過本來所預料的時間。所以我以爲本身要對於所須要用到的如github等工具要更加熟練,才能更好地作好任務。git