第二次结对编程作业(更新中)

风流意气都作罢 提交于 2019-12-01 09:43:59

前言
我回来了……先给大家说声DBQ 很过意不去=-= 本来是打算国庆写好之后给大家分享一下代码的架构思路和怎么写
结果打比赛做项目每天没什么时间写代码 更不要说写博客了 QUQ 这1个月多每天都是上班导凌晨,回宿舍开始写(国庆什么的就别想了好吧)
总结一下这段时间就是 白天上课,晚上打比赛,凌晨断断续续打代码,睡一会起来上课。不过所幸,比赛结果还是好的
一直到15号才真正闲下来 真的有点肝不动了 ……… BY dzy

链接

结对同学的博客链接
本作业博客的链接
Github项目地址

具体分工

邓泽源主要负责代码的编码部分
姚彬锟主要负责博客的撰写、代码的分析测试。

PSP表格

PSP2.1 Personal Software
Process Stages
预估耗时(min) 实际耗时(min)
Planning 计划 50 40
Estimate 估计这个任务需要多少时间 50 40
Development 开发 1610 1920
Analysis 需求分析
(包括学习新技术)
600 750
Design Spec 生成设计文档 60 50
Design Review 设计复审 60 50
Coding Standard 代码规范
(为开发制定合适的规范)
30 30
Design 具体设计 200 200
Coding 具体编码 500 570
Code Review 代码复审 80 70
Test 测试
(自我测试,修改,提交修改)
180 200
Reporting 报告 135 150
Test Report 测试报告 45 60
Size Measurement 计算工作量 30 30
Postmortem & Process
Improvement Plan
事后总结
并提出过程改进计划
60 60
合计 1795 2110

解题思路描述与设计实现说明

网络接口的使用

代码组织与内部实现设计(类图)

说明算法的关键与关键实现部分流程图

关键代码解释

性能分析与改进

  • 改进的思路
    一开始的时候由于用python写速度会比较慢一些,运行时间到了10几秒,经过性能分析,发现在( )函数消耗了很大一部分的时间,于是我(),最后成功让算法的性能有所提高,达到了5秒钟作业。

  • 性能分析图和程序中消耗最大的函数

性能分析图如下所示,消耗最大的函数是Second,就是计算中墩的函数。

单元测试

单元测试这部分我们测试主要对三个函数进行测试,其他函数因为功能十分简单,所以就没有进行测试。测试的三个函数分别是得到前墩、中墩、后墩的三个函数,由于结构基本一样,只有变量的改变,所以只给出一部分的代码。各测试数据都是在手机app“大头十三水”读出的数据,然后为了提高一些代码的覆盖,我们尽可能的挑选了不同的数据进行测试,尽可能的覆盖更多的代码分支。而且由于前墩中墩后墩的结果会互相影响,即前墩挑出后要先把前墩的牌剔除再放入中墩函数进行计算,所以中墩的测试数据是在手动剔除前墩的基础上得到的,后墩同理。最后得出的结果与我们设计的算法的思路是一致的。

class MyTestCase(unittest.TestCase):
def testfirst(self):
    weig0 = 10
    weig1 = 7
    weig2 = 6
    self.assertEqual(shisanshui.first(str0), weig0)
    self.assertEqual(shisanshui.first(str1), weig1)
    self.assertEqual(shisanshui.first(str2), weig2)
def testsecond(self):
    weig0 = 10
    weig1 = 9
    weig2 = 8
    self.assertEqual(shisanshui.second(str0), weig0)
    self.assertEqual(shisanshui.second(str1), weig1)
    self.assertEqual(shisanshui.second(str2), weig2)
def testthird(self):
    weig0 = 10
    weig1 = 9
    weig2 = 8
    self.assertEqual(shisanshui.second(str0), weig0)
    self.assertEqual(shisanshui.second(str1), weig1)
    self.assertEqual(shisanshui.second(str2), weig2)
    

Github的代码签入记录

遇到的代码模块异常或结对困难及解决方法

  • 问题描述
    前端这一部分的编写。
    结对沟通的问题。
    除了算法其实都有问题,之前没有做过一个稍微完整的项目,所以很多东西都没有学过,也没有这方面的知识。
  • 做过哪些尝试
    因为刚开始讨论的时候算法用C++来写,而前端决定用python写,后来听到有人说什么python写出来的前端会有问题,导致进度一度拖着……后面dzy强势肝完了这些问题,把C++转成java又转python,学习pygame、pyqt…学的东西真的多。
    结对问题就用聊天工具,就差聊出火花了。
    对没有学习的东西,只能靠搜索引擎和B站了。
  • 是否解决
    都解决了都解决了,没解决就写不出这个博客了…
  • 有何收获
    感受就是速成太难受了,计算机的世界太复杂。
    原来为了学习也能够聊出火花。
    再次强调,搜索引擎是个好东西。
    评价你的队友
    ======

  • 值得学习的地方
    dzy真的太能肝了,学习能力也太强了,偷来羡慕的目光。
  • 需要改进的地方
    我觉得他tql,什么都不需要改进,如果必须要改进的话,那就是为了互联网+没空好好带我好好敲代码。

学习进度条

第N周 新增代码(行) 累计代(行) 本周学习耗时(小时)
1 100 100 5
2 300 400 10
3 300 700 15
4 300 1000 10
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!