• 计算与软件工程作业三


    作业要求 作业要求链接
    我在这个课程的目标 学习软件工程的基本操作,能够自行完成作业,并能将软件工程与其他课程联系起来
    此作业在哪个具体方面帮我实现目标 看完相关的博文链接后,学习单元测试的操作,以及如何写单元测试的代码,遇到问题时,在网上寻找各种解决方案,向同学请教等
    参考文献 在Visual Studio 2017 上对 C++ 进行单元测试 , 如何编写C与C++单元测试代码
    gitee 链接 gitee仓库链接

    作业正文

    单元测试运行截图
    图片名称
    程序代码

    #include <stdio.h>
    #include<iostream>
    #include<vector>
    using namespace std;
    
    int getmax(int data[], int length)
    {
    	int temp = 0, start = 0, end = 0, i = 0, num = 0, max = 0, flag = 0;
    	while (i < length)
    	{
    		if (data[i] > 0)
    		{
    			temp = i;
    			while (temp < length)
    			{
    				num += data[temp];
    
    				if (num < 0)   //当num<0时退出这个循环
    				{
    					num = 0;
    					i = temp + 1;
    					break;
    				}
    
    				if (num > max) //不加=说明若存在多个最大子数组时取第一个,加上=说明取最后一个
    				{
    					start = i;
    					max = num;
    					end = temp;
    					//cout<<i<<" "<<temp<<endl;
    
    				}
    				temp++;
    			}
    			if (temp >= length) //当temp已经循环到数组最后一位,则结束整个外层循环
    				break;
    		}
    		else
    		{
    			i++;
    			flag++;  //用来记录负数出现的次数
    		}
    	}
    	if (flag == length) //数组全为负数的情况
    	{
    		int max = data[0];
    		for (i = 1; i < length; i++)
    		{
    			if (data[i] > max)
    			{
    				max = data[i];
    			}
    		}
    		return max;
    	}
    
    	for (i = start; i <= end; i++)  //打印最大子数组
    		cout << data[i] << " ";
    	cout << endl;
    	return max;
    }
    //更简单的写法,没有输出下标
    int findmax(vector<int> ve)
    {
    	if (ve.size() == 0)
    		return 0;
    	int i = 0, sum = 0, great = INT_MIN;
    	for (i = 0; i < ve.size(); i++)
    	{
    		if (sum <= 0)
    			sum = ve[i];
    		else
    			sum += ve[i];
    		if (sum > great)
    			great = sum;
    	}
    
    	return great;
    }
    
    int main()
    {
    	int data[] = { -5,-4,-3,-2,-1,1,2,3,4,5 };
    	int length = sizeof(data) / sizeof(int);
    	//int max = getMaxValue(data,length);
    	cout << getmax(data, length) << endl;
    	return 0;
    }
    

    单元测试代码

    #include "pch.h"
    #include "CppUnitTest.h"
    #include "D:Max_SubArrayMax_SubArrayMax_SubArray.cpp"
    
    using namespace Microsoft::VisualStudio::CppUnitTestFramework;
    
    namespace MaxSubArryTest1
    {
    	TEST_CLASS(MaxSubArryTest1)
    	{
    	public:
    
    		TEST_METHOD(TestMethod1)
    		{
    			int data[] = { -5,-4,-3,-2,-1,1,2,3,4,5 };
    			int length = sizeof(data) / sizeof(int);
    			Assert::AreEqual(15, getmax(data, length));
    
    		}
    	};
    }
    
    
    图片名称
  • 相关阅读:
    pgfplots画二维图真的很方便,多例比较
    LaTeX技巧206:使用gather输入多行公式的技巧
    LaTeX技巧205:使用split输入多行公式技巧
    LaTeX技巧207:使用align环境输入多行公式的技巧
    LaTeX技巧24:LaTeX常用命令集锦
    CTEX
    Latex常用指令学习
    LATEX数学公式基本语法
    LaTeX使用技巧
    C 命令行参数
  • 原文地址:https://www.cnblogs.com/1249575119jh/p/12450234.html
Copyright © 2020-2023  润新知