个人作业2——WordCount
一、码云地址
https://gitee.com/fyxjm/PersonalProject-Java/tree/master
二、个人PSP表格
| PSP2.1 | 个人开发流程 | 预估耗费时间(分钟) | 实际耗费时间(分钟) |
|---|---|---|---|
| Planning | 计划 | 30 | 60 |
| · Estimate | 明确需求和其他相关因素,估计每个阶段的时间成本 | 30 | 50 |
| Development | 开发 | 300 | 600 |
| · Analysis | 需求分析 (包括学习新技术) | 60 | 120 |
| · Design Spec | 生成设计文档 | 60 | 120 |
| · Design Review | 设计复审 | 30 | 60 |
| · Coding Standard | 代码规范 | 30 | 60 |
| · Design | 具体设计 | 60 | 120 |
| · Coding | 具体编码 | 200 | 300 |
| · Code Review | 代码复审 | 30 | 35 |
| · Test | 测试(自我测试,修改代码,提交修改) | 0 | 0 |
| Reporting | 报告 | 70 | 100 |
| · | 测试报告 | 0 | 0 |
| · | 计算工作量 | 30 | 35 |
| · | 并提出过程改进计划 | 0 | 0 |
三、解题思路描述
1、选择编程语言
- Java语言
2对于题目的理解与知识点的使用 - 本题的思想是想用文本文件来进行统计
- 第二就是对各种字符的统计,不管大小写、单词都要进行统计,然后输出,这里用到的知识点就是对字符串的判断
- 题目想要分类输出,当然这里必须要把单词,行数等分开来统计,即分类统计
3、开始设计和编码 - 进行类的划分
- 进行编码
4、遇到问题的解决方法 - 上网找资料解答疑惑,还有就是问同学,不过还是觉得问同学比较来得快
四、设计实现过程
划分的类
- WordCount类,用来存放所统计字符数、单词数等方法
包含的方法有:WordC方法。 - File类,用来对文件的处理,读取和写入
包含的方法有:File_read方法 - Main类,调用类,实现代码的功能
五、代码说明
1、WordC()方法,用来用于统计字符的数量
public class WordC{
private int wordnumber=0;
private int charnumber=0;
private int line=0;
String text;
public WordC(String text) {
this.text = text;
}
public int getWordnumber() {
String str=text;
String[] words=str.split("\\s*[^0-9a-zA-Z]+");
for(String s:words) {
if(s.matches("[a-zA-Z]{4,}[a-zA-Z0-9]*")) {
wordnumber++;
}
}
return wordnumber;
}
public int getCharnumber() {
for(int i=0;i<text.length();i++) {
char c=text.charAt(i);
if(c > 31 && c < 127 ||c == 10) {
charnumber++;
}
}
return charnumber;
}
public int getLine() {
String[] lines=text.split("\r\n");
for(int i=0;i<lines.length;i++) {
if(lines[i].trim().length()!=0) {
line++;
}
}
return line;
}
}
2、File_read()方法,用来读取文本文档
public class File_read {
public String readToString(String filepath) throws IOException {
File file =new File(filepath);
FileInputStream files=new FileInputStream(file);
Long filelength =file.length();
byte[] by =new byte[filelength.intValue()];
StringBuffer buf = new StringBuffer();
if(file.isFile()&&file.exists()) {
if(files.read(by)!=-1) {
buf.append(new String(by));
}
}files.close();
return buf.toString();
}
}
六、心路历程与收获
这次的个人项目真的是个挑战,才打开博客的时候什么都看不懂,琢磨了半天都不知道从哪入手,想想这也太难了,对于我这种编程能力不是很强的人来说,想到写代码真的就有些头大,所以这次的代码也有一部分是借鉴了室友和同学的,然后才写了自己的代码,还问了他们好多问题,但这次的作业也有一些没有完成,那些没完成的希望在之后学会了再来继续完成。
不过这次的作业也给了我很多收获,起码知道了软件工程很看重流程,按着流程来确实井井有序,让人思路更清晰,还有就是那个PSP的预估时间和实际相差很大,可能是太高估了自己,哎,理想太丰满,现实太骨感,还是继续努力吧。
个人作业2——WordCount的更多相关文章
- 软件测试第二周个人作业:WordCount
github地址:https:/github.com/muzhailong/wc.git 第一次写博客很不容易,也算是一个好的开始吧. 1. 个人作业要求 作业简述:根据WordCount的需求描 ...
- 软工网络16个人作业2——WordCount
Deadline: 2018-9-17 22:00PM,以博客提交至班级博客时间为准 要求参考来自:https://www.cnblogs.com/xinz/archive/2011/11/27/22 ...
- 第二次作业(WordCount)重制版
Github项目地址:https://gitee.com/DamonGetup/WordCount/tree/master 基本功能: 对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式 ...
- 第二次作业(WordCount)
1 Github项目地址:https://gitee.com/DamonGetup/WordCount/tree/master 2 对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式输出 ...
- 作业二Wordcount
1,github地址 https://github.com/dtneverdie/word-count 2,PSP表格 3,解题思路 先从理论上判断应该先将文件内的字符全部读入,然后根据分隔符来进行单 ...
- 第2周个人作业:WordCount
Github地址: https://github.com/hddddd/Wordcount 1.PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 ...
- 结对作业二——WordCount进阶版
软工作业三 要求地址 作业要求地址 结对码云项目地址 结对伙伴:秦玉 博客地址 PSP表格 PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟) Planning 计划 10 7 · ...
- 第二周个人作业:WordCount
github地址 https://github.com/lzwk/WordCount PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 20 40 · ...
- 软件测试第2周个人作业:WordCount编码测试
一.Github地址 https://github.com/zhouyubei/WordCount 二.PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning ...
随机推荐
- RAM,ROM,NAND Flash,NOR Flash(A)
他们四者相互独立 RAM掉电易失数据: RAM又分两种,一种是静态RAM,SRAM:一种是动态RAM,DRAM.前者的存储速度要比后者快得多,我们现在使用的内存一般都是动态RAM. DDR是Doubl ...
- SpringCloud请求响应数据转换(一)
异常现象 近期做Spring Cloud项目,工程中对Controller添加ResponseBodyAdvice切面,在切片中将返回的结果封装到ResultMessage(自定义结构),但在Cont ...
- Code First技术介绍
地址:https://wenku.baidu.com/view/5620b862eefdc8d376ee3258.html 仅供参考
- JS 获取浏览器的宽和高
网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...
- jz2440-linux3.4.2-kernel移植【学习笔记】【原创】
平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山二期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC)4.3.2 linux:linu3.4.2 PC环境:ubu ...
- 搭建最新版本的Android开发环境
只为成功找方法,不为失败找借口! Android开发学习总结(一)——搭建最新版本的Android开发环境 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Andr ...
- java自学入门心得体会 从环境配置开始
java —— 一种可以撰写跨平台应用软件的面向对象的程序设计语言. 很多教程里都要概述java语言的诞生发明.其实像图灵的”图灵机“和”图灵测试“一样,当初的java并不是这样. 是用来操控一些电冰 ...
- MOOC_Java进阶_翁恺讲_第三周题
package mooc_java进阶_d3周题; /** * 没有使用HashMap */ import java.util.ArrayList; import java.util.Scanner; ...
- 【转载】Multiboot规范
转自:Multiboot规范 Multiboot规范 本文定义了Multiboot规范--提议中的引导过程标准.本文是此规范的0.6.93版. Multiboot规范简介 本章描述了一些关于Multi ...
- UVa 11991 一道简单题
https://vjudge.net/problem/UVA-11991 题意:给出一个包含n个整数的数组,你需要回答若干询问.每次询问两个整数k和v,输出从左到右第k个v的下标. 思路: 把每个数字 ...