地址:https://gitee.com/LinDaDaDa/201621123012
PSP2.1 | 个人开发流程 | 预估耗费时间(分钟) | 实际耗费时间(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 30 |
Estimate | 明确需求和其他相关因素,估计每个阶段的时间成本 | 15 | 25 |
Development | 开发 | 200 | 250 |
Analysis | 需求分析 (包括学习新技术) | 30 | 40 |
Design Spec | 生成设计文档 | 10 | 20 |
Design Review | 设计复审 | 20 | 40 |
Coding Standard | 代码规范 | 40 | 30 |
Design | 具体设计 | 20 | 40 |
Coding | 具体编码 | 30 | 40 |
Code Review | 代码复审 | 20 | 50 |
Test | 测试(自我测试,修改代码,提交修改) | 40 | 30 |
Reporting | 报告 | 20 | 40 |
测试报告 | 15 | 25 | |
计算工作量 | 15 | 30 | |
并提出过程改进计划 | 50 | 30 |
- 1.首先看到此次要求时便得知了需要动用到文件的读取,此时我就选择自己较为擅长的java
- 2.由于输出都是需要小写的,所以我先把文件中的大写字符转换成小写
if(Character.isUpperCase(line.charAt(i))) Character.toLowerCase(line.charAt(i));;
- 3.统计字符数的话就每行统计一次最后相加起来就是总字符数
- 然后根据频率的话肯定得用到索引排序MAP肯定最为合适
for(int i=0;i<=line.length()-1;i++)
{
if(Character.isUpperCase(line.charAt(i))) //对大写字母的判断
Character.toLowerCase(line.charAt(i));
}
wordcount+=line.length();//字符数统计
linecount ++;//行数统计
for(String words:text)
{
String[] word = words.split("[^a-zA-Z0-9]");
for(String pp:word)
{
String regex ="^[a-z]{4}[a-z0-9]*$";
if(pp.matches(regex)==true){
text2.add(pp);
}
}
}
return text2.size();
Map<String, Integer> map = new TreeMap<String, Integer>();
for(String word:text2)
{if(map.get(word) != null){
map.put(word,map.get(word) + 1);
}else{
map.put(word,1);
}
}//统计
List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(
map.entrySet());
List<Map.Entry<String, Integer>> infoIds1 = new ArrayList<Map.Entry<String, Integer>>(
map.entrySet());
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1,
Map.Entry<String, Integer> o2) {
return ( o2.getValue()-o1.getValue());
}
}); //比较器
System.out.println("--------------排序后--------------");
for (int i = 0; i < infoIds.size(); i++) {
Entry<String,Integer> ent=infoIds.get(i);
if(i<=9){
infoIds1.add(ent);
System.out.println(ent.getKey()+":"+ent.getValue());
}
}
return infoIds1;
@Test
public void testWordnumber() {
assertEquals(0, jiekou.wordnumber("C:/Users/Administrator/Desktop/c1.txt"));//空文件
assertEquals(14, jiekou.wordnumber("C:/Users/Administrator/Desktop/c2.txt"));//14个单词的纯英文
assertEquals(160, jiekou.wordnumber("C:/Users/Administrator/Desktop/c3.txt"));//160个单词的英文数字混合
}
初步了解了对java代码进行测试,刚开始由于geichars有大小限定导致大文件出错,就改用了charAT。之前写代码只注重于功能实现,现在发现了还有效率上的优化,对软件工程有了新一步的认识。
原文:https://www.cnblogs.com/saodeyipi/p/9665086.html