结对开发

一、题目与要求

题目:

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

要求:

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

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

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

结对编程要求:

  两人结对完成编程任务。

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

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

  发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)。(截止到周四3月19日24:00)

二、设计思路

两人共同阅读题目了解到最大子数组的概念是数组中连续的一个或多个整数组成的一个数字,注意到几个关键字分别是:连续,一个或多个,整数;

要求最大值结果,故定义返回最大值的函数Largest(),将数组分别以1,2,3,4,5为单位将数组划分成若干个子数组,分别调用Largest()函数求最大值,并将结果保存到新的数组b中,再次调用Largest()函数求得b数组中的最大值,即是所要求的结果。

三、源代码

#include <iostream.h>
int b[5]={0};
int Largest(int list[],int length)
{

	int i,max=list[0];//初始化的时候要赋值,

	for(i=0;i<=(length-1);i++)
	{
		if(list[i]>max)
		{
			max=list[i];
		}
	}
	return max;
}

int main(void)
{
	int a[5];
	cout<<"请输入5个整数,中间用空格隔开:"<<endl;
	for(int j=0;j<5;j++)
	{
		cin>>a[j];
	}
	cout<<"连续1个分组最大结果:"<<Largest(a,5)<<endl;
	b[0]=Largest(a,5);
	for(int i=0;i<4;i++)
	{
		b[i]=a[i]+a[i+1];
	}
	cout<<"连续2个分组最大结果:"<<Largest(b,4)<<endl;
	b[1]=Largest(b,4);
	for(i=0;i<3;i++)
	{
		b[i]=a[i]+a[i+1]+a[i+2];
	}
	cout<<"连续3个分组最大结果:"<<Largest(b,3)<<endl;
	b[2]=Largest(b,3);

	for(i=0;i<2;i++)
	{
		b[i]=a[i]+a[i+1]+a[i+2]+a[i+3];
	}
	cout<<"连续4个分组最大结果:"<<Largest(b,2)<<endl;
	b[3]=Largest(b,2);

	for(i=0;i<1;i++)
	{
		b[i]=a[i]+a[i+1]+a[i+2]+a[i+3]+a[i+4];
	}
	cout<<"连续5个分组最大结果:"<<Largest(b,1)<<endl;
	b[4]=Largest(b,1);

	cout<<"结果为:"<<Largest(b,5)<<endl;
	return 0;
}

  四、结果截图

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

(1)合作中的过程:我负责程序分析,代码编程;他负责代码复审和代码测试计划;

(2)体会:两个人如果能达到高度的切合,那么程序开发效率是很高的,但是高度切合的状态并不能持续理想中那样长的时间,一旦切合度低到一定的水平那么开发进度就会非常缓慢,甚至不如一个人开发更快,所有开发过程中要注意两个人的状态。还有就是,两个人的编程水平可能不一样,也很难说一样,所以如果碰见这样的情况时,领航员就要具备一种能力,那就是启发编程那个人的能力,让他能够发挥超常的水平,这很关键。

(3)如何解决冲突:过程中我们以2为单位分组的时候会产生几个结果的时候产生了冲突,我们用了具体的例子让他明白了是有4个结果。

时间: 2024-10-23 02:20:35

结对开发的相关文章

结对开发之返回一个二维整数数组中最大联通子数组的和

一.题目要求 输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n)题目:返回一个二维整数数组中最大子数组的和 二.解题思路 先对二维数组进行了重构,形成一个环状二维数组,然后再用求二维数组子矩阵最大和的方法求得最终结果. 三.程序代码 2 #include<iostream.h> 3 int main(int argc, char* argv[]

结对开发——返回整数数组最大子数组和2

返回整数数组最大子数组和2 为了实现“敏捷开发”的目的,老师让我们采取“迭代”的方法进行项目的开发,这不,对于周一的求最大子数组和又有了新的要求,如下: 1.延续上次的要求,这里不再赘余… 2.如果数组A[0]……A[j-1]首尾相连,允许A[i-1],……A[n-1],A[0]……A[j-1]之和最大: 3.同时返回最大子数组的位置: 4.要求程序必须能处理1000 个元素,且每个元素是int32 类型的. 一.实验设计思路 首先实现的是数组首尾相连,先存入数组,再将原数组反向存储形成环形数组

结对开发5

题目:返回一个二维整数数组中最大子数组的和. 要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 一.设计思路 这一次,因为诸多原因,我两互

结对开发——求环形二维数组最大子矩阵和的问题

一.题目要求 输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n)题目:返回一个二维整数数组中最大子数组的和 二.解题思路 这次就在以前的基础上进行修改,先对二维数组进行了重构,形成一个环状二维数组,然后再用求二维数组子矩阵最大和的方法求得最终结果. 三.程序代码 1 #include "stdafx.h" 2 #include<i

软件工程课堂训练——结对开发之环数组最大和

一.题目及要求: 题目:返回一个整数数组中最大子数组的和 要求(新加):①如果数组A[0]...A[j-1]首尾相邻,允许A[i-1]...A[n-1],A[0]...A[j-1]之和最大:②同时返回最大子数组的位置. 结对人员:胡亚宝  焦燕 二.设计思路: 我们要解决两个问题:求出环数组中最大的子数组:并且定位出该子数组的位置,把它们的名称输出来.要解决这两个问题,我们从以下两个方面入手: ①求出最大子数组:将数组数值按顺序排好称为“一趟”,每求出一趟的最大子数组后,将第一个数值放到最后一个

结对开发体会

一,开发题目与要求: 题目:输入一个整数组,要求输出最大字数组的和. 要求:要求输入一个整数数组,可以有正有负 任意一个多个连续的整数为一个数组,求每一个字数组的和 要求输出最大数组的和,时间复杂度为O(n) 结对编程的要求: 两个人结对共同完成编程任务 一个人主要负责驾驶,即操作键盘负责代码的输入 一个人主要负责导航,即代码复审,思路探讨,程序测试检测 发表一篇两个人合作过程中的体会及如何解决问题的思路 二,设计思路: 两人共同阅读题目了解到最大子数组的概念是数组中连续的一个或多个整数组成的一

求一维数组的最大子数组1(结对开发)

题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n) 发表一篇博客文章讲述设计思想,出现的问题,可能的解决方案(多选).源代码.结果截图.总结. 结对开发的伙伴: 博客名:Mr.缪 姓名:缪金敏 链接:http://www.cnblogs.com/miaojinmin799/ 分析: 如果按照最笨的方法就是一个一个的比较先比较一个数的然后二个

结对开发(求二维首尾相接数组的最大子数组和)

一.题目要求 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 要求时间复杂度为O(n)题目:返回一个二维整数数组中最大子数组的和 一.设计思想 求环形二维数组最大子数组的和,可以转化为求一维数组最大子数组的和 我们有一个最初的二维数组a[n][n]找它的 最大子数组之和 1.我们先建立一个新的二维数组b[n][2*n-1], 2,这个新的二维数组就是将初始的二

软件工程课堂训练——结对开发之环状二维数组

一.题目及要求: 题目:返回一个整数数组中最大子数组的和 要求(新加):①输入一个二维整形数组,数组里有正数也有负数:②二维数组首尾相接,像一条首尾相接的带子一样. 结对人员:胡亚宝  焦燕 二.设计思路: 这个题目其实就是二维数组和环型数组的结合,要解决这个问题,将之前的两个问题融合一下即可. 首先解决求出二维数组中最大子数组的问题,然后沿用一维数组的方法,将第一列放到最后一列,在求出新的二维数组的最大子数组,依次求出各个二维数组的最大子数组. 三.部分源代码: 1 for (m=0;m<5;

软件工程课堂作业(四)——结对开发

一.题目及要求: 1.题目:返回一个整数数组中最大子数组的和. 2.要求: ①输入一个整形数组,数组里有正数也有负数:数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和:求所有子数组的和的最大值:要求时间复杂度为O(n). ②两人结对完成编程任务:一人主要负责程序分析,代码编程,一人负责代码复审和代码测试计划. 3.结对人员:胡亚宝 焦燕 二.设计思路: ①第一个方法,定义一个数组,将所有的子数组的和都求出来放到该数组中,再求最大值,输出.但是在编写过程中,我们发现如果用循环方式存放