第一次个人编程作业

Github地址

Github


PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 40
· Estimate · 估计这个任务需要多少时间 30 40
Development 开发 1150 **1670 **
· Analysis · 需求分析 (包括学习新技术) 480 720
· Design Spec · 生成设计文档 20 25
· Design Review · 设计复审 20 15
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 45
· Design · 具体设计 15 30
· Coding · 具体编码 240 300
· Code Review · 代码复审 100 240
· Test · 测试(自我测试,修改代码,提交修改) 200 300
Reporting 报告 30 **80 **
· Test Repor · 测试报告 15 20
· Size Measurement · 计算工作量 10 10
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30 50
· 合计 1210 1790

解题思路

  • 1.将保存在address对象里message属性的错乱的地址提取出来,在‘,’前提取人名,删除人名和‘,’;
    2.再从字符串中提取连续的11位数字,即电话号码。然后删除数字;
    3.按省市县...分级提取删除
  • 一开始的时候觉得只是简单的字符串的部分提取和删除的问题,后来......(后来我没办法理清整个思路就开始装扮自己的博客园emmmm)咳咳,后来我就用列表进行关键字提取和删除,同时创建新的列表,最后输出。后来发现输出格式如果空了省/市/县...输出也不会空着。有点迷茫...
  • 通过各路神仙的指引,我就去看正则表达式,后来就把之前的代码删的差不多了...正则表达式大概是这样的
String regex="(?<province>[^省]+自治区|.*?省|.*?行政区)?(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市)?(?<dist>[^县]+县|.+?区|.+市|.+旗|.+海域|.+岛)?(?<town>[^区]+镇|.+街道|.+乡|.+县)?(?<village>[^村]+路|.+街|.+巷|.+道|.+段|.+队|.+弄|.+胡同|.+村|.+委会|.+开发区)?(?<number>[^区号]+号)?(?<road>.*)";

计算模块接口的设计与实现过程

  • 主要类
类名 作用
Address 将地址进行处理并保存在该类的属性中
Tools 负责文件的读取和保存
  • 主要函数
函数名 作用
setMessage() 将地址付给对象
setName() 匹配出姓名并删除
setPhone() 匹配出手机号并删除
setAddress() 匹配出省市县...和其他

计算模块接口部分的性能改进

JP的测试性能图大概是这个样子
(其实我不是很理解这个的意思,是和百度一步步操作的,还有就是有人告诉我一下这个图为啥这么小吗?)


计算模块部分单元测试展示

这是用来测试正则表达式是否可以正确匹配出正确地址的代码:

public class Testt 
{

	@Test
	public void test() 
	{
		String regex="(?<province>[^省]+自治区|.*?省|.*?行政区)?(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市)?(?<dist>[^县]+县|.+?区|.+市|.+旗|.+海域|.+岛)?(?<town>[^区]+镇|.+街道|.+乡|.+县)?(?<village>[^村]+路|.+街|.+巷|.+道|.+段|.+队|.+弄|.+胡同|.+村|.+委会|.+开发区)?(?<number>[^区号]+号)?(?<road>.*)";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher("福建省福州市");
		if(matcher.find()) 
		{
			System.out.println(matcher.group("province"));
		}
	}
}


单元覆盖率如上


计算模块部分异常处理说明

测试数据缺少市会导致地址分配出错
Address [name=张三, phone=13599622362, address=[福建省, 闽侯市, 县, 上街镇, "", "", 福州大学10#111.]]


心得体会

  • 讲道理,说实话,很难受,这作业对于我来说是很不容易的,因为编程能力我是真的差,很自闭,但是学到了挺多
  • 我的代码经历了四次改造,但是我改完才发现Github是要一边更新一边提交的,可我之前的代码都已经被自己覆盖了/微笑脸
  • 编程真的是很多都需要自己自学的,我也感觉到自己这方面的不足,还能怎么办呢,加油呗orz
  • 我觉得这个编程作业高于我们平均水平的吧...太难了老师真的把我们想的太厉害了,我要怎么表达不容易呢QAQ
posted @ 2019-09-17 17:37  阿杜杜adoel  阅读(199)  评论(5编辑  收藏  举报