软件工程的第三次作业
求取最大字段和的方法及测试结果
-
编译器和变成语言的选择,以及方法的叙述
本次使用的eclipse编译器,java语言编写,原题意为给定一组随机数,求取其中最大的字段和,并标注出所组成最大字段和的数组编号以及编号对应的元素。
我采用双重循环的方法通过遍历整个组成可能来找出最大数值组成的选项,我承认方法很老套,繁琐,但是,,,想着简单啊(无耻的找理由)。
-
源代码以及运行结果的展示
源代码
package hahaha;
import java.util.Scanner;
public class Homework {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int [] sukuo = new int [1024];
int [] Outputarray = new int [1024];
int [] Outputarray2 = new int [1024];
int idx = 0;
while(in.hasNextInt()) {
//sukuo.add(in.nextInt());
sukuo[idx++] = in.nextInt();
}
int Maxsu=0;
int sumsu=0;
for(int i = 0;i < idx; i++) {
sumsu=0;
for(int j = i;j<idx;j++) {
sumsu = sumsu + sukuo[j];
if(Maxsu<=sumsu) {
Maxsu = sumsu;
}
}
}
System.out.print("当sukuo=(");
for(int w=0;w<idx ;w++) {
System.out.print("sukuo["+w);
System.out.print("] ");
}
System.out.print(" )");
System.out.print("= (");
for(int y=0;y<idx ;y++) {
System.out.print(" "+sukuo[y]);
}
System.out.print(" )时,最大字段和为");
System.out.print(+Maxsu);
}
}
流程图
测试数据
测试数据为 1 2 3 4 5 /n
结果应为
当sukuo=(sukuo[0] sukuo1 sukuo2 sukuo3 sukuo4 )= ( 1 2 3 4 5 )时,最大字段和为15
程序截图
运行结果
另一组结果
- Junit测试
这里只测试了输出的最大值结果,就直接提取主要算法通过测试返回值来测定。
测试结果
程序代码网址
https://coding.net/u/sukuo/p/Homework_3/git/blob/master/.gitignore?public=true
-
小结
题目的算法并不算复杂,但是粗心让我花费了大量的时间的扶着眼镜去找错。。。写程序的细心问题,是我一直改的很痛苦的一个问题,总是想到了就直接不管不顾的写下去了,就导致,,,,发现的时候,总是加大了工作量。再就是对于Junit测试的理解不够,,,,大概就是最开始兴致勃勃地想把整个程序的测试一遍,然后纠结于测试类的编写问题上........,最后发现只要测试最重要的那部分就可以了。
或许吧,代码写得不好,博客更是烂,能词达己意的清晰表达,是我想获得的技能,开始的这几篇,与其说是交作业还不如说是我再联系自己的知识总结能力和写作。要是读完帮不上你呢,还请见谅些,就当作一个尝试进步者的拙劣制作,博君一笑。也期待日后随着能力的慢慢提升可以和越来越多的人去交流,去互相进步。
posted on 2018-03-26 13:40 苏阔Garrison 阅读(238) 评论(0) 编辑 收藏 举报