计算与软件工程作业三

作业要求 https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10454
我在这个课程的目标是 掌握软件开发知识,自己设计简单的程序,发布并维护
此作业在哪个具体方面帮我实现目标 设计关于单元测试的程序
其他参考文献 https://jingyan.baidu.com/article/d8072ac47c6701ec95cefd82.html https://www.cnblogs.com/yinianzs/p/9774375.html
作业正文

本次作业

单元测试

数组中最大子数组的和
用类/函数来实现
需求:希望返回 3 种信息
最大子数组的和
最大子数组开始的下标
最大子数组结束的下标
从文本文件中读输入的数据,熟悉文件操作, 文件有两种数据
第一个数字:这次测试中有多少个数据, 数字后面是冒号。
后续数字: 每个数据的值,用逗号隔开

代码(C++)

#include<iostream>
using namespace std;
int main()
{ 
  int n,star=0,end=0;
  //实现整型数组的输入
  cout<<"输入整型数组的长度";
  cin>>n;
  int *p=new int[n];
  cout<<"输入一个整型数组";
  for(int i=0;i<n;i++)
  { 
      cin>>p[i];
  }
  int sum=p[0];
  int max_sum=p[0];
  for(int i=1;i<n;i++)
  {   
      if(sum>0)    //从第二个数开始判断是否为正数
      { 
          sum=sum+p[i];  //是正数,将和值(初始值为p【0】)和第i+1个数做和。
         if(sum>max_sum) // 并判断是否为最大,是让其赋值给max_sum,并将子数组末位置改变。
           { 
               max_sum=sum;
               end=i;
           }
      }
      else 
      { 
          sum=p[i];  //是负数,将第i+1个数的值赋值给和值sum
             if(sum>max_sum)//并判断是否为最大,是让其赋值给max_sum,并将子数组初、末位置改变。
             {    
                max_sum=sum;
                star=i;
                end=i;
             }
      }
  }
  cout<<"最大子数组位置为第"<<star+1<<"个到第"<<end+1<<"个"<<endl;
  cout<<"最大子数组和为"<<max_sum<<endl;
  system("pause");
  return 0;
}

运行结果

单元测试

码云地址

https://gitee.com/sichuan_crane/firstwarehouse/blob/master/数组中最大子数组的和.cpp

回顾总结

大学以来学习了C++,JAVA,ASP.NET等等,目前掌握并不熟,无法自己独立编程,需要更加深入的学习。

posted @ 2020-03-11 11:08  川鹤  阅读(146)  评论(6编辑  收藏  举报