• 软件工程课堂练习--结对初体验


    结队人员 信1201-1班 曹美娜 袁亚姣

    一、题目要求与结对开发要求

    1、题目:
         返回一个整数数组中最大子数组的和。
    2、要求:
        输入一个整形数组,数组里有正数也有负数。
        数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
        求所有子数组的和的最大值。要求时间复杂度为O(n)。 
    3、结对开发要求 
        两人结对完成编程任务。
        一人主要负责程序分析,代码编程。
        一人负责代码复审和代码测试计划。
       发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)。
    二、程序设计思想
      该程序的主要问题是如何找到所有的子数组并求和,我们采用的方法是依次找出包含数组中第i个元素的所有连续的子数组,求出每次的最大值保存在另外一个数组中,最后求出该数组中的最大值,图解步骤如下:
     用户输入数组:(a1,a2,a3,a4)
    包含第一个元素的所有子数组集合{(a1),(a1,a2),(a1,a2,a3),(a1,a2,a3,a4)} 
    包含第二个元素的所有子数组集合{(a2),(a2,a3),(a2,a3,a4)}
    包含第三个元素的所有子数组集合{(a3),(a3,a4)}
    包含第四个元素的所有子数组集合{(a4)}
    依次求出以上集合各数组元素和的中最大值
    三、程序源代码
     1 //程序开发者:曹美娜、袁亚姣
     2 //程序开发时间:2015/3/18
     3 
     4 #include "stdio.h"
     5 #include "stdafx.h"
     6 #define N 1000 
     7 int compare( int arry[],int length)
     8 {
     9     int max[N],max1;
    10     for(int j=0;j<length;j++)
    11     {
    12         int sum=0;
    13         max1=-12345;
    14         for(int i=j;i<length;i++)
    15         {
    16             sum=sum+arry[i];
    17             if(sum>=max1)
    18                 max1=sum;
    19         }
    20         max[j]=max1;
    21         printf("包含数组中第%d个数的所有子数组中和最大的值为:%d
    ",j+1,max[j]);
    22     }
    23     int fmax=max[0];
    24     for(int i=0;i<length;i++)
    25     {    
    26         if(max[i]>fmax)
    27             fmax=max[i];
    28     }
    29     printf("所有子数组的和的最大值为:%d
    ",fmax);
    30     return 0;
    31 }
    32 int main(int argc, char* argv[])
    33 {
    34     int arry[N];
    35     int length;
    36     printf("请输入要比较整数的个数:");
    37     scanf("%d",&length);
    38     printf("请输入整数");
    39     for(int i=0;i<length;i++)
    40     {
    41         scanf("%d",&arry[i]);
    42     }
    43     compare(arry,length);
    44     return 0;
    45 }
    View Code

    四、运行结果

    五、心得体会

      这次结队开发体会很多,我们小组就2个人,由于程序简单,所以没有代码分工,主要就是一人编程一人测试检查;开始我们想到的不是以上的实现方法,后来觉得循环次数太多,而且拓展性不高,然后又重新讨论方法;在编程过程中我绝得我俩配合很默契,效率也很高,有时我丢落“;”号或起变量名不友好时,我的小伙伴总是能及时提醒,当遇到逻辑错误时,我俩经过讨论也最终能将问题解决;很多人绝得团队合作自己的想法会受局限,可是通过这次的经验我觉得要有正确的方式方法对待自己的伙伴,当进入编程气氛时,你会肯定会感觉到效率的提高,2个人的想法总该比一个人的想法多。

    最后po工作合照一张

     
      
  • 相关阅读:
    flask项目--认证方案Json Web Token(JWT)
    分布式设计-集群
    分布式设计-哨兵
    分布式设计--数据库主从
    leetcode 221 Maximal Square
    LeetCode222 Count Complete Tree Nodes
    在windows 、linux下读取目录下所有文件名
    leetcode 229 Majority Element II
    leetcode 233 Number of Digit One
    leetcode 238 Product of Array Except Self
  • 原文地址:https://www.cnblogs.com/caomeina/p/4346932.html
Copyright © 2020-2023  润新知