• 第二次结对编程作业


    第二次结对编程作业


    链接

    结对同学的博客链接:https://www.cnblogs.com/Sugar-Chl/p/11726670.html
    本作业博客的链接: https://www.cnblogs.com/Sugar-Chl/p/11726670.html
    Github项目地址:https://github.com/SugarChl/ThirteenWater

    具体分工

    PSP表格

    PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟)

    • | :-: | :-: | :-: | -:
      Planning |计划| 30| 20
      Estimate| 估计这个任务需要多少时间 |20| 30
      Development| 开发 |600 |600
      Analysis | 需求分析 (包括学习新技术)| 120| 200
      Design Spec | 生成设计文档 |20| 20
      Design Review |设计复审 |30| 30
      Design | 具体设计 |60| 100
      Coding | 具体编码 | |
      Code Review | 代码复审|20 |20
      Test | 测试(自我测试,修改代码,提交修改)| |
      Reporting |报告| 60 |60
      Test Repor | 测试报告| |
      Size Measurement | 计算工作量| 20 |20
      Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划| 50 |45
      | | 合计|1030|1145

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

    网络接口:

    无网络接口的使用

    代码组织与内部实现设计:

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

    关键代码解释

    def trans_cards(cards):
        F, N = [], []
        for card in cards:
            if card[1] == "J":
                N.append(11)
            elif card[1] == "Q":
                N.append(12)
            elif card[1] == "K":
                N.append(13)
            elif card[1] == "A":
                N.append(14)
            elif card[1:] == "10":
                N.append(10)
            else:
                N.append(int(card[1]))
            F.append(card[0])
        return F, N
    

    该代码将牌型的列表,转化为花色,数字两个列表,有利于后续的操作。

    性能分析与改进

    改进的思路:

    对于分牌的算法还有比较大的缺陷,可能会出现相公。然后对于各个牌型的匹配是按顺序从大到小进行的,性能上还有改进的空间。
    后续可以把串行的牌型匹配改成并行的。这样就大大加快的分牌算法的性能。
    同时还有对可能出现相公的情况进行规避

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

    单元测试

    测试代码:

    测试的函数:

    构造测试数据的思路:

    遇到的困难及解决方法

    困难描述

    对于界面设计没有经验

    解决尝试

    通过百度、视频来学习相关知识,加深对界面设计的了解

    是否解决

    有何收获

    碰到新知识时不要畏惧,要勇于挑战

    评价队友

    值得学习的地方:

    队友非常负责任,认真完成了任务

    值得改进的地方

    队友对界面设计可以多加学习

    学习进度条

    第N周 | 新增代码(行)| 累计代码(行) |本周学习耗时(小时)|累计学习耗时(小时)|重要成长

    • | :-: | :-: | :-: |:-: |:-: |-:
      2|0|0|12|12|对代码编程有更深的理解
  • 相关阅读:
    移动设备(手机)的唯一ID有哪些
    公司跟你聊企业文化了吗
    C#并行编程-线程同步原语
    C#并行编程-并发集合
    C#并行编程-Task
    C#并行编程-Parallel
    C#并行编程-相关概念
    C#学习系列-this的使用
    C#学习系列-out与ref的区别
    C#学习系列-抽象方法与虚拟方法的区别
  • 原文地址:https://www.cnblogs.com/271380415-qq/p/11704021.html
Copyright © 2020-2023  润新知