第4周小组作业:WordCount优化

本文介绍了WordCount项目的GitHub源码地址,详细记录了PSP2.1软件开发过程的时间分配,并展示了输出模块的具体实现细节,包括代码片段。此外,还包含了测试用例设计思路、单元测试结果、小组贡献评分及对同学代码的风格审查。

一、github地址

https://github.com/yo123abxd/wordcount2.git

二、PSP表格

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

 50

 40

· Estimate

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

 50

 40

Development

开发

 420

 500

· Analysis

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

 30

 40

· Design Spec

· 生成设计文档

 30

 30

· Design Review

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

 20

 30

· Coding Standard

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

 20

 30

· Design

· 具体设计

 40

 40

· Coding

· 具体编码

 150

 200

· Code Review

· 代码复审

 30

 30

· Test

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

 100

 100

Reporting

报告

 100

 130

· Test Report

· 测试报告

 60

 90

· Size Measurement

· 计算工作量

 20

 20

· Postmortem & Process Improvement Plan

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

 20

 20

 

合计

 570

 670

三、对接口的实现

  我负责的是输出模块,代码主要是output.cpp,实现思路如下:调用fstream类打开待接受输出的文件result.txt,然后把传入的待输出数组toOutPut中的内容输出到该文件中;通过if判断来给除了最后一行以外的行换行;最后关闭文件。

 1 #ifndef COUNTER_CURR_OUTPUT_H_
 2 #define COUNTER_CURR_OUTPUT_H_
 3 #include <vector>
 4 #include <iostream>
 5 #include <fstream>
 6 class OutPut {
 7 public:
 8     void output(const std::vector<std::pair<std::string, int>>& toOutPut);
 9 };
10 
11 #endif
output.h
 1 #include "output.h"
 2 void OutPut::output(const std::vector<std::pair<std::string, int>>& toOutPut) {
 3     std::fstream out_(std::string("result.txt"), std::ios::out);
 4     for(int i = 0; i < toOutPut.size(); i++) {
 5         out_ << toOutPut[i].first << " " << toOutPut[i].second;
 6         if(i + 1 != toOutPut.size()) {
 7             out_<<"\n";
 8         }
 9     }
10     out_.close();
11 }
output.cpp

四、测试用例设计

  在设计测试用例时,首先要考虑到语句覆盖度,使得对输出条件的判断的不同情况做到完全覆盖;对输出前100个单词的词频要对边界进行黑盒测试。  

五、单元测试结果

  使用gtest框架进行单元测试,测试结果如下图:

  

六、小组贡献分

  经小组协商为0.24

七、扩展功能

  选择“3.4.3谷歌C++风格指南”,分析了17036同学的代码,发现了问题,比如#include的顺序问题,等等。

  但同时发现了更多的很好的点,比如变量初始化、通用命名规则等,都很好地遵循了相应的规则。

  小组使用的静态代码检查工具为Cpplint,安装及使用方法详见[2]

八、参考资料

  [1]fstream的使用方法介绍 https://blog.youkuaiyun.com/smstone/article/details/661483

  [2]静态代码检测工具Cpplint https://blog.youkuaiyun.com/mangobar/article/details/50072465

转载于:https://www.cnblogs.com/philippe/p/8746520.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值