[课程相关]homework-02
一、如何组织代码
因为这个代码比较简单,用函数就足够了,个人觉得没必要用类,杀鸡不必用牛刀。
代码有点长,主要是加了很多判断参数的部分。
提取了一个公共的递归函数。
用了不少全局变量,可能当做参数传入更好吧,不过这么小的程序就这样吧,当做参数还要打包再解析(否则传一大片参数太丑了),没必要。
二、单元测试、代码覆盖率
单元测试结果:
可以看到所有测试全部通过。
详细的测试内容可以去github里看letstest.py文件,我已经添加了注释。
代码覆盖率结果:
单元测试的代码覆盖率100%,homework02的代码覆盖率99%。
有两行没有覆盖的原因是,homework02中结尾处的两行作用是直接运行时执行。单元测试是导入的homework02,所以这两行没有执行。
三、表格
Personal Software Process Stages |
时间百分比(%) |
实际花费的时间 (分钟) |
原来估计的时间 (分钟) |
计划 |
2% | 10 | 10 |
· 估计这个任务需要多少时间,把工作细化并大致排序 |
2% | 10 | 10 |
开发 |
86.8% | 430 | 330 |
· 需求分析 (包括学习新技术) |
0 | 0 | 0 |
· 生成设计文档 |
0 | 0 | 0 |
· 设计复审 (和同事审核设计文档) |
0 | 0 | 0 |
· 代码规范 (制定合适的规范) |
2% | 10 | 10 |
· 具体设计 |
48% | 240 | 180 |
· 具体编码 |
24% | 120 | 60 |
· 代码复审 |
4% | 20 | 20 |
· 测试(自我测试,修改代码,提交修改) |
8% | 40 | 60 |
总结报告 |
11.2% | 55 | 40 |
2% | 10 | 10 | |
3.2% | 15 | 10 | |
6% | 30 | 20 | |
总计 | 100% | 总用时:495 |
总估计的用时:380 |
注:
1、表格中为0的项表示没有进行相关过程。
2、因为表格太大了,会超出显示宽度,所以把最左侧的英文列删掉了。
四、总结
这次做作业整体来说比较麻烦,也是第一次做这么完整的程序,以前基本上不会写单元测试和博客。
做题时候遇到的最大问题是联通类型的求法,当时思考了一上午吧,最后终于通过贪心+递归搞定了。
总的来说,虽然麻烦但是收获挺大的。也学到了不少东西。
[课程相关]homework-02的更多相关文章
- Web开发相关笔记 #02#
[1] HTML 插入第三方. [2] [3] JavaScript 回调函数 & 模块化 --> 用变量封装数据.方法 --> 类比 Java 中的 package var fe ...
- HTML中body相关标签-02
今日内容: 字体标签: h1~h6.<font>.<u>.<b>.<strong><em>.<sup>.<sub> ...
- 【学习笔记】B站-2019-NLP(自然语言处理)之 BERT 课程 -- 相关课程笔记
BERT 课程笔记 1. 传统方案遇到的问题 BERT的核心在于Transformer,Transformer就类似seq2seq网络输入输出之间的网络结构. 传统的RNN网络:最大的问题,因为不能并 ...
- Linux及安全课程——相关链接总结
附录:学习笔记链接总结 MOOC课程学习笔记与实验: 第一周:计算机是如何工作的 第二周:操作系统是怎么工作的 -- 一个简单的时间片轮转多道程序内核代码及分析 第三周:构造一个简单的Linux系统M ...
- [课程相关]homework-06
一.c++11 lambda /* * File: main.cpp * Author: liangjie * * Created on 2013年11月23日, 下午12:02 */ #includ ...
- [课程相关]homework-04
零.准备工作 这次的作业仍然是结对编程,我们队伍的成员为:梁杰.夏天晗.谢祖三.上次我们是选择了一个时间大家聚在一起进行编程,效果不错,所以这次我们还是决定采用这种方式.由于大家平时比较忙,这周六日我 ...
- 潭州课堂25班:Ph201805201 django 项目 第四十二课 后台 课程相关,用户组管理 (课堂笔记)
在线课程: 当点击进入页面时,显示所有课程 def get(self, request): courses = Course.objects.select_related('category', 't ...
- html-body标签中相关标签 02
今日主要内容: 列表标签 <ul>.<ol>.<dl> 表格标签 <table> 表单标签 <fom> 一.列表标签 列表标签分为三种. 1 ...
- [课程相关]附加题——stack的理解
一.stack的三种解释 stack有三种解释,我个人理解如下. 1.用户自定义的stack 用户自定义的stack就是一般意义上的后进先出队列,从名字上就能理解了,stack由下向上增长,有一个顶指 ...
随机推荐
- Python字典方法copy()和deepcopy()的区别
from copy import deepcopy # import deepcopy模块 d = {} d['name'] = ['black', 'guts'] # d = {'name': [' ...
- C# 释放非托管资源
C#中资源分为托管资源和非托管资源. 托管资源由垃圾回收器控制如何释放,不需要程序员过多的考虑(当然也程序员也可以自己释放). 非托管资源需要自己编写代码来释放.那么编写好的释放非托管资源的代码(释非 ...
- c++ Map使用
引入头文件: #include <map>1.初始化map<int, int> a, b;map<sting, int> a, b;2.添加数据 map<in ...
- 【转】Nginx系列(三)--管理进程、多工作进程设计
原博文出于:http://blog.csdn.net/liutengteng130/article/details/46700999 感谢! Nginx由一个master进程和多个worker进程组 ...
- cocos2d-x图片变灰或者变亮
//根据现有CCSprite,变亮和变灰 CCSprite* FlyLeaf::graylightWithCCSprite(CCSprite* oldSprite,bool isLight) { ...
- UVaLive 7269 Snake Carpet (找规律,模拟)
题意:给定一个数字n,表示有n条蛇,然后蛇的长度是 i ,如果 i 是奇数,那么它只能拐奇数个弯,如果是偶数只能拐偶数个,1, 2除外,然后把这 n 条蛇, 放到一个w*h的矩阵里,要求正好放满,让你 ...
- iOS-default.png启动图片
我在xcode5下写的代码,我下载了iOS6的模拟器,我用iOS6和iOS7的模拟器切换运行,有的时候可以运行有的时候不可以运行,报错: 2013-11-17 16:49:04.049 sim[474 ...
- OpenNebula 创建虚拟机失败(未解决)
Tue Jul :: [ReM][D]: Req: UID: AclInfo invoked Tue Jul :: [ReM][D]: Req: UID: AclInfo result SUCCESS ...
- ADO.NET 快速入门(十五):ADO 应用转换为 ADO.NET
这是一个已经移植到 .NET 的 ADO 应用的例子.也演示了单向.只读.快速 DataReader 的使用.它演示如何使用 DataView 类从 DataSet 获取一个 Table 和 操作一个 ...
- Ubuntu 12.04 中安装和配置 Java JDK
先去 Oracle下载Linux下的JDK压缩包,我下载的是jdk-7u4-linux-i586.tar.gz文件,下好后直接解压 sudo mv ./jdk1.7.0_55 /usr/lib/jdk ...