• 计算与软件工程作业三


    计算与软件工程作业三

    作业要求 第三周作业
    课程目标 单元测试 自我总结
    作业帮助 了解单元测试的使用方法与功能 审视自身技能
    参考文献 构建之法 单元测试

    作业正文

    https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10454

    单元测试

    数组中最大子数组的和。
    • 用类/函数来实现
      需求:希望返回 3 种信息
      最大子数组的和
      最大子数组开始的下标
      最大子数组结束的下标
      从文本文件中读输入的数据,熟悉文件操作, 文件有两种数据
      第一个数字:这次测试中有多少个数据, 数字后面是冒号。
      后续数字: 每个数据的值,用逗号隔开
      比如
      文件内容:
      17: -32, -10, 33, -23, 32, -12, 41, -12, 1, 3, 5, -98, 70, -21, 10, -9, 61
      输出
      sum = 71
    具体代码
    #include <iostream>
    using namespace std;
    
    int getMax(int a,int b){
        return a>b?a:b;
    }
    
    int maxSum(int arr[],int n){
        int sum=arr[0];
        int max=arr[0];
        int newstart=0;
        int start=0;
        int end=0;
        for(int i=1;i<n;i++){
            sum=getMax(sum+arr[i],arr[i]);
            if(arr[i]>(sum+arr[i]))
                newstart=i;
            if(sum>max){
                max=sum;
                start=newstart;
                end=i;
            }
        }
        return max;
    }
    
    int start(int arr[],int n){
        int sum=arr[0];
        int max=arr[0];
        int newstart=0;
        int start=0;
        int end=0;
        for(int i=1;i<n;i++){
            sum=getMax(sum+arr[i],arr[i]);
            if(arr[i]>sum+arr[i])
                newstart=i;
            if(sum>max)
                max=sum;
            start=newstart;
            end=i;
        }
        return start;
    }
    
    int end(int arr[],int n){
        int sum=arr[0];
        int max=arr[0];
        int newstart=0;
        int start=0;
        int end=0;
        for(int i=1;i<n;i++){
            sum=getMax(sum+arr[i],arr[i]);
            if(arr[i]>(sum+arr[i]))
                newstart=i;
            if(sum>max)
                max=sum;
            start=newstart;
            end=i;
        }
        return end;
    }
    
    int main(){
        int arr[]={-32, -10, 33, -23, 32, -12, 41, -12, 1, 3, 5, -98, 70, -21, 10, -9, 61};
        int length=17;
        cout<<"数组最大子数组和:"<<maxSum(arr,length)<<endl;
        cout<<"数组最大子数组起始下标:"<<start(arr,length)<<endl;
        cout<<"数组最大子数组结束下标:"<<end(arr,length)<<endl;
        return 0;
    }
    

    Windows电脑滞留在宿舍,macos没有找到合适的工具,无法做c++的单元测试,返校后再回顾。

    Gitee链接

    https://gitee.com/Vhe_jian/Learning/tree/master/MSA/

    博客作业

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

    在大学的前两年接触过c++、java、matlab等程序设计语言,计算机相关课程接触过数据结构、操作系统、asp网页设计、数据库。语言学习基本停留在基础阶段,没有深入的研究,能够解决一些小问题,写一些小程序,千行以内,并没有在什么大项目上实践过,数据结构也仅仅在理论层面有所理解,机试能力仍不足。目前仍在学习中,学习计算机四门基础科目理论,打下基础,将来打算从事计算机相关行业。

  • 相关阅读:
    POJ 3672 水题......
    POJ 3279 枚举?
    STL
    241. Different Ways to Add Parentheses
    282. Expression Add Operators
    169. Majority Element
    Weekly Contest 121
    927. Three Equal Parts
    910. Smallest Range II
    921. Minimum Add to Make Parentheses Valid
  • 原文地址:https://www.cnblogs.com/jian-He/p/12456325.html
Copyright © 2020-2023  润新知