第一次个人编程作业

第一次个人编程作业

1、Github地址:
https://github.com/Jardinxiny/ruangong/commit/32e1dbe6ff2911ddcc44b0b6bcecb90e6f16b486

2、PSP表格:

Personal Software Process Stages 预计耗时(分钟) 实际耗时(分钟)
计划 10 10
估计这个任务需要多少时间 10 10
开发 1800 1980
需求分析(包括学习新技能) 600 1000
生成设计文档 30 30
设计复审 10 10
代码规范(为目前的开发制定合适的规范) 0 0
具体设计 50 50
具体编码 1000 600
代码复审 180 240
测试(自我测试,修改代码,提交修改) 10 30
报告 60 60
测试报告 30 30
计算工作量 20 20
事后总结,并提出过程改进计划 10 10
合计 1870 2050

3、解题思路
刚拿到题目的时候不是很懂怎么操作,觉得c++忘记得差不多了,java和python还没开始学。根据题目上网搜索了关键字“地址截取省市区”,发现java的代码比较多,因此才决定用java写这题。然后依照网上的教程下了eclipese配置了环境,并学习了简单的java语句。

  • 从键盘输入测试数据,然后用正则表达式提取连续11个数字即为电话号码,剩余的字符串中,提取“,”前面的人名。最后剩下的即为纯地址信息。
  • 将地址信息用正则表达式匹配省市县区和详细地址五级
  • 按格式输出

4.设计实现过程
由于我掌握太浅,不会写函数......所以没有自定义的函数......并且由于我写的代码不是用文件输入,我也不懂怎么用文件输入,所以不会做性能测试。。。很抱歉。

5、改进

没有进行有效的改进...现在只能做到从键盘输入测试数据,然后一个测试数据运行一次,且测试数据还必须是格式化的,即测试数据中明确写了“省”“市”之类的关键词,无法对直辖市划分(会在第一级地址显示null),也没有办法对更加详细的街道地址进行分割。这些都还待优化。

6、代码展示

	//提取电话
	    	Pattern p = Pattern.compile("[0-9\\.]{11}" );//匹配连续11个数字作为电话号码
	    	Matcher m = p.matcher(line);
	    	System.out.println("{");
	//打印名字
	    	char test = ',';
	    	for(i=0;i< all.length;i++)
	    	{
	    		if( all[i]==test )break;
	    	}//循环找到逗号的位置
	    	System.out.println("\"姓名\":\"" + line.substring(0,i) + "\",");
	//打印电话
	    	while(m.find()){
	    		   System.out.println("\"手机\":\"" + m.group()+",");  
	    	}
	//提取纯地址字符串
	    	String c = m.replaceAll("");
	    	String d = c.substring(i+1);

//地址划分
	String regex="((?<province>[^省]+省|.+自治区)|上海|北京|天津|重庆)?(?<city>[^市]+市|.+自治州)(?<county>[^县]+县|.+区|.+镇|.+局)?(?<town>[^区]+区|.+镇|.+街|.+道|.+乡|.+路)?(?<village>.*)";
	Matcher n=Pattern.compile(regex).matcher(d);
	        System.out.println("\"" + "地址" + "\"" + ":" + "[");
	        //根据关键字省、市、县等匹配
	while(n.find()){
		      System.out.println("\""+n.group(2)+"\""+",");
	        	System.out.println("\""+n.group(3)+"\""+",");
	        	System.out.println("\""+n.group(4)+"\""+",");
	        	System.out.println("\""+n.group(5)+"\""+",");
	        	System.out.println("\""+n.group(6)+"\"");
	        }

7、心得

-深刻体会到了自己缺乏各方面知识,尤其每天看着群里的大佬们交流,而我连个基本思路都没有,焦急的同时也很难过。提醒自己这次作业完成之后,不能因此放松,反而要因此警醒,抓紧时间补缺补漏,弥补自己的差距。
-这次作业其实对我没有太大的收获,因为太过仓促,而我又什么都还不会,所以很多东西都没有做好,更没有很好的改进优化。但也通过这次作业,让我意识到自己的不足,起码开了一个认识java的头。

posted @ 2019-09-17 17:27  Jardinxin  阅读(157)  评论(6编辑  收藏  举报