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