实验目的与要求html
(1)掌握软件项目我的开发流程。java
(2)掌握Github上发布软件项目的操做方法。git
源码在Github的仓库主页连接地址:https://github.com/1996muzili/-github
一.需求分析:函数
1.程序须要读入至少一个词,可读入任意英文文本。post
2.至少能够统计10万词及以上的文本。学习
3.用户能够同时查询多个单词的统计,并显示出其个数和柱状图。测试
4.用户能够筛选单词频数大于n的单词,进行降序显示其单词及其频数。编码
5.统计文本因此单词及其词频,并在文本文件中按字典序进行显示。url
二.功能设计:
1.基本功能:对输入的大于等于一个单词的英文,
实现其一个或多个单词的单词和词频统计并以柱状图的形式显示出来,
能够对多个单词进行条件查询并对其按降序或字典序进行显示。
2.扩展功能:对输入的英文文本,筛选出包含某个单词的句子。
(在英语单词的学习过程当中,最好是结合真题去学习。那么就能够把历年真题进行扫描录入,而后筛选包含某个单词的句子。)
三.设计实现:
1.包含主函数main的主类:Driver.java:该类用于菜单栏的显示,读入要统计单词的文本文件和对单词进行排序;
2.定义功能的抽象类Functions.java: 该类用于定义功能,具体的实如今Function类,体现面向对象中的多态思想;
3.功能的实现类Function.java:该类用于柱状图的显示,前k个高频单词词频的显示,将单词及词频数按字典顺序输出到result.txt文件中。
四.程序设计流程图
五.测试运行:
六.代码片断精选:
七.总结
这个项目对于我来讲真的是花了很大的力气,由于以前不是本专业的,也让我认识到软件开发的艰辛。从项目布置的那天起,我就开始查阅各类资料,向室友不断的请教,从需求分析,到功能设计,再到代码实现真的是困难重重,经过此次项目,锻炼了个人实践能力,同时也牢记了作一件事必定不能粗心,否则就会出现不少bug!也认识到本身不少的不足,本身必定要在课余时间去好好“恶补”java语言。
八.展现PSP:
PSP2.1 | 任务内容 | 计划共完成须要的时间(min) | 实际完成须要的时间(min) |
Planning | 计划 | 30 | 35 |
Estimate | 估计这个任务须要多少时间,并规划大体工做步骤 | 30 | 20 |
Development | 开发 | 160 | 270 |
Analysis | 需求分析(包括学习新技术) | 120 | 180 |
Design Spec | 生成设计文档 | 30 | 30 |
Design Review | 设计复审(和同事审核设计文档) | 20 | 15 |
Coing Standard | 代码规范(为目前开发制定合适的规范) | 30 | 30 |
Design | 具体设计 | 30 | 30 |
Coding | 具体编码 | 720 | 900 |
Code Review | 代码复审 |
30 | 30 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 30 |
Reporting | 报告 | 15 | 30 |
Test Report | 测试报告 | 30 | 35 |
Size Measurement | 计算工做量 |
10 | 15 |
Postmortem&Process Improvement Plan | 过后总结,并提出过程改进计划 | 30 | 30 |