• 软件工程第三次作业


    软工第三次作业

    作业要求的链接 https://edu.cnblogs.com/campus/jssf/infor_computation17-31/homework/10454
    该次作业在程序效能方面实现我的目标 学习单元测试
    其他参考文献 https://blog.csdn.net/liuchuo/article/details/52144554
    作业正文 https://www.cnblogs.com/taotaochen/p/12463017.html

    作业要求

    单元测试

    数组中最大子数组的和。

    用类/函数来实现
    需求:希望返回 3 种信息
    最大子数组的和
    最大子数组开始的下标
    最大子数组结束的下标
    从文本文件中读输入的数据,熟悉文件操作, 文件有两种数据
    第一个数字:这次测试中有多少个数据, 数字后面是冒号。
    后续数字: 每个数据的值,用逗号隔开
    比如
    文件内容:
    17: -32, -10, 33, -23, 32, -12, 41, -12, 1, 3, 5, -98, 70, -21, 10, -9, 61
    输出
    sum = 71
    实现这个类 (MSA)
    可以用 C++, Java, C#,Python class 等
    类开始是空的,返回都是简单的数值,例如 0.
    测试包括测试文件读入与计算(测试过程通过程序新建一个文件,内容可以为上述数字,测试完后得删除文件)
    设计单元测试,运行单元测试
    开始:所有单元测试都失败
    改进程序,加入正确的逻辑,看到有单元测试通过,并且看到代码覆盖率的增加
    重复, 直到所有单元测试都通过,代码覆盖率达到满意的结果。
    程序需要从当地push到远程个人仓库
    参见 《构建之法》第二章单元测试的内容 以及
    https://www.cnblogs.com/xinz/archive/2011/11/20/2255830.html
    https://www.cnblogs.com/SivilTaram/p/software_pretraining_cpp.html

    博客作业

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

    预习

    请阅读现代软件工程讲义:3 两人合作,参见 https://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html

    代码

    //以下代码修改自CSDN柳婼PAT A1007
    #include <iostream>
    using namespace std;
    int maxsum(int a[],int n){
    	int leftindex = 0, rightindex = n - 1, sum = -1, temp = 0, tempindex = 0;
    	for (int i = 0; i < n; i++) {
            temp = temp + a[i];
            if (temp < 0) {
              temp = 0;
              tempindex = i + 1;
    		} else if (temp > sum) {
    			sum = temp;
    			leftindex = tempindex;
    			rightindex = i;
    		}
    	}
    	if (sum < 0) sum = 0;
    	printf("最大子数组和 %d
    该子数组开始的下标 %d
    该子数组结束的下标 %d
    ", sum, leftindex, rightindex);
    	return 0;
    }
    
    int main() {
    	int n;
    	scanf("%d", &n);
    	int v[100];
    	for (int i = 0; i < n; i++) {
        scanf("%d", &v[i]);
    	}
    	maxsum(v,n);
        system("pause");
        return 0;
    }
    

    单元测试代码

    #include "stdafx.h"
    #include "CppUnitTest.h"
    #include"maxsum.cpp"
    using namespace Microsoft::VisualStudio::CppUnitTestFramework;
    
    namespace maxsumTest
    {		
    	TEST_CLASS(UnitTest1)
    	{
    	public:
    		
    		TEST_METHOD(TestMethod1)
    		{
    			// TODO: 在此输入测试代码
    			 int data[] = { -32, -10, 33, -23, 32, -12, 41, -12, 1, 3, 5, -98, 70, -21, 10, -9, 61 };
                Assert::AreEqual(111,maxsum(data, 17));
    
    		}
    
    	};
    }
    
  • 相关阅读:
    影评
    札记
    竞赛203
    竞赛201
    StopWatch的使用
    mysql:GROUP_CONCAT
    DispatcherServlet核心方法doDispatch解析
    class对象与实例对象
    mybatis与传统ORM框架的区别
    servlet容器中listener、filter、interceptor的启动顺序
  • 原文地址:https://www.cnblogs.com/taotaochen/p/12463017.html
Copyright © 2020-2023  润新知