第一次作业:统计文件字符串字符行的个数

码云:https://gitee.com/SC_looker/wordcount.git

 先明确任务内容,分为以下几点:

(1)分析、整理需求,提交PSP表格;

(2)编码实现,并在Github提交;

(3)设计测试用例,编写单元测试;

(4)撰写博客。

需求分析:

要求:统计文本文件的字符数、单词数、和行数。

输入格式说明:

   wc.exe -c file.txt //返回文件 file.txt 的字符数

   wc.exe -w file.txt //返回文件 file.txt 的词的数目

   wc.exe -l file.txt //返回文件 file.txt 的行数
输出格式说明:

   保存在outfile.txt中

   file1.txt, 字符数: 50

   file1.txt, 单词数: 30

解题思路:

刚看到题目时,我打算写三个类,每个类分别统计数量,然后传到主函数,由主函数进行存取。

基本功能

  1. 支持 -c  统计字符数(char_count)
  2. 支持 -w  统计单词数(string_count)
  3. 支持 -l  统计总行数(line_count)
  4. 支持  -o       存入特定文件

拓展功能(待实现)

  1. 支持 -a 返回高级选项(代码行 空行 注释行)
  2. 支持 -s 递归处理符合条件的文件

基本功能模块:

一、实现字符数统计类

通过传参的方式将文件名以 (string filename)的方式传入类成员函数,利用fstream把文件以流的形式输出,把流输出到字符类型然后进行统计。

 

 

二、实现单词数统计类

通过传参的方式将文件名以 (string filename)的方式传入类成员函数,利用fstream把文件以流的形式输出,把流输出到字符串类型然后进行统计,也可用getline(流,字符串变量,‘ ’)来统计,不过这种统计文件必须以空格结束,否则所统计的数少一。

   三、实现行数统计函数

通过传参的方式将文件名以 (string filename)的方式传入类成员函数,利用fstream把文件以流的形式输出,用getline(流,字符串变量,‘\n’)函数来统计,getline()以转行符结束。

四、主函数模块:

测试文件结果

 

   测试用例:

 

 文件:

可执行文件

 总结:

这个任务,我使用的是c++,由于c++是早些时候学习过的然后之后是没在使用过,这次机会我重新复习一次,这个项目让我学到了很多东西,我从不懂如何写代码到一步步实现功能,这次的代码我是使用的绝对路径,我实现了要求的基本功能,也清楚了qt生成的可执行文件是与原先代码所分离开的,刚开始一直找不到可执行文件,后来通过上网查询,要在path添加路径才能使用exe文件,也了解到从命令行写入的参数在代码中如何读取。本次的项目还有很多不足的地方还需要加以改善,比如把绝对路径改为相对路径。可以存到指定目录的,更多功能还待提高。

 

首先完成PSP表格,对自己所做的项目进行大致的规划

PSP2.1

PSP阶段

预估耗时

(小时)

实际耗时

(小时)

Planning

计划

 2*24

 38

· Estimate

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

 2*24

 38

Development

开发

 21

 20

· Analysis

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

 3

 4

· Design Spec

· 生成设计文档

 2

 3

· Design Review

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

 2

 2

· Coding Standard

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

 1

 1

· Design

· 具体设计

 4

 3

· Coding

· 具体编码

 4

 4

· Code Review

· 代码复审

 3

 2

· Test

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

 2

 2

Reporting

报告

 7

 5

· Test Report

· 测试报告

 3

 3

· Size Measurement

· 计算工作量

 2

 1

· Postmortem & Process Improvement Plan

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

 2

 1

合计

 28

 25

猜你喜欢

转载自www.cnblogs.com/best-future/p/9694180.html
今日推荐