一、地址

Github项目地址:https://github.com/1320068008/WordCount-1

同伴蒋鑫作业地址:https://www.cnblogs.com/JxsBK/p/10659511.html

二、结对过程

室友组队,编程过程中两人一直在一起,共同思考,我主要文件读入和核心功能部分的编码,他负责文件写入和测试。

三、PSP表格

PSP2.1

Personal Software Process Stages

预估耗时

实际耗时

Planning

计划

20min

15min

· Estimate

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

(从开始项目到结束,不是连续)

4day

3day

Development

开发

3day

2day

· Analysis

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

20min

15min

· Design Review

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

5min

5min

· Coding Standard

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

10min

10min

· Design

· 具体设计

1h

2h

· Coding

· 具体编码

3day

2day

· Code Review

· 代码复审

2h

1h

· Test

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

4h

3h

· Postmortem & Process Improvement Plan

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

1h

1h

合计=Estimate

4day

3day

四、解题思路

先将文本文件传入,在实现核心功能,在写入文件

运用了dictionary类型,在计数、排序方面提供了简明的帮助,还用了streamreader、file类型,对文件的操作提供了简明的方法(询问同学和百度,以及vs的注解得到用法)

五、 设计实现过程

在简单的讨论之后,我和蒋鑫设计了如下的流程图

以下是实际的一些改动

  1. 文件操作类包含了"文件的写入"和调用"核心功能类"
  2. 核心功能类包含了计算Ascii字符总数、有效行数、词组和单词频率和文件写入函数
  3. 主函数类包含了增强功能的代码 

六.代码规范

  1. 缩进:用一个tap 键。
  2. 行宽:限定100个字符。
  3. 括号:对于复杂的表达式,要用括号清楚的表示逻辑优先级。
  4. { }括号:循环或选择语句即使只有一句也要用 { } ,且{ } 都要单独占一行。
  5. 分行:除了同类型的变量的定义在一行,其他不同的语句要分行写。
  6. 命名:首字母要大写,关键变量命名要能清楚的表达变量的含义;若名称以多个单词为名,单词与单词之间要用 "_" 连接。
  7. 注释:在每个函数前注释清楚函数的用途和意义较复杂的变量的文字解释。

    问题:在修改代码后很多首行缩进都不符合要求,需要单个的修改。

七、性能分析

八、代码分析

核心代码如上图

我们的代码分两大部分,一是文件操作二是核心功能

我们把核心功能各类了出来放在了另一个类中,再在另一个类中调用,在主函数中还有一部分判断是对Cmd,对i o m n 命令语句做了判断的功能

九、总结

本次结对编程我觉得是1+1>2的,我们完全是在一起编写完成这个项目,一个人的思考有限,在遇到问题时,两个人有更多的方法解决,但是也需要两个人相互配合。

结对编程的缺点:两人一起编程久了,两个人的思路有时不清晰,思路有时会混乱,特别是测试检验修改的时候。

遇到的问题:由于我们的输出前n 个单词和输出m 个单词组成的数组为一个函数,调用时发现两个输出的都是m个单词组成的词组

解决:从新命令了一个对象,做同样的操作,得到两种输出。

我们一开始创建GitHub库的时候,没有fork给出的连接,后来在3次上传完成后意识到问题,询问助教,把我们这个库的内容又Clone了过去但就只有一次Commit

第三次作业—Wordcount的更多相关文章

  1. 耿丹CS16-2班第三次作业汇总

    -- Deadline: 2016-10-12 22:48 -- 作业内容: 1.实验2-6 猜数字游戏 2.实验2-7 判断能否为三角形 3.实验2-8 个人所得税计算器 -- 第三次作业总结: 1 ...

  2. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  3. 第三次作业:caculator

    第三次作业 作业链接 ********* 遇到的问题: Scan类: 队列的使用方法不了解,上网查询并自己练习了一下才初步了解,才运用到作业 . 判断数字用的 if (input[i] >= ' ...

  4. HTML第三天作业做的表格

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  5. 第三次作业——《K米评测》

    第三次作业--<K米评测> 一.调研.评测 上手体验 APP的图标做的不错,一眼就知道和KTV唱歌相关的 点进去就是连接包箱的界面和直播界面,把软件最重要的两个功能展示出来了,一目了然 热 ...

  6. 软件工程(QLGY2015)第三次作业点评(含成绩)

    相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 团队信息 本页点评团队1-22,其他组见:http://www.cnblogs.com/xiaozhi_5638/p/4490764.h ...

  7. 第三次作业随笔(new)包含了补作业

    第三次作业的题目:http://www.cnblogs.com/fzuoop/p/5187275.html 第一次看到题目的时候觉得应该是挺简单的,只要把输入的那一串东西挨个判断,用数列的方法,如果碰 ...

  8. 第三周作业、实时操作系统µC/OS介绍及其它内容

    作业要求 见<实时控制软件设计>第三周作业 1 阅读笔记--µC/OS 1.1 基本介绍 µC/OS是由Micrium公司研发的实时操作系统,以µC/OS-II或µC/OS-III为内核, ...

  9. 软件工程(GZSD2015)第三次作业提交进度

    第三次作业题目请查看这里:软件工程(GZSD2015)第三次作业 开始进入第三次作业提交进度记录中,童鞋们,虚位以待哈... 2015年4月19号 徐镇.尚清丽,C语言 2015年4月21号 毛涛.徐 ...

随机推荐

  1. 微信小程序 导航(a 连接)自定义组件

    导航:navigator 组件 组件上的属性: target:跳到其他小程序( 默认是当前小程序 ),当属性值为 miniProgram 时,跳到别的小程序(如果要跳到别的小程序,需要填写 appid ...

  2. ls -i

    ls的不同选项有不同的含义: -l 是用long的长格式显示 条目信息 -a 显示所有的文件, 包括隐藏文件 -i: 是显示inode, 主要是用来查看硬链接的

  3. 系统编码 python编码

    编码一直都是一个很让人头疼的问题,尤其是在python里面.花了几天时间,终于把这个问题给弄明白了. 一,什么是编码,编码过程是怎样的?常见的编码方式有哪些? 编码是从一个字符,比如'哈',到一段二进 ...

  4. python - 标准库:subprocess模块

    subprocess的目的就是启动一个新的进程并且与之通信. subprocess模块中只定义了一个类: Popen. subprocess.Popen(args, bufsize=0, execut ...

  5. 异步分发任务celery

    Celery简介 Celery是一个功能完备即插即用的任务队列.它使得我们不需要考虑复杂的问题,使用非常简单. celery适用异步处理问题,当遇到发送邮件.或者文件上传, 图像处理等等一些比较耗时的 ...

  6. PHP面向对象-设计模式 单例模式 简单工厂模式 工厂方法模式

    1.单例模式 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例.即一个类只有一个对象实例. 要实现每一个类只有一个实例,就需 ...

  7. Unity3D 连接MySql

    MySql安装如下: https://www.cnblogs.com/dlvguo/p/9671832.html Unity连接MySql首先要在Unity的安装目录D:\Unity2017\Edit ...

  8. 中国MOOC_零基础学Java语言_第5周 数组

    第5周 数组 5.1 数组 5.2 数组计算 public class Main { public static void main(String[] args) { for (int i = 1; ...

  9. IDEA给类和方法配置注释模板(参数换行显示)

    创建类模板 1.打开设置:File–>settings–>Editor–>File and Code Templates–>Includes 2.输入注释模板 #if (${P ...

  10. C语言第十二周作业

        这个作业属于那个课程 C语言程序设计II 这个作业要求在哪 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass3-2018/h ...