• 软件工程第二次作业


                                                   

     

    博客信息

    沈阳航空航天大学计算机学院2020软件工程作业
    作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/10583
     课程目标 熟悉一个“高质量”软件的开发过程
      作业目标 单元测试练习

     

     

     

     

    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。

    2.具体要求

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

    3.思路

      1、定义两个变量,一个用来存储之前的累加值,一个用来存储当前的最大和。遍历数组中的每个元素,假设遍历到第i个数时如果前面的累加值为负数或者等于0,那对累加值清0重新累加,把当前的第i个数的值赋给累加值。如果前面的累加值为正数,那么继续累加,即之前的累加值加上当前第i个数的值作为新的累加值。
      2、判断累加值是否大于最大值,如果大于最大值,则最大和更新;否则,继续保留之前的最大和。

    4.代码

      https://github.com/ld835/https-github.com-lidong/blob/master/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E7%AC%AC%E4%BA%8C%E6%AC%A1%E4%BD%9C%E4%B8%9A

    5.运行结果

      

    6.判定条件覆盖用例

     

    • 测试用例一:{-1,-1},路径ace
    • 测试用例二:{-1,11,-1},路径acd
    • 测试用例三:{2,-1},路径abe
    • 测试用例四:{2,3},路径abd

    7.工作记录

    项目 记录结果
    日期 04-07
    开始时间 14:00
    结束时间 16:40
    编码行数 11
    错误数量 0
  • 相关阅读:
    c++可调用对象使用示例
    c++ 线程绑定到cpu指定核心
    const在*左边和*右边的区别
    linux c 根据程序名获取进程号
    多线程程序获取进程号和线程号
    虚函数中的默认参数
    ElasticSearch常用查询
    windows10安装windows版Redis
    20220319 14:45:10
    20220320 08:00:06
  • 原文地址:https://www.cnblogs.com/Ldblog12/p/12643644.html
Copyright © 2020-2023  润新知