zoukankan      html  css  js  c++  java
  • 软件工程第二次作业

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

    一、编程题目:最大连续子数组和(最大子段和)

    给定n个整数(可能为负数)组成的序列a1,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
    例如,当(a1,a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。

    二、代码地址

    代码

    三、程序运行结果

     

    四、判定/条件覆盖测试

                                      采用判定/条件覆盖,应执行路径ac.abd.abe.

    abe : n = 6 , a[]= { -2 , 11 , -4 , 13 , -5 , -2 } , max = 20.

    abd : n = 5 , a[] = { 2,7 , -5 , 1 , -1 } , max = 9.

    ac : n = 4 , a[] = { -2 , -3 , -4 , -5 } , max = 0.

    五、选择测试工具

    本次作业利用Visual Studio 2019自带的单元测试工具进行单元测试,代码如下:

    #include "pch.h"
    #include "CppUnitTest.h"

    using namespace Microsoft::VisualStudio::CppUnitTestFramework;

    int Max_num(int* arr, int n)
    {
    int i, yu = 0, yi = 0, han = 0;
    for (i = 0; i < n; i++)
    {
    if (arr[i] > 0)
    yu = 1;
    }
    if (yu == 0)
    yi = 0;
    else
    {
    for (i = 0; i < n; i++)
    {
    han += arr[i];
    if (han < arr[i])
    han = arr[i];
    if (yi < han)
    yi = han;
    }
    }
    return yi;
    }
    namespace UnitTest3
    {
    TEST_CLASS(UnitTest3)
    {
    public:
    TEST_METHOD(TestMethod1)
    {
    int arr[] = { -2,11,-4,13,-5,-2 };
    int n = 6;
    int k;
    k = Max_num(arr, n);
    Assert::AreEqual(k, 20);
    }
    TEST_METHOD(TestMethod2)
    {
    int arr[] = { 2,7,-5,1,-1 };
    int n = 5;
    int k;
    k = Max_num(arr, n);
    Assert::AreEqual(k, 9);
    }
    TEST_METHOD(TestMethod3)
    {
    int arr[] = { -2,-3,-4,-5 };
    int n = 4;
    int k;
    k = Max_num(arr, n);
    Assert::AreEqual(k, 0);
    }
    };
    }

    六、自动测试结果

    测试成功,测试时间为1毫秒

    七、工作记录

    工作记录表

      
    项目 记录工作
    日期 2020年4月5日
    开始时间 05:30
    结束时间 15:56
    源编码行数 50
    测试编码行数 59
    错误次数 3
    错误1 scanf在vs里出现报错
    修改时间 3分钟
    错误2 输入均为负数时输出乱码
    修改时间 20分钟
    错误3 单元测试与项目文件未连接
    修改时间 40分钟

    八、心得体会

    • 这次的作业让我体会到了编程的乐趣,我学会了如何进行单元测试,如何测试代码。并且在最后通过同学们的帮助,我对代码的理解更深入更了解了。我希望我可以通过自己的努力,在今后的学习过程中更好更快的编出自己理想的代码。
  • 相关阅读:
    LeetCode -- 合并区间
    windows + PyCharm安装第三方库libsvm失败的解决方案
    LeetCode--在排序数组中查找元素的第一个和最后一个位置
    LeetCode--搜索旋转排序数组
    LeetCode--单词拆分
    LeetCode--合并K个有序链表
    LeetCode--括号生成
    2015.12.21日官方最新公告!中国骇客云安全响应平台正式上线啦!
    尊敬的朋友们大家好,最新公告!寒龙联盟上线了。
    中国寒龙出品,易语言病毒之末日毁灭杀毒病毒源码,欢迎分享订阅我们的网站,我们会及时发布相关教学的。
  • 原文地址:https://www.cnblogs.com/yyh-0607/p/12655435.html
Copyright © 2011-2022 走看看