zoukankan      html  css  js  c++  java
  • 软件工程 第三次作业

    作业三

    作业要求 https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10454
    课程目标 掌握如何设计单元测试、运行单元测试
    参考文献 https://www.cnblogs.com/xinz/archive/2011/11/20/2255830.htmlhttps://www.cnblogs.com/SivilTaram/p/software_pretraining_cpp.html 关于求最大子数组 - 知乎 https://zhuanlan.zhihu.com/p/25704214
    作业正文 https://www.cnblogs.com/jiangziyi/p/12449281.html

    作业题目——单元测试

    • 数组中最大子数组的和。

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

    设计单元测试,运行单元测试

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

    解决思想

    求一组数组的最大子数组有暴力求解、分治算法还有一种线性算法。暴力求解的时间复杂度为O(n^2),分治算法的时间复杂度为O(nlog2n),而线性算法的时间复杂度为O(n)。但是暴力求解的代码最容易理解,也易于写出运行成功。

    附录代码

    • 暴力求解
    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<limits.h>
    #include<cstdlib>
    using namespace std;
    int maxsubset(int *a,int len){
        int summax=INT_MIN;
        int i,j,k;
        for(i=0;i<len;i++)
            for(j=i;j<len;j++){
                int temp=0;
                for(k=i;k<=j;k++)
                    temp+=a[k];
                if(temp > summax) summax=temp;
            }
        return summax;
    }
    int main(){
        int a[]={-32,-10,33,-23,32,-12,41,-12,1,3,5,-98,70,-21,10,-9,61};
        cout<<"the maxsubset:"<<maxsubset(a,16)<<endl;
    	system("pause");
        return 0;
    }
    

    运行结果


    码云地址:
    https://gitee.com/jiang_zi_yi/codes/new

    博客作业

    回顾我在信息与计算科学专业两年多以来,先从计算机基础开始然后到C++,数据结构,java,操作系统和MySql数据库等,逐渐深入对程序语言的学习。但就对于我个人而言,我的能力是远远不足的,对于较长的,要求比较多,功能比较全面的程序没有办法独立完成。不能把自己的思想完全用程序语言表达出来,程序常常出现逻辑错误。所以在今后的学习过程中,要多动手,多总结,对于比较好的,典型的程序结构进行积累,丰富自己的编程知识,提高自己的能力。多尝试,多运行,有问题及时反馈,及时解决,充分利用好身边的网络书籍资源。

  • 相关阅读:
    How to upload a file in MVC4
    安装升级System.Web.Optimization.dll
    Model Binding To A List
    TD中{text-overflow:ellipsis;} 用法
    表格
    CSS定位
    清除浮动的几种方式
    css浮动原理和特性
    前端规范
    块元素和内嵌元素
  • 原文地址:https://www.cnblogs.com/jiangziyi/p/12449281.html
Copyright © 2011-2022 走看看