博客信息 | 沈阳航空航天大学计算机学院2020软件工程作业 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/10583 |
课程目标 | 熟悉一个“高质量”软件的开发过程 |
作业目标 | 单元测试练习 |
一、题目
问题:给定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。
二、代码
三、程序运行结果
四、选择测试工具
本次作业利用Visual Studio 2019自带的单元测试工具进行单元测试,代码如下:
#include "pch.h"
#include "CppUnitTest.h"
#include"..最大连续子数组和Adda.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
Adda a;
int p1[5] = { 1,2,3,4,5 };
int p2[5] = { -1,-2,-3,-4,-8 };
int p3[5] = { -1,11,-4,13,-5 };
int num = 5;
Assert::AreEqual(0,a.cc(0,p1));
Assert::AreEqual(0, a.cc(num, p2));
Assert::AreEqual(20, a.cc(num, p3));
}
};
}
五、测试用例
六、自动测试
测试成功,时间1毫秒
七、工作记录
项目 | 记录结果 |
---|---|
日期 | 2020年04月02日 |
开始时间 | 08:23 |
结束时间 | 21:03 |
编码行数 | 44 |
错误次数 | 2 |
错误1 | 输入数据全部小于0时,结果不为0 |
错误1修改时间 | 3分左右 |
错误2 | 运用VS2019单元测试时,发生大量LNK2005错误 |
错误2修改时间 | 30分钟左右 |
八、心得
本次作业使我学会了使用Visual Studio 2019的单元测试功能,又掌握了一个小技巧,也进一步学会使用了Markdown。