软件工程基础结对编程作业

一.幸福生活

1.结对伙伴
姓名:向恒越
学号:201831061327
2.幸福结晶--如下

善待它好吗

二.PSP表格

Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
计划 半天 半天
估计这个任务需要多少时间 5天 6天
开发 2天 2天半
需求分析 (包括学习新技术) 一天 一天半
生成设计文档 一小时 一小时半
设计复审 (和同事审核设计文档) 半小时 半小时
代码规范 (为目前的开发制定合适的规范) 一小时 一小时
具体设计 半天 半天
具体编码 一天 一天
代码复审 半天 半天
测试(自我测试,修改代码,提交修改) 一小时 一小时
报告 一小时 一小时
测试报告 半小时 半小时
事后总结, 并提出过程改进计划 半小时 半小时
合计 五天 6天

三.懵逼全过程

1 运行效果

input文档

运行效果


output文档

2.关键模块与函数设计

由于函数很多,为了减少主程序的阅读负担,我与同伴将大部分函数写成了一个word模块,下面剖析其中奥妙:
a.计算字符数,字母数,数字数量

b.计算行数

c.将读取的字符串的单词存入列表,以便后续操作


如单词的个数计算在主函数中通过len()函数计算

d.'-m'命令的实现


按照用户需求将刚刚存入列表的单词分成词组存入新列表列表,进行嵌套

将嵌套列表散列为元组,以该元组作为键,其出现次数为键值,封装成字典

d.'-n'命令的实现


调用自带的模块collection 中的Counter类,实现正确指定的数量的词频单词及其次数

3.代码更改的痛楚

我和同伴虽然函数是分工写的,但主函数是由我写的,所以后面由他改的时候很费劲,因为要维持程序有一定的健壮性,就很繁琐,为此也学习了一些新知识填补未知,如:

这是为了命令保证其准确性,又如

为了确保打开文件失败时不会直接导致程序的崩溃,像这样的该正可谓声势浩大的“工程"

4.单元测试




运用python自带的unittest模块对每个函数进行测试,这个过程由于我与伙伴写函数时编写边改,最后测试时,基本没什么大问题

四.获奖感言

本次结对的过程让我感受到了两人默契的重要性,因为和伙伴是一起开黑的送分兄弟,所以我们互相写的部分都能被对方很好的接手。由于没学过python,所以我主要负责的就是算法实现,顺便也学了些python的知识,很是受用。

posted @ 2019-10-14 19:04  Xivie  阅读(70)  评论(0编辑  收藏  举报