| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/computer-science-class1-2018 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/computer-science-class1-2018/homework/11877 |
| 这个作业的目标 | GitHub简单使用、完成词频统计编程、理解软件工程在开发中的作用 |
| 参照文献 | 《码出高效_阿里巴巴Java开发手册》/《腾讯c++代码规范》/《Python PEP8》 |
psp表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 15 | 25 |
| • Estimate | • 估计这个任务需要多少时间 | 10 | 15 |
| Development | 开发 | 600 | 720 |
| • Analysis | • 需求分析 (包括学习新技术) | 120 | 215 |
| • Design Spec | • 生成设计文档 | 60 | 35 |
| • Design Review | • 设计复审 | 15 | 20 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 40 |
| • Design | • 具体设计 | 60 | 90 |
| • Coding | • 具体编码 | 180 | |
| • Code Review | • 代码复审 | ||
| • Test | • 测试(自我测试,修改代码,提交修改) | ||
| Reporting | 报告 | 10 | 15 |
| • Test Repor | • 测试报告 | ||
| • Size Measurement | • 计算工作量 | ||
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | ||
| 合计 |
GitHub项目地址
4.2日7:49 代码并非完整且fork上传错误
设计思路
1.统计文件字符数
2.统计文件单词总数,设置分隔符
3.统计文件行数
4.统计文件的有效行数(包括字符的行)
实现过程(不完整):
设三类函数统计字符数量、单词数量、有效行数
public class Lib { //统计字符数量 //传入参数:文件名 //返回值:字符数量 public static int numOfChar(String filename); //统计单词数量 //传入参数:文件名 //返回值:单词数量 public static int numOfWord(String filename) ; //统计有效行数 //传入参数:文件名 //返回值:有效行数 public static int numOfLine(String filename); }
构造函数、结果函数统计词频
public class Frequency { //指定文件路径和文件名 private static String path; //定义一个结果集字符串 public static String result = ""; //定义一个map集合保存单词和单词出现的个数 private TreeMap<String,Integer> tm; public Frequency(String path); public static String saveResult(Map<String,Integer> map); }
读入文件逐字节扫描直到结束
readFile = new InputStreamReader(new FileInputStream(file),"UTF-8"); int tempChar; while ((tempChar=readFile.read()) != -1) { count++; } readFile.close();
for (int i = 0; (tempchar=readFile.read()) != -1; ) {
char ch = (char)tempchar; //字母 if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <='z'){ i++; flag = true; } else if (ch >= '0' && ch <= '9'){ i++; if (i < 5) { i = 0; flag = false; } } //分割符 else { if (i >= 4 && flag == true) countWord++; flag = false; i = 0; } }
统计行数
统计出现次数
性能改进
心路历程和收获
代码现在还是个半成品,自知能力不够但会尽力完成的
首先是GitHub,弄了半天不知道怎么fork
浙公网安备 33010602011771号