第三次作业—Wordcount
一、地址
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的注解得到用法)
五、 设计实现过程
在简单的讨论之后,我和蒋鑫设计了如下的流程图
以下是实际的一些改动
- 文件操作类包含了"文件的写入"和调用"核心功能类"
- 核心功能类包含了计算Ascii字符总数、有效行数、词组和单词频率和文件写入函数
- 主函数类包含了增强功能的代码
六.代码规范
- 缩进:用一个tap 键。
- 行宽:限定100个字符。
- 括号:对于复杂的表达式,要用括号清楚的表示逻辑优先级。
- { }括号:循环或选择语句即使只有一句也要用 { } ,且{ } 都要单独占一行。
- 分行:除了同类型的变量的定义在一行,其他不同的语句要分行写。
- 命名:首字母要大写,关键变量命名要能清楚的表达变量的含义;若名称以多个单词为名,单词与单词之间要用 "_" 连接。
- 注释:在每个函数前注释清楚函数的用途和意义较复杂的变量的文字解释。
问题:在修改代码后很多首行缩进都不符合要求,需要单个的修改。
七、性能分析
八、代码分析
核心代码如上图
我们的代码分两大部分,一是文件操作二是核心功能
我们把核心功能各类了出来放在了另一个类中,再在另一个类中调用,在主函数中还有一部分判断是对Cmd,对i o m n 命令语句做了判断的功能
九、总结
本次结对编程我觉得是1+1>2的,我们完全是在一起编写完成这个项目,一个人的思考有限,在遇到问题时,两个人有更多的方法解决,但是也需要两个人相互配合。
结对编程的缺点:两人一起编程久了,两个人的思路有时不清晰,思路有时会混乱,特别是测试检验修改的时候。
遇到的问题:由于我们的输出前n 个单词和输出m 个单词组成的数组为一个函数,调用时发现两个输出的都是m个单词组成的词组
解决:从新命令了一个对象,做同样的操作,得到两种输出。
我们一开始创建GitHub库的时候,没有fork给出的连接,后来在3次上传完成后意识到问题,询问助教,把我们这个库的内容又Clone了过去但就只有一次Commit
第三次作业—Wordcount的更多相关文章
- 耿丹CS16-2班第三次作业汇总
-- Deadline: 2016-10-12 22:48 -- 作业内容: 1.实验2-6 猜数字游戏 2.实验2-7 判断能否为三角形 3.实验2-8 个人所得税计算器 -- 第三次作业总结: 1 ...
- JAVA第三周作业(从键盘输入若干数求和)
JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...
- 第三次作业:caculator
第三次作业 作业链接 ********* 遇到的问题: Scan类: 队列的使用方法不了解,上网查询并自己练习了一下才初步了解,才运用到作业 . 判断数字用的 if (input[i] >= ' ...
- HTML第三天作业做的表格
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 第三次作业——《K米评测》
第三次作业--<K米评测> 一.调研.评测 上手体验 APP的图标做的不错,一眼就知道和KTV唱歌相关的 点进去就是连接包箱的界面和直播界面,把软件最重要的两个功能展示出来了,一目了然 热 ...
- 软件工程(QLGY2015)第三次作业点评(含成绩)
相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 团队信息 本页点评团队1-22,其他组见:http://www.cnblogs.com/xiaozhi_5638/p/4490764.h ...
- 第三次作业随笔(new)包含了补作业
第三次作业的题目:http://www.cnblogs.com/fzuoop/p/5187275.html 第一次看到题目的时候觉得应该是挺简单的,只要把输入的那一串东西挨个判断,用数列的方法,如果碰 ...
- 第三周作业、实时操作系统µC/OS介绍及其它内容
作业要求 见<实时控制软件设计>第三周作业 1 阅读笔记--µC/OS 1.1 基本介绍 µC/OS是由Micrium公司研发的实时操作系统,以µC/OS-II或µC/OS-III为内核, ...
- 软件工程(GZSD2015)第三次作业提交进度
第三次作业题目请查看这里:软件工程(GZSD2015)第三次作业 开始进入第三次作业提交进度记录中,童鞋们,虚位以待哈... 2015年4月19号 徐镇.尚清丽,C语言 2015年4月21号 毛涛.徐 ...
随机推荐
- git创建公钥匙
目的: 使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(git的remote要使用SSH地址) 1.打开终端进入.ssh目录输入当下命令 cd ~/.ssh 如果.ssh文件夹不存在,执 ...
- 冲刺周日 Fighting SunDay
一.SunDay照片 二.项目分工 三.今日份燃尽图 四.项目进展 码云团队协同环境构建完毕 利用Leangoo制作任务分工及生成燃尽图 完成AES加解密部分代码 用代码实现对文件的新建.移动.复制. ...
- java jar 服务自启动存在的坑及解决办法
为了在服务器重启的时候,java程序能够自动重启,我们通常把它加到服务里面 ln -s /full/path/to/jar /etc/init.d/service_name # start servi ...
- leetcode-mid- 50. Pow(x,n)-NO
mycode time limited 例如 x=0.00001 n=2147483647 参考: class Solution(object): def myPow(self, x, n): &q ...
- 大数据时代下EDM邮件营销的变革
根据研究,今年的EDM邮件营销的邮件发送量比去年增长了63%,许多方法可以为你收集用户数据,这些数据可以帮助企业改善自己在营销中的精准度,相关性和执行力. 最近的一项研究表明,中国800强企业当中超过 ...
- c++实验7 二叉树
二叉树数据结构表示及基本操作算法实现 1.所加载的库函数或常量定义及类的定义: #include<stdlib.h> #include<stdio.h> #include&qu ...
- 七:flask-一些小细节
1.在局域网中,让其他电脑访问我的网站:host参数 如果设置为0.0.0.0,则在局域网中,输入当前项目所在的ip+端口就可以访问这个项目如果host设置为固定的ip,如host=‘'192.168 ...
- CSS3——提示工具 图片廓 图像透明 图像拼接技术 媒体类型 属性选择器
提示工具 提示框在鼠标移动到特定的元素上显示 设置提示框的位置 给提示框添加箭头 提示框的淡入效果 提示框美化 图片廓 响应式图片廓 图像透明 创建透明图像——悬停效果 ———鼠标放置后———> ...
- 【MM系列】SAP OX09中的地址如何取
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP OX09中的地址如何取 ...
- 安装iamp模块,编译报错configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
yum install libc-client-devel cd /root/lnmp1.0-full/php-5.3.17/ext/imap /usr/local/php/bin/phpize ./ ...