软件工程(2019)第三次个人作业

1.题目要求

```
题目(1):最大连续子数组和(最大子段和)
背景
问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n
例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。
-- 引用自《百度百科》

<font color=blue size=5>2. 具体要求</font>
<font color=black size=3>
* (1) 请从上述两个题目中根据个人实力任选一题,要求写出可运行的完整代码提交至GitHub或者Coding.net系统中,并将代码地址附到博客内
* (2) 请从语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖五个覆盖标准中(条件组合覆盖难度较大,鼓励尝试,但请谨慎选择),任选一个标准设计测试用例
* (3) 请利用自动测试工具对程序进行测试
* (4) 请将程序运行结果和自动测试分析结果截图附到博客中</font>

<font color=blue size=5>3. 代码</font>
int sum(int y[], int b)
 {
int  st=0,sd=0;
 for(int i = 0;i < b;i++)//(-2, 11, -4, 13, -5, -2) 
{
st = st + y[i];
if (st < 0)
{
 st = 0;
}
if(st>sd)
sd=st;
 }
return sd;
 }

<font color=blue size=5>4. 流程图</font>
![](https://img2018.cnblogs.com/blog/1645165/201904/1645165-20190419094414653-1831762186.png)


<font color=blue size=5>5. 单元测试</font>
<font color=black size=3>本次测试使用条件覆盖测试用例
1>i>=b,i<b;
2>st<0,st>=0;
3>st>sd,st<=sd;
测试用例(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)
(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,-1,-4,-3,-5,-2)</font>
<font color=blue size=5>6. 单元测试结果</font>
![](https://img2018.cnblogs.com/blog/1645165/201904/1645165-20190419093937910-95115226.png)
![](https://img2018.cnblogs.com/blog/1645165/201904/1645165-20190419154414834-8264604.png)
<font color=blue size=5>7.运行结果</font>
![](https://img2018.cnblogs.com/blog/1645165/201904/1645165-20190419155102136-1688456317.png)
![](https://img2018.cnblogs.com/blog/1645165/201904/1645165-20190419155112566-1043595122.png)
<font color=blue size=5>8.coding.net代码地址</font>
https://dev.tencent.com/u/dtid_a6927f71a088b937/p/qiuzuidazishuhe/git/blob/master/%E6%BA%90.cpp
原文地址:https://www.cnblogs.com/tyy1634010102/p/10734102.html