WCProject(c++实现)

 

 

一、个人github链接

  个人github链接:https://github.com/Dona9c/a/blob/master/WCProject.rar

 

二、psp表格

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

   

· Estimate

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

 780  920

Development

开发

   

· Analysis

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

 90 150

· Design Spec

· 生成设计文档

 30  30

· Design Review

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

 0  0

· Coding Standard

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

30  30

· Design

· 具体设计

120  120

· Coding

· 具体编码

 240 320

· Code Review

· 代码复审

30 30

· Test

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

 120 120

Reporting

报告

   

· Test Report

· 测试报告

 60  60

· Size Measurement

· 计算工作量

 30 30

· Postmortem & Process Improvement Plan

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

 30  30
 

合计

780

920

 

 
三、解题思路
 
  拿到这个题目的时候并没有很困惑不知从何下手
  对文件操作还是有一点经验的
  整体思路就是将文件一个一个字符的读进程序
  所以字符的计算就很简单,只需要每读一个字符计数器加一就可以
  单词数的计算要考虑对单词的定义
  在我的程序中,将大小写英文字母、数字、以及一些类似于连字符的符号均看组是单词的组成
  而这些字符之外的其他符号视作为单词的间隔
  行的定义也很简单,初始文件没有换行符的话只有一行
  之后每有一个换行符行数加一
  由于个人能力和时间的关系只完成了基本功能,没有实现扩展功能
 
四、程序设计实现
 
  整个程序用C++实现,由于实现的功能比较少,所以只用了一个main函数。
  首先定义了四个bool型变量 cfuc  wfuc  lfuc  ofuc
  分别对应四种基本操作-c  -w  -l  -o
  其中-o操作需要与其他操作一同执行
  

  用30长度的字符数组接收用户的指令

  

  当读取到  ‘-’ 字符时表示输入指令类型

  读取下一个字符来判断用户要进行的操作,并对未定义的操作类型进行警告

  

  读完操作类型后,用rdfile字符数组储存要计数的文件名,wrfile用来储存输出文件名

  

  读取完用户输入的指令后根据rdfile中储存的文件名打开相应的文件

  根据 cfuc  wfuc  lfuc 三个布尔型变量的值

  执行值为true的相应操作

  如果ofuc的值为true  则输出到文件

  若为false  则输出到控制台窗口

  

  

五、代码说明

  详细的代码以及对代码的说明已经在四、代码实现中给出。

六、测试用例设计

  给出的测试文件

  

 

  测试四种操作单独使用的情况

  1、-c text.c(计算字符数)

  2、-w text.c(计算单词数)

  3、-l text.c(计算行数)

  4、-o wrfile.txt(指定输出文件)

 

   测试 -o操作的正确用法

  5、-c text.c -o wrfile.txt

            

  测试对操作共同执行的效果,在此测试三组

  6、-c -w -l text.c

  7、-c -w -l text.c -o wrfile.txt

  8、 -c -w text.c

  测试计数文件不存在的情况

  9、-c asd.c

  

  

  计数文件不存在,程序出错

  

  测试不输入文件名的情况

  10、-c 

  

  程序出错

 

  

  测试将 -o 操作和 -c 操作互换的情况

  11、-o wrfile.txt -c text.c

   未得到用户想要的运行结果

 

  对特殊的单词进行计数

  12、-w wordtext.c

  用到的测试文件如下

  

  测试结果如下

  

 

七、自我评价

  本程序基本上完成了要求的四个基本功能

  但需要用户严格按照所给的指令形式进行输入指令

  -o操作只能在-c -l -w操作之后输入

  对一些异常情况的处理做的不完善

  例如没有进行对不存在的计数文件进行警告,直接导致程序出错

  

posted @ 2018-03-20 18:42  懒得起昵称  阅读(396)  评论(1编辑  收藏  举报