第一次我的編程做業

一、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

相關文章
相關標籤/搜索