• 结对编程(第7组)


    1、Github项目地址:https://github.com/Ahusbj/PairProject2018

    2、PSP表格

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

    180

     

    · Estimate

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

       

    Development

    开发

    120

    180

    · Analysis

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

    10

    10

    · Design Spec

    · 生成设计文档

       

    · Design Review

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

    20

    20

    · Coding Standard

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

       

    · Design

    · 具体设计

    20

    20

    · Coding

    · 具体编码

    80

    120

    · Code Review

    · 代码复审

       

    · Test

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

    20

    20

    Reporting

    报告

       

    · Test Report

    · 测试报告

    10

    10

    · Size Measurement

    · 计算工作量

       

    · Postmortem & Process Improvement Plan

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

    50

    60

     

    合计

    330

    440


    思路:3、解题思路描述

    (1)对于统计字符和行数来说,首先通过遍历文档找中每一个字符(符合特定ASCII范围)和换行符的个数,从而进行统计。

    (2)统计单词个数的时候,首先遇到字符的时候,考虑其是不是首个字母(直接与分隔符相连),如果是的话,则开始计算在遇到下一个分割符的时候,中间相隔几个字符(从而判断是否符合单词的长度定义)

    (3)当确定单词之后,在将其存入到Hashmap中,从而获取单词的出现的频率。

    4、设计实现过程

    考虑到如下五个主要的核心功能:统计有效行数、统计字符数、统计单词数、统计文件中各单词的出现次数,最终只输出频率最高的10个、按照字典序输出到文件。

    (1) Compoment design schema

    软件构件的设计设计如下三个构建:

    WordCountCore构件用于实现系统的核心功能:统计有效行数、统计字符数、统计单词数、统计频率最高的TopTen单词。

    OutputModule输出部分作为一个单独的构件进行设计。

    UnitTestModule考虑到单元测试,该模块作为一个单独的构件设计用于来充分对WordCountCore的四个核心功能进行针对性测试。

    (2) Class design

    WordCountCore构件可以以动态库dll的形式完成,其实现通过WordOperation类来进行实现。

    四个核心功能在类中设计为public函数,方便其他模块的调用,并同时考虑到重用。

    其他支持性功能在类中设计为private函数。

    5、记录在改进程序性能上所花费的时间,描述你改进的思路,并展示一张性能分析图(由VS 2017的性能分析工具自动生成),并展示你程序中消耗最大的函数。

    6、代码说明,展示出项目关键代码,并解释思路与注释说明。

    (1)通过逐行读取文档中字符的内容,以换行符为标记获取行数,此外,在读取每行的字符内容的过程中,进行字符的判断,判读其是否属于我们所设定的字符范围内,以便进行字符个数的统计。

    (2)在字符统计的过程中,首先判断在每个单词中,首字母(该字符的前一个字符是分隔符)的位置,然后获取结束字符的位置(该字符的下一个字符是分割符),然后进行两次判断:

    A、判断结束字符与首字符之间的间隔小于4个字符长度,则直接忽略(不是我们需要的单词),接下来执行下面的步骤B;

    B、然后判断这个“单词”是不是以连续的四个英文字符开头,符合要求则是我们需要的单词,然后将其存储到hashmap中,否则,直接忽略,直接进行下一个的单词判断。

     

    C、通过对hashmap中的单词进行sort排序,从而输出频率出现最多的m个单词信息。

    7、结合在构建之法中学习到的相关内容与结对项目的实践经历,撰写解决项目的心路历程与收获。

    通过此次的结对编程,深刻理解到了两人结对对工作效率的重要性,相对于单个人的编程,在面对于较大的工作量的时候,有时候便难以胜任,通过两人的合作,一个人编写,另一人监督指导,既可以减少在代码书写过程中的错误,也可以进行一些思想思路上的帮助(当遇到编程思路障碍的时候)。

  • 相关阅读:
    html设置360兼容/极速模式
    es查询备忘录
    TypeError: __init__() got an unexpected keyword argument 'strict'
    pandas处理csv
    scrapy中cookie处理
    滑动验证码破解(一)
    python 自定义属性访问 __setattr__, __getattr__,__getattribute__, __call__
    数据库的增删改、单表查询
    库的操作,表的操作,数据类型,完整性约束
    Mysql常用命令(二)
  • 原文地址:https://www.cnblogs.com/ahusbj/p/9285262.html
Copyright © 2020-2023  润新知