• 17074211张昊 计算与软件工程作业3


    这个作业要求在哪里 第三次作业
    我在这个课程的目标是 成功求数组中最大子数组的和
    此作业在哪个具体方面帮我实现目标 运行了单元测试
    其他参考文献 https://www.cnblogs.com/xinz/archive/2011/11/20/2255830.html
    gitee链接 代码

    单元测试要求#

    • 开始:所有单元测试都失败
    • 改进程序,加入正确的逻辑,看到有单元测试通过,并且看到代码覆盖率的增加
    • 重复, 直到所有单元测试都通过,代码覆盖率达到满意的结果。

    代码#

    #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 "pch.h"
    #include "CppUnitTest.h"
    #include"max.cpp"
    
    using namespace Microsoft::VisualStudio::CppUnitTestFramework;
    
    namespace UnitTest1
    {
       TEST_CLASS(UnitTest1)
       {
       public:
           
           TEST_METHOD(getmax_Test)
           {
               //TODO: 在此输入测试代码
           
               int data[] = { -32, -10, 33, -23, 32, -12, 41, -12, 1, 3, 5, -98, 70, -21, 10, -9, 61 };
               Assert::AreEqual(111, getmax(a, 17));
           }
    
    
       };
    }
    

    博客作业#

    总结##

    在信息与计算科学专业前两年的学习经历中,学习了如c++,c语言,Java,matlab等项目技能,但是这些技能我都还处于入门阶段,还需要在接下来一年多的学习中,增加自己的个人能力,多学多做才能有所进步。

  • 相关阅读:
    怎样从server获取图片
    面经
    cordova百度导航插件使用
    swift初探(供objective c开发人员參考)
    右击菜单简单实现
    ios--计时器演示样例:一闪一闪亮晶晶(动画)
    新建cocos2d-xproject
    atititt.java定时任务框架选型Spring Quartz 注解总结
    UIViewController的生命周期及iOS程序运行顺序
    hdu 1162 Eddy&#39;s picture (Kruskal算法,prim算法,最小生成树)
  • 原文地址:https://www.cnblogs.com/17074211zh/p/12454354.html
Copyright © 2020-2023  润新知