wc项目开发java

一,GitHub地址:https://github.com/lq15086495788/wc

二,psp表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

 40  52

· Estimate

· 估计这个任务需要多少时间

 40  52

Development

开发

 710  550

· Analysis

· 需求分析 (包括学习新技术)

 110  130

· Design Spec

· 生成设计文档

 70  40

· Design Review

· 设计复审 (和同事审核设计文档)

 30  20

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

 30  40

· Design

· 具体设计

 110  50

· Coding

· 具体编码

 220  180

· Code Review

· 代码复审

 40  30

· Test

· 测试(自我测试,修改代码,提交修改)

 100  60

Reporting

报告

 100  80

· Test Report

· 测试报告

 40  40

· Size Measurement

· 计算工作量

 30  30

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

 20  30

合计

  840 740

三,设计大概思路

  设计三个类,分别为main,counte和coder。

一,main

在这个类中主要实现程序控制和方法调用,io流实现文件的录入。

二,counter

这个类用来实现基础的四个统计操作,其中

字符数:除了空格和转行符都是字符,进行记录

行数;凡是遇到转行符就计数

词数:空格就记录

最后统一用一个操作-all将所有基本的统计都显示。

三,code类

把扩展操作,统计空行,注释行和代码行等扩展操作在这个类中实现。

并确定是否为空文件等不符合标准的文件

注释匹配器(匹配单行、多行、文档注释)

空白行匹配器(匹配回车、tab键、空格)

遍历文件并记录相应注释行和空白行的数,

除空白行和注释行外,其余皆为代码行

四,设计程序流程

五,测试运行。

测试文件包括:一个空文件、一个只有一个单词的文件、一个java源代码文件

5.1测试一般情况对一个完整的文件的统计

测试结果正确。

5.2测试一个空文件的统计

测试结果正确。

5.3测试无效文件

测试结果正确

5.4测试只含有一个单词的文件

 测试结果正确

5.5测试扩展操作

测试结果正确

六,开发过程遇到的问题

#选择实现语言的困难:

自己当初看到这个作业的时候,需要实现一个命令行程序,当时就十分纠结到底要用什么语言去实现。因为脚本语言和超文本语言都无法实现这样的功能,所以必须要另作打算。

 

 编程语言不熟悉的困难:

 

由于太久没要写java,在编程的过程当中需要边查边写逻辑,导致写得有点慢。

 

功能实现的困难:

 

开始编写读取文件的时候,选择的buffer读取文件流功能,发现由于个人的问题,导致程序结果不理想。后来选择使用read()函数来进行对文件的读取操作,通过二进制流来操作。这样对于基础的判断行数、单词书、字符数功能,比buffer要实现得稍微简单一点。

 

#做过的尝试:

 

最初,选择使用pathon来实现这个功能程序,后来选择的是c语言,但是后来又觉得习惯了面向对象编程,就想起来了大二学习的一门选修java,所以最终选择了 java 这门语言实现。

 
 
 

解决:

 

最后,简单地实现了基础功能以及一个拓展功能。

 

有所收获:

 

在遇到困难的时候,一定要经过自己的思考之后,再去了解是如何实现的。这样才能够更好地理解和实现这个功能。多点尝试不同的方法效果更好。

七,项目小结

通过这次作业,重新回顾了一下Java的知识,同时也学会了从0到1实现一个程序,从预估、设计、编码、开发、测试、文档等流程中锻炼自己。

 

第一锻炼了养成做电子笔记的习惯,第二也有了写博客的概念,同时也增强了自己代码能力外的其他学习能力。

猜你喜欢

转载自www.cnblogs.com/lq1314/p/11587096.html