博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单步查询--数组续
阅读量:4658 次
发布时间:2019-06-09

本文共 2563 字,大约阅读时间需要 8 分钟。

用户需求&功能介绍

1. 用户用你的程序读入一个数组文件 (就像我们以前做过的那样),显示初始状态 (就像围棋打谱程序那样) 1.1. 用户也可以自行定义数组的大小,或者要求随机生成一个数字矩阵。2. 用户这时候有两个选择 2.1  按 单步执行 键, 在 GUI 看到你的程序是如何一步一步算出目前最大子数组的范围,当前计算到的临时子数组是在哪里,等等。 最好用不同的颜色标识不同的状态。 2.2  按 自动运行 键, 在 GUI 看到程序自动运行,并自动显示过程, 每次改变状态的时候要稍作停留 (例如 1 秒钟的时间)3.  这时最好有一个 倒带 / 回滚 的键, 让用户可以看清楚关键的几步。(当然,用户可以选择是普通模式还是扩展定义的连通模式)

  

以上是老师所描述的用户需求

我认为,这个东西很简单

首先调出原来的程序代码,由于重装电脑,需要重新在控制台设置,import。

然后根据我的想法我仅仅插入了一些输出代码,以及定义了一个定义。

 

{        System.out.print("当前是第"+i+"步"+"已检查"+i+"个数组");          System.out.println();          System.out.print("最大子数组之和是"+max);          System.out.println();          if (sum=sum1)                  {              System.out.print("这个数组是从第"+1+"组到第"+i+"组");                  }          System.out.print("这个数组是从第"+1+"组到第"+i+"组");          System.out.println();          System.out.print("当前计算到的临时子数组是"+array[i]);          System.out.println();          System.out.println();          //组成这个子数组的是“”          //当前已查看子数组有“”      }      System.out.println();      System.out.print("最大子数组之和为:");      return max;

 

然后我现在只能实现第一个,全部导出,无法进行回滚。不会滚。

其他的东西需要进一步的思考,研究,目前就这样了。以下是这个的完整代码

//这段代码不能说是出自我手,毕竟是参考了一个网上的教程后才能写出来的,最开始我是万万写不出来的,还需要加油。package zhengxingshuzu;public class Zxsz {  public static void main(String[] args) {      // TODO Auto-generated method stub    int array[] = {
0,1,-6,3,-5,7,1,-9,5,10,5,-10,-5,-1,5,-5,-1,2,-1,-6}; System.out.println(findMax(array)); } public static int findMax(int array[]){ //加上约束条件,防止当数组为空时造成数组越界 if (array.length == 0) { return 0; } int max = array[0]; int sum = 0; //int sum1=array[i-1]; for(int i=1; i
=0的话,就加; if(sum >= 0) { sum += array[i]; } //当数组全为负数的时候只要有加法就一定比原来的数小,此时就相当于找出数组内最大的数 else{ sum = array[i]; //否则从当前位置重新计算 } if(sum > max){ max = sum; } System.out.print("当前是第"+i+"步"+"已检查"+i+"个数组"); System.out.println(); System.out.print("最大子数组之和是"+max); System.out.println(); // if (sum=sum1) // { // System.out.print("这个数组是从第"+1+"组到第"+i+"组"); // } System.out.print("这个数组是从第"+1+"组到第"+i+"组"); System.out.println(); System.out.print("当前计算到的临时子数组是"+array[i]); System.out.println(); System.out.println(); //组成这个子数组的是“” //当前已查看子数组有“” } System.out.println(); System.out.print("最大子数组之和为:"); return max; }}

以及运行截图

 

转载于:https://www.cnblogs.com/kmxbf2292/p/10770452.html

你可能感兴趣的文章
noip模拟赛 第k大区间
查看>>
Windows 配置vscode
查看>>
Linux内核分析-系统中断在内核中的实现
查看>>
(第四天)作用域链、闭包
查看>>
杭电个人排位赛第三场
查看>>
运用iscroll.js遇到的问题
查看>>
嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比
查看>>
可以免费自学编程的12个网站
查看>>
安装tomcat 证书
查看>>
01 - 介绍
查看>>
Uva1585 Score
查看>>
开发设计模式(一)Command模式
查看>>
吴裕雄 实战python编程(2)
查看>>
SigFox与LoRa技术原理、应用场景和商业模式上的比较
查看>>
ActionScript实现数组快速去重算法
查看>>
SpringBoot(六) Web Applications: Embedded Containers(嵌入式容器)
查看>>
【BZOJ 4665】 4665: 小w的喜糖 (DP+容斥)
查看>>
python 中关于 djando 的基础操作
查看>>
Git 的 .gitignore 配置
查看>>
Language Integrated Query ----序
查看>>