一、码云地址

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的更多相关文章

  1. 软件测试第二周个人作业:WordCount

    github地址:https:/github.com/muzhailong/wc.git 第一次写博客很不容易,也算是一个好的开始吧. 1.   个人作业要求 作业简述:根据WordCount的需求描 ...

  2. 软工网络16个人作业2——WordCount

    Deadline: 2018-9-17 22:00PM,以博客提交至班级博客时间为准 要求参考来自:https://www.cnblogs.com/xinz/archive/2011/11/27/22 ...

  3. 第二次作业(WordCount)重制版

    Github项目地址:https://gitee.com/DamonGetup/WordCount/tree/master 基本功能: 对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式 ...

  4. 第二次作业(WordCount)

    1 Github项目地址:https://gitee.com/DamonGetup/WordCount/tree/master 2 对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式输出 ...

  5. 作业二Wordcount

    1,github地址 https://github.com/dtneverdie/word-count 2,PSP表格 3,解题思路 先从理论上判断应该先将文件内的字符全部读入,然后根据分隔符来进行单 ...

  6. 第2周个人作业:WordCount

    Github地址: https://github.com/hddddd/Wordcount 1.PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 ...

  7. 结对作业二——WordCount进阶版

    软工作业三 要求地址 作业要求地址 结对码云项目地址 结对伙伴:秦玉 博客地址 PSP表格 PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟) Planning 计划 10 7 · ...

  8. 第二周个人作业:WordCount

    github地址 https://github.com/lzwk/WordCount PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 20 40 · ...

  9. 软件测试第2周个人作业:WordCount编码测试

    一.Github地址 https://github.com/zhouyubei/WordCount 二.PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning ...

随机推荐

  1. RAM,ROM,NAND Flash,NOR Flash(A)

    他们四者相互独立 RAM掉电易失数据: RAM又分两种,一种是静态RAM,SRAM:一种是动态RAM,DRAM.前者的存储速度要比后者快得多,我们现在使用的内存一般都是动态RAM. DDR是Doubl ...

  2. SpringCloud请求响应数据转换(一)

    异常现象 近期做Spring Cloud项目,工程中对Controller添加ResponseBodyAdvice切面,在切片中将返回的结果封装到ResultMessage(自定义结构),但在Cont ...

  3. Code First技术介绍

    地址:https://wenku.baidu.com/view/5620b862eefdc8d376ee3258.html 仅供参考

  4. JS 获取浏览器的宽和高

    网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...

  5. jz2440-linux3.4.2-kernel移植【学习笔记】【原创】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山二期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC)4.3.2 linux:linu3.4.2 PC环境:ubu ...

  6. 搭建最新版本的Android开发环境

    只为成功找方法,不为失败找借口! Android开发学习总结(一)——搭建最新版本的Android开发环境 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Andr ...

  7. java自学入门心得体会 从环境配置开始

    java —— 一种可以撰写跨平台应用软件的面向对象的程序设计语言. 很多教程里都要概述java语言的诞生发明.其实像图灵的”图灵机“和”图灵测试“一样,当初的java并不是这样. 是用来操控一些电冰 ...

  8. MOOC_Java进阶_翁恺讲_第三周题

    package mooc_java进阶_d3周题; /** * 没有使用HashMap */ import java.util.ArrayList; import java.util.Scanner; ...

  9. 【转载】Multiboot规范

    转自:Multiboot规范 Multiboot规范 本文定义了Multiboot规范--提议中的引导过程标准.本文是此规范的0.6.93版. Multiboot规范简介 本章描述了一些关于Multi ...

  10. UVa 11991 一道简单题

    https://vjudge.net/problem/UVA-11991 题意:给出一个包含n个整数的数组,你需要回答若干询问.每次询问两个整数k和v,输出从左到右第k个v的下标. 思路: 把每个数字 ...