作業公共資訊區
部落格資訊 | 沈陽航空航天大學計算機學院2020軟體工程作業 |
---|---|
作業要求 | https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/10583 |
課程目标 | 熟悉一個“高品質”軟體的開發過程 |
作業目标 | 單元測試練習 |
2、閱讀材料
- 請閱讀鄒欣老師的這篇文章和建構之法第1~3章内容,尤其是第2章效能分析和第3章代碼規範部分
- 回顧和複習課堂講授的單元測試部分内容
3、題目要求
-
題目(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。
-- 引用自《百度百科》
4、代碼連接配接
代碼請點這裡呀!!!
5、運作結果

6、流程圖
7、測試結果
8、判斷條件覆寫
判定條件覆寫,即我們設計的測試用例可以使得判斷中每個條件所有的可能取值至少執行一次(條件覆寫),同時每個判斷本身所有的結果也要至少執行一次(判定覆寫)。如圖,若要完成,則必須走的路徑是a,bce,bde,ace
這些情況出現。現在可以設計如下用例:
序号 | 長度 | 數組 | 理論輸出 | 實際輸出 | 結果 |
---|---|---|---|---|---|
1 | -1 | { -2,11,-4,13,-5,-2 } | 通過 | ||
2 | 6 | 20 |
9、測試代碼
#include "pch.h"
#include "CppUnitTest.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
int N = -1;
int proSum = 0, maxSum = 0, test = 0;
int arr[6] = { -2,11,-4,13,-5,-2 };
for (int i = 0; i < N; i++)
{
if (proSum < 0)
proSum = arr[i];
else
proSum = proSum + arr[i];
if (maxSum < proSum)
maxSum = proSum;
}
Assert::AreEqual(maxSum, test);
}
TEST_METHOD(TestMethod2)
{
int N = -1;
int proSum = 0, maxSum = 0, test = 20;
int arr[6] = { -2,11,-4,13,-5,-2 };
for (int i = 0; i < N; i++)
{
if (proSum < 0)
proSum = arr[i];
else
proSum = proSum + arr[i];
if (maxSum < proSum)
maxSum = proSum;
}
Assert::AreEqual(maxSum, test);
}
};
}
10、工作記錄
項目 | 記錄結果 |
---|---|
日期 | 2020/4/3 |
開始時間 | 12:30 |
結束時間 | 16:00 |
編碼行數 | 37 |
錯誤數量 |