第二次结对编程作业 第二次结对编程作业

1、博客链接

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

2、具体分工

我:代码、博客
同学:代码、博客

3、PSP表格

|PSP|Personal Software Process Stages|预估耗时(分钟)|实际耗时(分钟)|
|-|-|-|
|Planning|计划|20min|30min|
|Estimate|估计这个任务需要多少时间|10min|10min|
|Analysis|需求分析 (包括学习新技术)|7d|12d|
|Design Spec|生成设计文档|30min|30min|
|Coding Standard|代码规范 (为目前的开发制定合适的规范)|10min|10min|
|Design|具体设计|2h|2h|
|Coding|具体编码|2d|4d|
|Test|测试(自我测试,修改代码,提交修改)|2h|2h|
|Postmortem & Process Improvement Plan|事后总结, 并提出过程改进计划|1h|1h|
||合计|11d|17d|

4、解题思路描述与设计实现说明(15分)

  • 网络接口的使用:
  • 代码组织与内部实现设计(类图):
    第二次结对编程作业
第二次结对编程作业
  • 说明算法的关键与关键实现部分流程图:
    第二次结对编程作业
第二次结对编程作业

5、关键代码解释

  • 这个是出牌AI的代码,AI会先查找是否有特殊牌型,如果没有再根据普通规则出牌
class AI {
    private Card pokerCard[]=new Card[13];          //十三张牌
    void getCard(int hs,int sz,int ps)      //获得一张牌,hs为花色,sz为数字,ps为牌序
    {
        pokerCard[ps]=new Card();
        pokerCard[ps].colour=hs;
        pokerCard[ps].number=sz;
    }
    void sortCard()                         //将获得的牌进行排序,以便后边出牌时查找
    {
        Card k=new Card();
        int i,j;
        for (i=0;i<12;i++)
        {
            for (j=i+1;j<13;j++)
            {
                if (pokerCard[i].number>pokerCard[j].number)
                {
                    k=pokerCard[i];
                    pokerCard[i]=pokerCard[j];
                    pokerCard[j]=k;
                }
            }
        }
    }
    void playCard()                           //经过计算输出

6、性能分析与改进

  • 描述改进思路
  • 展示性能分析图和程序中消耗最大的函数

7、单元测试

  • 展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路

8、贴出Github的代码签入记录

第二次结对编程作业
第二次结对编程作业

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

  • 问题描述:接口不知道如何编写,客户端也不会做
  • 做过哪些尝试:尝试着在网上查找资料
  • 是否解决:没有解决
  • 有何收获:做一个程序不止是要会写代码,还要接口、客户端等许许多多方面

10、评价你的队友

  • 值得学习的地方
    淇弘太强了,大部分的事都是他做到的,我只能报个大腿。
  • 需要改进的地方
    可能就是遇上我这样一个队友吧。

11、学习进度条

|第2周|新增代码(行)|累计代码(行)|本周学习耗时(小时)|累计学习耗时(小时)|重要成长|
|-|-|-|
|1|267|267|20|20|熟悉了python的用法|
|2|422|689|15|35|学习了前端设计|
|3|481|1170|33|68|前端设计加深|