合作编程

一、要求

1、题目:

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

2、要求:

    输入一个整形数组,数组里有正数也有负数。

    数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

    求所有子数组的和的最大值。要求时间复杂度为O(n)。 

3、结对开发要求: 

    两人结对完成编程任务。

    一人主要负责程序分析,代码编程。

    一人负责代码复审和代码测试计划。

   发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)。   

二、设计思路

定义数组,存放输入的数和数组分组后各组的和。数组的分组随机产生,即从输入的第一个数开始,每次将连续的n个数存进数组,n为随机数,直到10个数全部分完。计算各分组的和,找出最大值。

三、程序代码

 

 1 #include<iostream.h>
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 #include<time.h>
 5 void main()
 6 {
 7     int yuan[10],he[10]={0,0,0,0,0,0,0,0,0,0}; //yuan数组是存放数据的,he数组是存放每个分数组的和
 8     int i,j,ra,p=0,sum=0,max;                  //ra是随机数
 9     for(i=0;i<10;i++)
10     {
11         cout<<"请输入第"<<i+1<<"个数:"<<endl;
12         cin>>yuan[i];
13     }
14     srand((unsigned)time(NULL));
15     i=0;
16     while(sum<=10)                            //对数组进行分组
17     {
18         cout<<""<<i+1<<"个分组:";
19     //    srand((unsigned)time(NULL));
20         ra=rand()%4+1;                       //生成一个1~4的随机数
21         if((sum+ra)>10)
22         {
23             ra=10-sum;
24         }
25         for(j=0;j<ra;j++)                    //计算分组的和
26         {
27             he[i]=he[i]+yuan[p];
28             cout<<yuan[p]<<",";
29             p++;
30         }
31         cout<<"(ra:"<<ra<<")"<<endl;
32         if((sum+ra)==10)
33         {
34             break;
35         }
36         sum=sum+ra;
37         i++;
38     }
39     max=he[0];
40     p=1;
41     for(j=0;j<=i;j++)                       //找出最大值
42     {
43         if(max<he[j])
44         {
45             p=j+1;
46             max=he[j];
47         }
48     }
49     cout<<""<<p<<"个分数组之和的最大值为:"<<max<<endl;
50 }

 

 

 

截图:

 

 

1.测试数据:-1,-5,-2,-6,-5,-7,-8,-20,-16,-35

截图:

 

2.测试数据:9,9,9,9,9,9,9,9,9,9

截图:

 

3.测试数据:165469466,42167552167,1626592627,897895178,8975217524,678552464,6777777467,6571467217657,17652642727,45897596524975

截图:

 

五、心得体会

通过结对编程我体会到了交流合作的重要性。我们工作的流程大致是这样的:先在一起商量题目,讨论编写的方法,交换意见。每个人都说出自己的想法,两人的意见或者取更好的,或者综合起来。商量好大体思路后我负责编程,他负责复审测试。最后又在一起商量确定最终程序。

过程中有出现不同想法的地方,我们通过交流比较,很快就确定了解决方案,没有因分歧停止。因为把想法比较了,采用好的想法,对方也很赞同,所以没有矛盾产生。这次我感受到了合作的好处,结对开发提高了效率,可以综合两个人的想法,也学会了在合作中交流,为进行大的团队合作打下了基础。

同时我也在交流过程中学到了很多以前不知道的小知识,三人行必有我师,闭门造车不如与人交流。两个人一起编程比起一个人程序的可靠性更加高,速度更加快,而且从中获得的东西那是孤军奋战所无法比拟的。

 

合作者合照(柴珏辉、邓锐)(名字按拼音排序)

 

posted on 2015-03-18 17:10  菠萝吃么  阅读(472)  评论(0编辑  收藏  举报

导航