软工第二次作业:

1、在个人电脑中安装一个集成开发环境(Microsoft Visual Studio、Eclipse或其它工具均可),要求该环境能够提供单元自动测试功能;

2、记录安装过程,并将全部内容发表在博客中;

3、实现最大子数组和算法,并将该段代码上传至Coding.net系统中;

4、自行选择合适的覆盖标准并设计测试用例对该段代码进行测试,并将测试结果发布在博客中,结果以如下表格形式完成。


本文为干货,希望有用,欢迎评论。


由于我的labtop上安装的是ubuntu16.04系统,其上不支持VS,固决定安装Eclipse以便日后开发。下面介绍ubuntu16.04系统下安装Eclipse的具体步骤:

  • 下载jdk:jdk-8u101-linux-x64.tar.gz
  • 下载Eclipse:eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz(下载资源可移步官网)
  • 将jdk解压到/usr/local文件夹中。双击压缩文件解压到/home目录下,后将文件通过终端命令转移到/usr/local目录下:mkdir /usr/local———创建一个新文件夹

(另外可以直接用终端命令sudo tar zxvf jdk-8u101-linux-x64.tar.gz -C /usr/local达到上述目的。需要注意的是网上下载的压缩文件默认保存在/home/download下,如果直接用上述命令从这一目录解压文件到目标目录下,就会提示找不到这一文件,我试着先把文件解压到/home下,再通过root权限移动文件,结果就成功了,至于原因还请知道的大神不吝赐教~)

  • 配置jdk环境变量。命令:sudo vim /etc/profile———使用vim打开文件,并在文件尾添加如下语句:
JAVA_HOME=/opt/jvm/jdk1..0_77

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

查看是否安装成功:java -version,若显示如下,则说明安装成功。

  • 安装Eclipse。将其用同样的方法解压到/usr/local文件夹中。
  • 创建Eclipse桌面快捷方式。在中端输入:sudo gedit /usr/share/applications/eclipse.desktop——弹出文本编辑器,忽略终端警告,在文本编辑器中输入:
[Desktop Entry]

Type=Application

Name=Eclipse

Comment=Eclipse Integrated Development Environment

Icon=/usr/lib/eclipse/icon.xpm

Exec=/usr/lib/eclipse/eclipse

Terminal=false

保存并退出,安装完成。

  • 之后在文件夹中找到eclipse图标,双击即可打开。

(补充:在这里安利一款linux下功能强大的截图软件ksnapshot。在命令行输入:sudo apt-get install ksnapshot,等待安装完成之后就可以自由自在的截屏了~)

另外,百度了一下什么叫“单元自动测试”,这里介绍的挺详细的:http://www.infoq.com/cn/articles/road-of-automated-unit-testing-practices/,但我还是一头雾水,有兴趣的朋友可以看一下。

最大子数组和算法实现以及单元测试

代码实现代码:

    package test;
import java.util.*;
public class MaxSubArraySum {
public static void main(String []args) {
int len, res;
Scanner scan = new Scanner(System.in);
len = scan.nextInt();
int []a = new int [len];
for(int i = 0; i < len; i++)
a[i] = scan.nextInt();
res = Method(a, len);
System.out.println("该数组的最大子数组和为:" + res);
} static int Method(int []a, int len) {
int i;
int MaxSum = 0;
int CurSum = 0;
for(i = 0; i < len; i++){
CurSum += a[i];
if(CurSum > MaxSum)
MaxSum = CurSum;
if(CurSum < 0)
CurSum = 0;
}
return MaxSum;
}
}

单元测试代码:

package test;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class MaxSubArraySumTest { @Before
public void setUp() throws Exception {
} @After
public void tearDown() throws Exception {
} @Test
public void testMethod1() {
int len = 5;
int []a = {1,2,3,4,1};
System.out.println("该数组的最大子数组和为:" + MaxSubArraySum.Method(a, len));
}
@Test
public void testMethod2() {
int len = 5;
int []a = {1,2,3,-4,-1};
System.out.println("该数组的最大子数组和为:" + MaxSubArraySum.Method(a, len));
}
@Test
public void testMethod3() {
int len = 4;
int []a = {1 ,4 ,-5, 6};
System.out.println("该数组的最大子数组和为:" + MaxSubArraySum.Method(a, len));
}
@Test
public void testMethod4() {
int len = 4;
int []a = {1, 0, -1, 2, -1, 3};
System.out.println("该数组的最大子数组和为:" + MaxSubArraySum.Method(a, len));
} }

运行结果:

代码托管:https://coding.net/u/Drogheda/p/SchoolWork/git/blob/master/README.md

ubuntu16.04下配置JDK 1.8+安装Java EE,并实现最大子数组算法的更多相关文章

  1. Ubuntu16.04下配置ssh免密登录

    Ubuntu16.04下配置ssh免密登录 环境准备:新建两台虚拟机,而且两台虚拟机上都装有Ubuntu16.04的系统,使两台虚拟机之间保持互通状态.分别为两台虚拟机命名为A,B.假设我们要使A虚拟 ...

  2. Linux入门(16)——Ubuntu16.04下配置sublime text 3使用markdown

    sublime text 3安装两个插件: MarkDown Editing OmniMarkupPreviewer 有的人使用 MarkDown Editing markdownpreviewer ...

  3. Windows 7下配置JDK环境变量和Java环境变量配置

    下面来介绍一下Java环境变量配置,是在Windows 7下配置JDK环境变量. 方法/步骤  1 安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为:C:\Program Fil ...

  4. ubuntu16.04下配置apache2与php

    系统版本:ubuntu16.04 命令均在终端中输入,用浏览器测试 //安装apache2命令 sudo apt install apache2 //测试是否安装成功 浏览器地址栏输入“localho ...

  5. ubuntu16.04下配置caffe无GPU

    1. 安装依赖项  1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5- ...

  6. Ubuntu16.04下配置VScode的C/C++开发环境

    博客转载:https://blog.csdn.net/weixin_43374723/article/details/84064644 Visual studio code是微软发布的一个运行于 Ma ...

  7. 转:Ubuntu16.04下配置php+vscode+xdebug开发环境

    转:https://blog.csdn.net/its_my_dream/article/details/78549619 操作系统是Ubuntu16.04,首先要安装和配置php运行环境,我这里用的 ...

  8. 2018.4.1 Ubuntu16.04 下配置Tomcat服务器以及设置dingshi启动

    Tomcat自启动的设置技巧 以root用户登录系统: cd /etc/rc.d/init.d/ vi tomcat #!/bin/sh # # tomcat: Start/Stop/Restart ...

  9. ubuntu16.04下配置静态ip

    ubuntu下配置静态ip 1.先获取ip基本信息 ifconfig enp3s0 Link encap:以太网 硬件地址 2c:4d:54:65:de:6e inet 地址:192.168.199. ...

随机推荐

  1. selenium python的使用(一)

    下面是一个爬取知网数据的例子,使用selenium 用python爬取数据 1.创建对象,打开指定地址,在休眠的20秒内输入搜索项 driver= webdriver.Chrome() driver. ...

  2. source insight 编程风格(持续更新)

    1.字体Source Code Pro 出身于豪门Adobe,从名字上来看就知道是转为编码而生的.基本上也是拥有前面所提的编程字体的所有要素的.这个字体基本上具有编程字体所需的所有要素:等宽.支持Cl ...

  3. 解决Entity Framework中DateTime类型字段异常

    从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值 具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大.SqlServe ...

  4. js 相关知识整理(一)

    真正声明变量,是用逗号隔开的 EcM5:严格模式“use strict” java与js 语言的区别: 1.弱类型语言 1.声明变量时不需要提前指定数据类型 2.同一个变量可先后保存不同类型的数据 3 ...

  5. C++ 一次创建多级目录

    #ifdef WIN32 #include <io.h> #include <direct.h> #else #include <unistd.h> #includ ...

  6. CodeIgniter 下引入ORM Doctrine

    做了两年的CI开发,一直使用activeRecord来操作数据库.简单,轻巧加方便.最近一个项目交给手下去做,也是采用从数据库设计入手的开发流程,现在已经上线运行.经历了理清需求,设计数据库,在CI中 ...

  7. jquery easyui tree的全选与反选

    //全选反选 //参数:selected:传入this,表示当前点击的组件 //treeMenu:要操作的tree的id:如:id="userTree" function tree ...

  8. Python之路【第十八章】:Web框架

    Web框架本质 1.众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 #!/usr/bin/env python # -*- codin ...

  9. ionic实现点击popup区域外部分来关闭popup

    var htmlEl = angular.element(document.querySelector('html')); htmlEl.on('click', function (event) { ...

  10. 《奥威Power-BI案例应用:带着漫画看报告》腾讯课程开课啦

    元旦小假期过去了,不管是每天只给自己两次下床机会的你,还是唱K看电影逛街样样都嗨的你,是时候重振旗鼓,重新上路了!毕竟为了不给国家的平均工资水平拖后腿,还是要努力工作的.话说2016年已经过去了,什么 ...