体验结对开发

一.实验题目

输入一个含N个整数(有正数也有负数)的数组,求数组中最大子数组的和。

二.实验思路

程序分成两个部分:

(1):找到数组中所有可能的子数组的和;

    采用遍历的方法,假如数组father[]中有5个数a,b,c,d,e,

   第一步,求a,a+b,a+b+c,a+b+c+d,a+b+c+d+e;

   第二步,求b,b+c,b+c+d,b+c+d+e;

   第三步,求c,c+d,c+d+e;

   第四步,求d,d+e;

   第五步,求e。

   通过两层循环来实现。

   然后将这些和依次存入另一个数组son[]中。

(2):比较数组son[]中的值,然后输出最大的。

三.实验代码

 1 // ketang4.cpp : 定义控制台应用程序的入口点。
 2 //
 3
 4 #include "stdafx.h"
 5 #include "iostream"
 6 using namespace std;
 7
 8
 9 /*确定求和存储数组元素*/
10 void Son(int father[],int son[],int length)
11 {
12      int add;                                                    //定义求和变量
13      int count=0;                                                //统计数组元素个数
14      for(int i=0;i<length;i++)
15      {
16          add=0;
17          for(int j=0;j<length-i;j++)
18          {
19              add=add+father[i+j];
20              son[count+j]=add;
21          }
22          count=count+length-i;
23      }
24 }
25
26 /*找到最大的子数组的和*/
27 void Max(int son[],int num)
28 {
29     int max=son[0];
30     for(int i=0;i<num;i++)
31     {
32         if(max<son[i])
33         {
34             max=son[i];
35         }
36     }
37     cout<<max<<endl;
38 }
39
40 /*主函数*/
41 int main()
42 {
43     int length,num;                                                //定义原始数组长度length,求和存储数组长度num
44     cout<<"请输入数组元素个数:";
45     cin>>length;
46     int* father=new int[length];                                //定义原始数组
47     num=length*(length+1)/2;
48     int* son=new int[num];                                        //定义求和存储数组
49     cout<<"请输入原始数组数据:"<<endl;
50     for(int i=0;i<length;i++)
51     {
52         cin>>father[i];
53     }
54     Son(father,son,length);
55     cout<<"最大子数组的和为:";
56     Max(son,num);
57     return 0;
58 }

四.运行结果

五.心得体会

首先我很开心能和世通一起写程序!

我觉得结对开发是一种很好的学习编程的方法,两个人一起做,就不会因为一个人因为暂时没有想法就一推再推,而是都会积极的提供自己的意见。世通的思路很好,按他的方法写出的代码不仅可以实现求特定长度数组的最大字数组的和,还可以自定义数组的长度。虽然程序很短,但体会到编程的过程是很开心的。

六.合影

时间: 2024-10-07 05:29:41

体验结对开发的相关文章

体验结对开发的乐趣

结对人员:信1201-1班韩雪东.信1201-2班高扬 一.题目要求与结对开发要求 1.题目: 返回一个整数数组中最大子数组的和. 2.要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 3.结对开发要求 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照).(

体验结对开发的乐趣(5)--(首尾相连的二维数组求最大子数组和的问题)

结对伙伴:信1201-2班高扬.信1201-1班韩雪东 一.题目要求与设计思想 题目要求:在上一次的基础上把数组变为二维数组,然后首尾相接,形成连环,然后求和最大的子数组: 设计思想:一维数组首尾相连的问题已经得到解决,二位数组求和最大的子数组的问题也已经解决了,就是把这两个程序思想融在一起,然后在短短的时间内就完成了这次课堂项目. 二.源代码 1 // erweishuzuqiuzuida.cpp : Defines the entry point for the console applic

体验结对开发的乐趣(6)--(电梯调度问题)

一.题目与设计思路 1.题目: 石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停.信1201-1班的张一东觉得在每层都停觉得不耐烦.由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层.在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层.问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少. 2.设计思路: 按照老师讲解的一些想法,首先确定一层上的人数,然后确定每个人物的楼层,通过计算得到所需爬的楼层的总数,然后通过一一的比较

结对开发5

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

电梯调度 结对开发项目

一:项目名称: 电梯调度模拟程序 二:项目参与人员: 周其范 胡宝月 三:项目开发语言和工具: Java语言和eclipse,涉及内容:面向对象技术.基于Swing的图形化用户界面.多线程启动和休眠 四:问题陈述: 1.电梯要正常运行,能响应内部.外部按钮 2.要怎样选择哪部电梯电梯,使乘坐者和电梯的距离更近,已达到更省电.更快.更经济. 3.同一部电梯可以响应多位乘客的请求 五:任务需求: 1.要模拟一栋6层楼中两部电梯的调度,模拟乘坐电梯的过程. 2.乘坐者在最低层楼:只能乘坐电梯上楼,在电

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

一.题目要求 输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为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 类型的. 一.实验设计思路 首先实现的是数组首尾相连,先存入数组,再将原数组反向存储形成环形数组

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

一.题目要求 输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为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]之和最大:②同时返回最大子数组的位置. 结对人员:胡亚宝  焦燕 二.设计思路: 我们要解决两个问题:求出环数组中最大的子数组:并且定位出该子数组的位置,把它们的名称输出来.要解决这两个问题,我们从以下两个方面入手: ①求出最大子数组:将数组数值按顺序排好称为“一趟”,每求出一趟的最大子数组后,将第一个数值放到最后一个