zoukankan      html  css  js  c++  java
  • 结对。。。开发。。。

    一、题目与要求

    题目:

      返回一个整数数组中最大子数组的和。

    要求:

      入一个整形数组,数组里有正数也有负数。
      数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
      求所有子数组的和的最大值。要求时间复杂度为O(n)。

    结对编程要求:

      两人结对完成编程任务。
      一人主要负责程序分析,代码编程。
      一人负责代码复审和代码测试计划。
      发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)。(截止到周四3月19日24:00)

    二、设计思路

          题目要求是要返回一个整数数组中最大子数组的和,一开始我跟黄亚萍同学看了好半天才读明白这道题目的意思

          大致分为这几层来编程实现 

          1、执行输入数组,包括自行输入数值个数以及数值大小

          2、分别编程实现求得相同整数数量的数组的和,并比较大小。可分别求得每个相同整数值的数组的最大值。

          3、编程实现比较不同整数值的数组的最大值

    三、源代码

     1 #include"iostream.h"
     2 # define N 100
     3 int sum1(int k,int a[],int number)
     4 {
     5     int x=0;
     6     for(int i=k;i<=number+k-1;i++)    //数组维数为number
     7     {
     8         x=x+a[i];
     9     }
    10     return x;
    11 }
    12 int Largest(int list[],int length)
    13 {
    14     int sum[N],max1[N];
    15     int i,max;
    16     for(i=1;i<=length;i++)       //元素个数为i+1
    17     {    
    18         cout<<"子数组中元素的个数数为"<<i<<"时,子数组的和的最大值为";
    19         for(int j=1;j<=length-i+1;j++)   //子数组的第j个元素,求最大值
    20         {
    21             sum[j]=sum1(j,list,i);
    22             if(sum[j]>=max1[i])
    23             {
    24                 max1[i]=sum[j];
    25             }
    26         }
    27         cout<<max1[i]<<endl;
    28     }
    29 
    30     max=max1[1];
    31     for(int k=1;k<=length;k++)
    32     {
    33             if(max1[k]>=max)
    34             {
    35                 max=max1[k];
    36             }
    37     }    
    38     return max;
    39 }
    40 
    41 int main(int argc, char* argv[])
    42 {
    43     int i,number,max;
    44 
    45     cout<<"输入这组数的个数:";
    46     cin>>number;
    47     cout<<endl;
    48     int list[N];
    49     int p;
    50     cout<<"输入这组数:"<<endl;
    51     for(i=1;i<=number;i++)
    52     {
    53         cout<<""<<i<<"个数为:";
    54         cin>>list[i];
    55         cout<<endl;
    56     }
    57     cout<<"最大值为:"<<Largest(list,number)<<endl;
    58     cout<<endl;
    59     return 0;
    60 }
     

    四、结果截图

     

    五、合作中的过程、体会以及如何解决冲突(附结对开发的工作照)

        因为可爱的王老师把我弄到第一排,所以很有幸第一次的结对开发不是跟舍友 而是跟美女同学。。。就是黄亚萍同学啦~~因为我的编程比较垃圾,C学的一般般 加上黄亚萍同学人比较好让着我,所以这次是黄亚萍同学负责重要的驾驶员的工作,我负责领航员。对 就这样。

        再就是体会的话,结对真的有好处,尤其是连题目看半天才能看的懂的情况下,有同学一起商量着来可以很快把题目理解,并能够在一起商量着构思解决思路,具体编程实现由黄亚萍同学一手包办,我主要是跟黄亚萍同学一起构思编程实现的思路,以及最后的调试之类的工作。

        至于冲突,貌似木有。。两个人结对开发的效率对于我来说真的提高了很多,以前一个函数弄错了都要想半天,现在有同学指点就很快就能弄明白了。解决冲突的话我觉得肯定是谁的办法有用就用谁的,相互尊重理解。

    照片~~

  • 相关阅读:
    HDU 1042 N!
    linux上安装wps办公软件
    《UNIX环境高级编程》笔记--环境变量
    【StatLearn】统计学习中knn算法实验(2)
    Asp.Net验证控件浅析
    斜率小于0的连线数量-归并排序
    Printk与sched_clock_init的一点分析
    【数字图像处理】使用kmeans算法对TrueColor图片进行优化
    将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程
    python中os/sys/platform模块区别
  • 原文地址:https://www.cnblogs.com/gaiiiiiiii/p/4347003.html
Copyright © 2011-2022 走看看