计算机与软件工程 第三次作业

作业要求在哪 https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10454)
我在这个课程的目标是 练习编程,进行单元测试
此作业在哪个具体方面帮我实现目标 编程计算,测试
其他参考文献 (https://www.cnblogs.com/xinz/archive/2011/11/20/2255830.html)(https://www.cnblogs.com/SivilTaram/p/software_pretraining_cpp.html)
作业正文 (https://gitee.com/gardonD/dl-git1.git)

代码

#include<iostream>
#include<cstdlib>
using namespace std;
int getmax(int array[],int length)
{
    int sum = 0;    
    int max = 0;   
    int startIndex = 0; 
    int endIndex = 0;   
    int newStartIndex = 0;  
    for (int i = 0; i < length; i++)    
    {
        if (max < 0)  
        {
            max = array[i];    
            newStartIndex = i;  
        }
        else
        {
            max += array[i];   
        }
        if (sum < max) 
        {
            sum = max; 
            startIndex = newStartIndex;
            endIndex = i;  
        }
    }
    return max;
}

int getstartIndex(int array[],int length)
{
    int sum = 0;    
    int max = 0;   
    int startIndex = 0; 
    int endIndex = 0;   
    int newStartIndex = 0;  
    for (int i = 0; i < length; i++)    
    {
        if (max < 0)   
        {
            max = array[i];    
            newStartIndex = i;  
        }
        else
        {
            max += array[i];   
}
        if (sum < max) 
        {
            sum = max; 
            startIndex = newStartIndex; 
            endIndex = i;   
        }
    }
    return startIndex;
}
int getendIndex(int array[],int length)
{
    int sum = 0;    
    int max = 0;   
    int startIndex = 0; 
    int endIndex = 0;   
    int newStartIndex = 0;  
    for (int i = 0; i < length; i++)    
    {
        if (max < 0)   //如果max < 0;
        {
            max = array[i];    
            newStartIndex = i;  
        }
        else
        {
            max += array[i];   
        }
        if (sum < max) 
        {
            sum = max; 
            startIndex = newStartIndex; 
            endIndex = i;   
        }
    }
    return endIndex;
}


int main()
{
    int length,i=0;
    cout<<"请输入个数:";
    cin>>length;
    cout<<"请输入数组:";
    int array[1000]={0};
    for(i=0;i<length;i++)
    {
        cin>>array[i];
    }
    cout<<"最大子数组的和为:"<<getmax(array,length)<<endl;
    cout<<"最大子数组起始下标:"<<getstartIndex(array,length)<<endl;
    cout<<"最大子数组结束下标:"<<getendIndex(array,length)<<endl;
    system("pause");
    return 0;
}

运行截图

单元测试

#include "stdafx.h"
#include "CppUnitTest.h"
#include "h2.cpp"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;

namespace UnitTest2
{		
	TEST_CLASS(UnitTest1)
	{
	public:
		
		TEST_METHOD(TestMethod1)
		{
			// TODO: 在此输入测试代码
			int a[]={-32,-10,33,-23,32,-12,41,-12,1,3,5,-98,70,-21,10,-9,61};
            Assert::AreEqual(111,getmax(a,17));
		}

	};
}

测试截图


小结

单元测试在配置过程中遭遇了瓶颈,test一直无法打开源文件,原因是文件配置路径没设置,在同学的帮助下解决了。

博客作业

在新科专业也学习了半个大学了,对一些基本的计算机软件语言有了一定的认知,c++,matlab,java,netbeans,asp,操作系统,数据结构。从个人所取得成就来说,只有一门二级MSOffice和一些数学计算方式。
将来不准备从事编程行业,不感兴趣是一部分,自身能力不足也是一部分,目前只能编一些简单程序,但是计算机是行业内不可缺少的工具,所以还是想通过软件工程学习,掌握一些实用的技能,也算增加一点就业优势,个人认为Java语言比较容易,考证也相对容易。
总的来说,目前主要能将各个软件,语言,程序结合关联起来,代码编程部分还是不熟练,对于就业还是远远不够的,在将来的软工学习中,还是要加强自己的编码能力,熟悉各个软件的使用。

posted @ 2020-03-10 19:56  DDDDDL  阅读(136)  评论(3编辑  收藏  举报