个人项目wc(java)

一、    GitHub地址:https://github.com/junjian-1998/homework1

二、  

PSP

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划  20 25
· Estimate · 估计这个任务需要多少时间  20 25
Development 开发  760 810
· Analysis · 需求分析 (包括学习新技术) 120  100
· Design Spec · 生成设计文档 60  50
· Design Review · 设计复审 (和同事审核设计文档) 30  30
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 20
· Design · 具体设计 120  100
· Coding · 具体编码 300  420
· Code Review · 代码复审 60 40
· Test · 测试(自我测试,修改代码,提交修改) 40  50 
Reporting 报告  80 85 
· Test Report · 测试报告  30 35
· Size Measurement · 计算工作量  30 20
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划  20 30
  合计  860  920

三、   解题思路

 1、看完题目后,要实现的程序是对文件的操作,思路是先用输入流输入文件,再计算输入流的各个值。

 2、想到了之前java有学过文件的输入输出流,可以方便地对文件进行输入和输出,本次课设只用到了输入,所以用了从InputStreamReader类继承的FileReader类。

 3、对于要执行的操作,统计字符、行数、单词,设计思路是:以字符串的形式输入一个或多个操作符,用空格隔开,然后用split()方法将字符串以空格分成一个或多个字符串数组,最后遍历数组实现统计。

 4、统计字符和行数的实现,可以遍历每个字符,遇到只要不是空格和换行符则字符数++,遇到换行符则行数++。

 5、统计单词的实现,把两个及两个以上连续的字母算作一个单词,如wordcount是一个单词,word_count或word count是两个单词。

四、设计实现过程

只用了一个类,一个函数,首先读入文件,计算文件的字符数、行数、单词数,然后读入用户的输入,判断输入的内容,输出相应的值。

基本功能列表:

wc.exe -c file.c     //返回文件 file.c 的字符数(实现)

wc.exe -w file.c    //返回文件 file.c 的词的数目  (实现)

wc.exe -l file.c      //返回文件 file.c 的行数(实现)

 

扩展功能:
    -s   递归处理目录下符合条件的文件。(未实现)
    -a   返回更复杂的数据(代码行 / 空行 / 注释行)(未实现)。

[file_name]: 文件或目录名,可以处理一般通配符。

高级功能:

 -x 参数。这个参数单独使用。如果命令行有这个参数,则程序会显示图形界面,用户可以通过界面选取单个文件,程序就会显示文件的字符数、行数等全部统计信息。(未实现)

五、测试

空文件: 个人项目wc(java)_第1张图片

只有一个字符的文件:个人项目wc(java)_第2张图片

 

 

只有一行的文件:个人项目wc(java)_第3张图片

 

只有一个词的文件:个人项目wc(java)_第4张图片

 

 

一个典型的源文件:个人项目wc(java)_第5张图片

 

 

 六、总结和反思

实现了对文件字符数、行数、单词数的基本功能,不会递归处理目录下符合条件的文件,对特殊行的判断也不熟悉,所以没有实现拓展功能。程序的结构也过于简单,不利于以后的维护和更新。今后会通过不断的学习,完善代码架构,做好软件工程。

 

你可能感兴趣的:(个人项目wc(java))