一、码云地址

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()方法,用来用于统计字符的数量

  1. public class WordC{
  2. private int wordnumber=0;
  3. private int charnumber=0;
  4. private int line=0;
  5. String text;
  6. public WordC(String text) {
  7. this.text = text;
  8. }
  9. public int getWordnumber() {
  10. String str=text;
  11. String[] words=str.split("\\s*[^0-9a-zA-Z]+");
  12. for(String s:words) {
  13. if(s.matches("[a-zA-Z]{4,}[a-zA-Z0-9]*")) {
  14. wordnumber++;
  15. }
  16. }
  17. return wordnumber;
  18. }
  19. public int getCharnumber() {
  20. for(int i=0;i<text.length();i++) {
  21. char c=text.charAt(i);
  22. if(c > 31 && c < 127 ||c == 10) {
  23. charnumber++;
  24. }
  25. }
  26. return charnumber;
  27. }
  28. public int getLine() {
  29. String[] lines=text.split("\r\n");
  30. for(int i=0;i<lines.length;i++) {
  31. if(lines[i].trim().length()!=0) {
  32. line++;
  33. }
  34. }
  35. return line;
  36. }
  37. }

2、File_read()方法,用来读取文本文档

  1. public class File_read {
  2. public String readToString(String filepath) throws IOException {
  3. File file =new File(filepath);
  4. FileInputStream files=new FileInputStream(file);
  5. Long filelength =file.length();
  6. byte[] by =new byte[filelength.intValue()];
  7. StringBuffer buf = new StringBuffer();
  8. if(file.isFile()&&file.exists()) {
  9. if(files.read(by)!=-1) {
  10. buf.append(new String(by));
  11. }
  12. }files.close();
  13. return buf.toString();
  14. }
  15. }

六、心路历程与收获

这次的个人项目真的是个挑战,才打开博客的时候什么都看不懂,琢磨了半天都不知道从哪入手,想想这也太难了,对于我这种编程能力不是很强的人来说,想到写代码真的就有些头大,所以这次的代码也有一部分是借鉴了室友和同学的,然后才写了自己的代码,还问了他们好多问题,但这次的作业也有一些没有完成,那些没完成的希望在之后学会了再来继续完成。

不过这次的作业也给了我很多收获,起码知道了软件工程很看重流程,按着流程来确实井井有序,让人思路更清晰,还有就是那个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. C# 计算传入的时间距离今天的时间差

    /// <summary> /// 计算传入的时间距离今天的时间差 /// </summary> /// <param name="dt">&l ...

  2. Python3基础 getatime getctime getmtime 文件的最近访问 + 属性修改 + 内容修改时间

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  3. IT人士级别的划分

    IT领袖:年入过亿(例如任正非.马化腾.李彦宏.丁磊.马云等,包括期权股票以及投资理财等收入.) IT大哥:年入千万(级别次于以上几位大佬的公司老板,不缺钱,普遍对上一条里的人物羡慕嫉妒恨.) IT精 ...

  4. 三羊献瑞|2015年蓝桥杯B组题解析第三题-fishers

    三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 三 羊 献 瑞 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字. 请你填写& ...

  5. 用 SwitchHosts设置hotst, 用法示例

    涉及到本地默认ip(localhost,127.0.0.1)设置关联地址时,使用XAMPP本地服务器时避免自动跳转设置的域名的一些处理方法 打开此文件,把内容修改如下 # Virtual Hosts# ...

  6. POJ 3624 Charm Bracelet(0-1背包模板)

    http://poj.org/problem?id=3624 题意:给出物品的重量和价值,在重量一定的情况下价值尽可能的大. 思路:经典0-1背包.直接套用模板. #include<iostre ...

  7. codeforces 766E Mahmoud and a xor trip

    题目链接:http://codeforces.com/problemset/problem/766/E 大意,给出一个$n$个点的树,每个点都有一个权值,令$Disx$为$u$到$v$路径上的异或和求 ...

  8. Linux进程内存布局(翻译)

    Anatomy of a Program in Memory 在一个多任务OS中,每个进程都运行在它自己的内存沙箱中.这个沙箱就是虚拟地址空间,在32位下就是一块容量为4GB的内存地址.内核将这些虚拟 ...

  9. ActivityGroup实现tab功能

    android.app包中含有一个ActivityGroup类,该类是Activity的容器,可以包含多个嵌套进来的 Activitys,这篇文章就是借助ActivityGroup可以嵌套Activi ...

  10. Redis 安装到linux系统

    下载地址 : http://download.redis.io/releases/redis-3.0.3.tar.gz ). tar -zxvf redis-.tar.gz -C /usr/share ...