zoukankan      html  css  js  c++  java
  • 计算与软件工程作业三

    作业要求

    • 请大家在作业开头添加格式描述,仿照如下
    这个作业要求在哪里 第三周作业
    我在这个课程的目标是 实现数组中最大子数组的和,写一篇关于自己的简历
    此作业在哪个具体方面帮我实现目标 在用c++方面帮我实现了
    其他参考文献 程序参考 单元测试参考
    gitee地址 地址

    作业正文

    ( 部分来源于)

    单元测试

    数组中最大子数组的和。

    • 用类/函数来实现
      需求:希望返回 3 种信息
      最大子数组的和
      最大子数组开始的下标
      最大子数组结束的下标
      从文本文件中读输入的数据,熟悉文件操作, 文件有两种数据
      第一个数字:这次测试中有多少个数据, 数字后面是冒号。
      后续数字: 每个数据的值,用逗号隔开
      比如
      文件内容:
      17: -32, -10, 33, -23, 32, -12, 41, -12, 1, 3, 5, -98, 70, -21, 10, -9, 61
      输出
      sum = 71

    程序代码

    #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 < temp;
            {
                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 = array[i];    
                newStartIndex = i;  
            }
            else
            {
                max += array[i];   
            }
            if (sum < max) 
            {
                sum = max; 
                startIndex = newStartIndex; 
                endIndex = i;  
            }
        }
        return endIndex;
    }
    
    
    int main()
    {
        int array[]={-32,-10,33,-23,32,-12,41,-12,1,3,5,-98,70,-21,10,-9,61};
        int length=17;
        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));
           }
    
    
       };
    }
    

    博客作业

    回顾总结你在信息与计算科学专业前两年的学习经历和项目技能等,写一篇关于你自己的简历,介绍你的技能,并针对未来准备从事的职业,评价你目前的技术、能力是否胜任,(个人能力的评价可以参考软件工程师个人能力评价表https://www.cnblogs.com/xinz/p/3852177.html),并针对未来的职业发展方向,指明还有哪些技术、技能需要在后续大学一年的时间里需要加强的。

    在信息与计算科学专业前两年的学习中,我初步掌握了c++,matlab,java,netbeans,asp等计算机语言的使用,并且有一定的数学基础,但是自身对于程序设计和代码编写不够熟悉,花费的时间精力都较少,所以能力欠缺不足,需要加强巩固。
    同时我发现写出程序并实现,且光靠一个人是不够的,还需要团队的合作,在之前的实现设计中,与自己独立完成程序相比,和同学合作完成的效率更高,而且程序的功能更丰富,所以在日常程序编写中,要学会集思广益。
    我希望学习了计算与软件工程这门课程之后,能够在老师和同学的帮助下,更好的了解程序开发,以及合作开发一些简单的软件开发,锻炼自己的思维能力。

    预习

    请阅读现代软件工程讲义

  • 相关阅读:
    (二)springmvc+mybatis+dubbo+zookeeper分布式架构 整合
    (一)springmvc+mybatis+dubbo+zookeeper分布式架构 整合
    微服务架构 SpringCloud(四)Ribbon
    微服务架构 SpringCloud(三)注册中心集群篇
    微服务架构 SpringCloud(二)Eureka(服务注册和服务发现基础篇)
    微服务架构 SpringCloud(一)组件和概念介绍
    企业分布式微服务云SpringCloud SpringBoot mybatis (十四)服务注册(consul)
    20 TextView显示阴影
    19 shape
    18 手动发广播扫描sd卡
  • 原文地址:https://www.cnblogs.com/guozhiwei123/p/12435308.html
Copyright © 2011-2022 走看看