2020年软件工程作业2
博客信息|沈阳航空航天大学计算机学院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。
二、代码
三、程序运行结果
![](https://img2020.cnblogs.com/blog/1975714/202004/1975714-20200402202422958-1324767620.png)
四、选择测试工具
本次作业利用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));
}
};
}
五、测试用例
![](https://img2020.cnblogs.com/blog/1975714/202004/1975714-20200402205353787-1305589105.png)
六、自动测试
测试成功,时间1毫秒
![](https://img2020.cnblogs.com/blog/1975714/202004/1975714-20200402204508263-765040902.png)
七、工作记录
项目|记录结果
:---😐:---😐:---😐:---:
日期|2020年04月02日
开始时间|08:23
结束时间|21:03
编码行数|44
错误次数|2
错误1|输入数据全部小于0时,结果不为0
错误1修改时间|3分左右
错误2|运用VS2019单元测试时,发生大量LNK2005错误
错误2修改时间|30分钟左右
八、心得
本次作业使我学会了使用Visual Studio 2019的单元测试功能,又掌握了一个小技巧,也进一步学会使用了Markdown。