第四周小组作业:WordCount优化
Github地址:
https://github.com/skz12345/wcPro
PSP表格:
PSP |
PSP阶段 |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
10 |
5 |
Estimate |
估计这个任务需要多少时间 |
10 |
5 |
Development |
开发 |
60 |
50 |
Analysis |
需求分析(包括学习新技术) |
5 |
5 |
Design Spec |
生成设计文档 |
5 |
5 |
Design Review |
设计复审(和同事审核文档) |
5 |
5 |
Coding Standard |
代码规范(为目前的开发制定合适的规范) |
5 |
5 |
Design |
具体设计 |
5 |
5 |
Coding |
具体编码 |
40 |
30 |
Code Review |
代码复审 |
5 |
5 |
Test |
测试 |
20 |
10 |
Reporting |
报告 |
10 |
10 |
Test Report |
测试报告 |
10 |
10 |
Size Measurement |
计算工作量 |
10 |
10 |
Postmortem & Process Improvement Plan |
事后总结,并提供过程改进计划 |
5 |
5 |
|
合计 |
205 |
165 |
基本任务:代码编写+单元测试
接口实现
此次作业分为输入、输出、核心以及其他四个模块,我负责输出模块,即将功能整合到main函数中,完成功能。
代码:借鉴了一部分王迪同学的代码
public class test { public static void main(String[] args) { if (args.length == 1) { if (args[0].endsWith(".txt")) { HashMap<String, Integer> map = wcPro.count(args[0]); String pri=wcPro.print(wcPro.sortList(map)); System.out.println(pri); } else if (args[0].equals("-x")) { imgShow(); } else{ System.out.print("输入格式错误\n"); } } else{ System.out.print("参数数量错误\n"); } } }
public static void main(String[] args){ int n=0; BufferedReader bre = null; File file=new File("D:/file.c"); System.out.println("输入要求:"); Scanner sc=new Scanner(System.in); String str1=sc.nextLine(); public String dsdsd(){ if(str1.equals("wc.exe -c file.c")) { try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 bre = new BufferedReader(new FileReader(file)); int tempbyte; while ((tempbyte = bre.read()) != -1) { n++; } bre.close(); } catch (IOException e) { e.printStackTrace(); return; } System.out.println("字符数为:"+n); }} if(str1.equals("wc.exe -w file.c")) { try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 bre = new BufferedReader(new FileReader(file)); String tempbyte; while ((tempbyte = bre.readLine()) != null) { if((tempbyte=bre.readLine())!="\t") n++; } bre.close(); } catch (IOException e) { e.printStackTrace(); return; } System.out.println("字符数为:"+n); } if(str1.equals("wc.exe -l file.c")) { try { System.out.println("读取行数:"); // 一次读一个字节 bre = new BufferedReader(new FileReader(file)); String tempbyte; while ((tempbyte = bre.readLine()) != null) { n++; } bre.close(); } catch (IOException e) { e.printStackTrace(); return; } System.out.println("行数为:"+n); }
main函数比较简单,通过处理命令行参数,对数组中的参数进行判别,便可获得命令行输入参数以及指定的输入文件名和指定的输出文件名,然后处理。
测试用例设计
质量评测:设计的测试用例均通过了测试,效率符合要求。测试用例覆盖了可能出现的输入情况单元测试结果符合预期。